如何在 r 中执行线性插值(附示例)
线性插值是估计两个已知值之间函数的未知值的过程。
给定两个已知值(x 1 , y 1 )和(x 2 , y 2 ),我们可以使用以下公式估计点x的y值:
y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )
以下示例展示了如何在 R 中执行线性插值。
示例:R 中的线性插值
假设我们有以下数据框,R中的x和y值:
#define data frame df <- data. frame (x=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20), y=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80)) #view data frame df xy 1 2 4 2 4 7 3 6 11 4 8 16 5 10 22 6 12 29 7 14 38 8 16 49 9 18 63 10 20 80
我们可以使用以下代码创建散点图来可视化数据框中的 (x,y) 值:
#create scatterplot
plot(df$x, df$y, col=' blue ', pch= 19 )
现在假设我们想要找到与新的 x 值13关联的 y 值。
我们可以使用 R 中的approx()函数来做到这一点:
#fit linear regression model using data frame
model <- lm(y ~ x, data = df)
#interpolate y value based on x value of 13
y_new = approx(df$x, df$y, xout= 13 )
#view interpolated y value
y_new
$x
[1] 13
$y
[1] 33.5
估计的 y 值结果为33.5 。
如果我们将点 (13, 33.5) 添加到图中,它似乎与函数非常匹配:
#create scatterplot
plot(df$x, df$y, col=' blue ', pch= 19 )
#add the predicted point to the scatterplot
points(13, y_new$y, col=' red ', pch= 19 )
我们可以使用这个精确的公式对任何新的 x 值执行线性插值。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: