R 二次插值插补法
有谁能告诉我如何使用二次插值来插补缺失的数据吗。我知道R 二次插值插补法,r,R,有谁能告诉我如何使用二次插值来插补缺失的数据吗。我知道zoo软件包提供线性和三次插值 二次插值怎么样 如何检查输入值是否正确 谢谢。对于多项式插值和可视化结果拟合,我想您可以尝试以下方法: x <- runif(100,-2,2) y <- x**2-rnorm(100) # an approximately quadratic relation between x and y. plot(x,y) quadratic.model <- lm(y ~ x + I(x**2))
zoo
软件包提供线性和三次插值
谢谢。对于多项式插值和可视化结果拟合,我想您可以尝试以下方法:
x <- runif(100,-2,2)
y <- x**2-rnorm(100) # an approximately quadratic relation between x and y.
plot(x,y)
quadratic.model <- lm(y ~ x + I(x**2))
int <- function(x) predict(quadratic.model,list(x=x))
plot(int,xlim=c(-2,2),col="navy",add=T)
segments(x,y,x,int(x),col="red")
x高投票数鼓励我将我的评论转化为答案
二次插值很少见,原因如下:两个数据点定义一条直线,四个数据点定义一条三次曲线。因此,可以使用正在插值的间隙任一侧的一个或两个数据点进行插值。对于立方情况,还可以使用四个自由度来匹配函数值和间隙两侧的坡度,从而实现三次样条插值
但是,对于二次曲线,您需要有三个自由度。因此,需要三个点来定义插值形状,不能在间隙的两侧均匀分布
可能的“解决办法”:
- 您可以进行非对称插值,即在位置左侧使用两个数据点,但在右侧使用一个数据点。结果也可能是不对称的
- 您可以使用三个以上的点来拟合二次曲线,进行分段二次近似。但在近似情况下,曲线不会通过数据点,因此碎片不会正确对齐
- 您可以对整个数据集进行全局二次近似,但这根本不是插值
- 您可以使用两个自由度来匹配线段每一端的一个数据点,并使用第三个自由度以某种对称方式塑造曲线,例如,通过要求中间的坡度为零。但结果很可能“摆动”远比简单的线性插值,所以我认为它是劣势。
这些我都不建议,但我想不出更好的答案来回答你的问题。对于每次计算,您都可以验证给定的实现是否符合设计思想,但在我看来,所有的设计思想都有缺陷,这种正确性仍然无法确保插值实际上有任何意义。我可能完全没有抓住要点,但我想二次插值很少见,原因如下:两个数据点定义一条直线,四个数据点定义一条三次曲线。因此,可以使用正在插值的间隙任一侧的一个或两个数据点进行插值。但是,对于二次曲线,需要三个点,这三个点不能均匀分布在间隙的两侧。这是近似值,而不是插值。