r - 使用 R 中的 Lowess 函数对新值进行预测

标签 r loess

我正在使用 lowess拟合两个变量之间回归的函数 xy .现在我想知道新值 x 处的拟合值.例如,如何在 x=2.5 处找到拟合值在下面的例子中。我知道 loess可以做到,但我想重现某人的情节,他使用了 lowess .

set.seed(1)
x <- 1:10
y <- x + rnorm(x)
fit <- lowess(x, y)
plot(x, y)
lines(fit)

enter image description here

最佳答案

局部回归(lowess)是一种非参数统计方法,它不像线性回归,您可以直接使用模型来估计新值。

您需要从函数中获取值(这就是为什么它只向您返回一个列表),并选择您自己的插值方案。使用该方案来预测您的新点。

常用技术是样条插值(但还有其他技术):

https://www.r-bloggers.com/interpolation-and-smoothing-functions-in-base-r/

编辑 : 我很确定 predict函数为你做插值。我也找不到有关确切内容的任何信息 predict使用,所以我试图跟踪源代码。

https://github.com/wch/r-source/blob/af7f52f70101960861e5d995d3a4bec010bc89e6/src/library/stats/R/loess.R

else { ## interpolate
## need to eliminate points outside original range - not in pred_

我确信 R 代码调用了底层的 C 实现,但它没有很好的记录,所以我不知道它使用什么算法。

我的建议是:要么相信 predict函数或推出您自己的插值算法。

关于r - 使用 R 中的 Lowess 函数对新值进行预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931869/

相关文章:

r - 通过交替步骤在R中获得seq()

jupyter-notebook - 导入错误: cannot import name 'STL' from 'statsmodels.tsa.seasonal'

r - 使用 dplyr::group_by() 对每个组进行 loess 回归

r - 用ggplot填充R中两条黄土平滑线之间的区域

r - 如何使用ggplot2标记LOESS曲线中的斜率变化?

r - 在 R 中进行线性回归时如何有条件地删除 NA 观察因素?

r - 计算误差线并将其添加到 ggplot2 直方图的好方法是什么?

使用 SF 库读取 GeoJSON 文件?

r - 有条件替换 data.frame 中的值

r - 了解 R 中的 loess 错误