13

我试图了解该predict.loess函数如何能够在原始数据中不存在的y_hat点处计算新的预测值 ( ) 。x例如(这是一个简单的例子,我意识到这种例子显然不需要黄土,但它说明了这一点):

x <- 1:10
y <- x^2
mdl <- loess(y ~ x)
predict(mdl, 1.5)
[1] 2.25

loess回归通过在每个处使用多项式来工作x,因此它y_hat在每个处创建一个预测值y。但是,由于没有存储系数,因此在这种情况下,“模型”只是用于预测每个 的详细信息y_hat,例如spanor degree。当我这样做的时候predict(mdl, 1.5),如何predict能够在这个新产品上产生价值x?它是否在两个最接近的现有x值及其相关值之间进行插值y_hat?如果是这样,它是如何做到这一点的背后的细节是什么?

我已经cloess在线阅读了文档,但无法找到它讨论这个的地方。

4

4 回答 4

7

但是,由于没有存储系数,因此这种情况下的“模型”只是用于预测每个 y_hat 的详细信息

也许您使用过print(mdl)命令或只是mdl查看模型mdl包含的内容,但事实并非如此。该模型非常复杂,并且存储了大量的参数。

要了解其中的内容,您可以使用unlist(mdl)并查看其中的参数大列表。

这是命令手册的一部分,描述了它的实际工作原理:

安装在本地完成。也就是说,对于点 x 处的拟合,使用 x 邻域中的点进行拟合,由它们与 x 的距离加权(在计算距离时忽略“参数”变量的差异)。邻域的大小由 α 控制(由 span 或 enp.target 设置)。对于 α < 1,邻域包括点的比例 α,并且这些点具有三次加权(与 (1 - (dist/maxdist)^3)^3 成比例)。对于 α > 1,使用所有点,“最大距离”假定为 α^(1/p) 乘以 p 个解释变量的实际最大距离。

对于默认族,拟合是(加权)最小二乘法。对于family="symmetric",使用Tukey 双权重的M 估计过程的几次迭代。请注意,由于初始值是最小二乘拟合,因此这不一定是非常耐久的拟合。

我相信它试图在每个点的附近拟合一个多项式模型(而不仅仅是整个集合的单个多项式)。但是邻域并不意味着只有一个点之前和一个点之后,如果我正在实现这样一个函数,我会在离点 x 最近的点上放一个很大的权重,对远端点放低权重,并尝试拟合一个多项式适合最高的总重量。

然后,如果应该预测高度的给定 x' 最接近点 x,我尝试使用拟合在点 x 的邻域上的多项式 - 比如说 P(x) - 并将其应用于 x' - 比如说 P(x ') - 这就是预测。

如果您正在寻找任何特别的东西,请告诉我。

于 2012-10-10T15:10:51.933 回答
5

为了更好地了解黄土拟合中发生的情况,请尝试loess.demo从 TeachingDemos 包中运行该函数。这使您可以交互地单击图(甚至在点之间),然后它会显示预测中使用的点集及其权重以及该点的预测线/曲线。

另请注意,默认设置loess是对黄土拟合进行第二次平滑/插值,因此您在拟合对象中看到的可能不是真正的黄土拟合信息,而是二次平滑。

于 2012-10-10T15:56:30.100 回答
2

在手册的第 42 页上找到了答案:

In this algorithm a set of points typically small in number is selected for direct    
computation using the loess fitting method and a surface is evaluated using an interpolation
method that is based on blending functions. The space of the factors is divided into
rectangular cells using an algorithm based on k-d trees. The loess fit is evaluated at
the cell vertices and then blending functions do the interpolation. The output data
structure stores the k-d trees and the fits at the vertices. This information
is used by predict() to carry out the interpolation.
于 2012-10-10T15:32:46.057 回答
1

我猜想对于 x 处的预测,predict.loess 对 x 附近的一些点进行回归,并计算 x 处的 y 值。

访问https://stats.stackexchange.com/questions/223469/how-does-a-loess-model-do-its-prediction

于 2021-11-16T08:12:52.063 回答