r - R中的线性插值

标签 r statistics interpolation

我有真实数据的数据集,例如,看起来像这样:

# Dataset 1 with known data
known <- data.frame(
    x = c(0:6),
    y = c(0, 10, 20, 23, 41, 39, 61)
)

plot (known$x, known$y, type="o")


现在我想提一个问题
“如果原始数据集的所有中间数据点位于周围的测量值之间的直线上,则0.3的Y值将是多少?”

 # X values of points to interpolate from known data
 aim <- c(0.3, 0.7, 2.3, 3.3, 4.3, 5.6, 5.9)


如果您看一下图表:我想获得Y值,其中的斜线与已知数据的线性插值相交

abline(v = aim, col = "#ff0000")


因此,在理想情况下,我将使用已知数据创建“ linearInterpolationModel”,例如

model <- linearInterpol(known)


...然后我可以要求Y值,例如

model$getEstimation(0.3)


(在这种情况下,应给出“ 3”)

abline(h = 3, col = "#00ff00")


我怎么能意识到这一点?我会手动为每个值执行以下操作:


与当前X值Xsmall相比,最接近的X值Xlarge和最接近的X值X是什么。
计算相对较小X值的相对位置relPos = (X - Xsmall) / (Xlarge - Xsmall)
计算预期的Y值Yexp = Ysmall + (relPos * (Ylarge - Ysmall))


至少对于软件Matlab,我听说有一个内置功能可解决此类问题。

谢谢你的帮助,

斯文

最佳答案

您可能正在查看approx()approxfun() ...,或者我想您可以将lm用于线性拟合,将lowess用于非参数拟合。

关于r - R中的线性插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720890/

相关文章:

r - 冒号等于 R 中的运算符?新语法?

正则表达式包含下划线

r - strptime 无法识别 %b/%B?

python - Scipy Curve_Fit 返回值解释

python - 使用 numpy 进行多元多项式回归

python - 如何从 scipy.interpolate.splprep() 中提取函数模型(多项式)?

python - 大型二维掩码数组的插值

r - 了解 R 中 mclapply 和 parLapply 之间的区别

python - 在非矩形二维网格上高效地找到最近点的索引

google-analytics - 使用谷歌分析在一个网站上跟踪多家公司