Ale*_*lex 11 regression r smoothing loess
我试图理解该predict.loess
函数如何能够在原始数据中不存在的y_hat
点处计算新的预测值()x
.例如(这是一个简单的例子,我意识到这种类型的例子显然不需要黄土,但它说明了这一点):
x <- 1:10
y <- x^2
mdl <- loess(y ~ x)
predict(mdl, 1.5)
[1] 2.25
Run Code Online (Sandbox Code Playgroud)
loess
回归通过在每个处使用多项式来工作x
,因此它y_hat
在每个处创建预测y
.但是,因为没有存储系数,所以在这种情况下的"模型"只是用于预测每个系数的细节y_hat
,例如,span
或degree
.当我这样做时predict(mdl, 1.5)
,如何predict
在这个新的产生价值x
?它是在两个最近的现有x
值之间进行插值y_hat
吗?如果是这样,它的具体细节是什么?
我cloess
在线阅读了这些文档但无法找到它的讨论内容.
但是,因为没有存储系数,所以在这种情况下的"模型"只是用于预测每个y_hat的细节.
也许您已经使用过print(mdl)
命令或只是mdl
看模型mdl
包含的内容,但事实并非如此.该模型非常复杂,并存储了大量参数.
要了解内部的内容,您可以使用unlist(mdl)
并查看其中的大型参数列表.
这是命令手册的一部分,描述它是如何工作的:
配件在当地完成.也就是说,对于点x处的拟合,使用x附近的点进行拟合,通过它们与x的距离加权(在计算距离时忽略"参数"变量的差异).邻域的大小由α控制(由span或enp.target设置).对于α<1,邻域包括点的比例α,并且这些具有三重加权(与(1 - (dist/maxdist)^ 3)^ 3成比例.对于α> 1,使用所有点,假设'最大距离'是p解释变量的实际最大距离的α^(1/p)倍.
对于默认族,拟合是通过(加权)最小二乘法.对于family ="symmetric",使用具有Tukey的biweight的M估计过程的几次迭代.请注意,由于初始值是最小二乘拟合,因此不需要非常合适.
我认为它试图在每个点的邻域中拟合多项式模型(不仅仅是整个集合的单个多项式).但是邻域并不仅仅意味着之前的一个点和之后的一个点,如果我正在实现这样的函数,我会对点x的最近点施加一个很大的权重,并将权重降低到远点,并尝试拟合多项式适合最高的总重量.
然后,如果应该预测高度的给定x'最接近点x,我试图使用拟合在点x的邻域上的多项式 - 比如P(x) - 并将其应用于x' - 说P(x) ') - 这就是预测.
如果您正在寻找特别的东西,请告诉我.
为了更好地理解黄土拟合中发生的事情,请尝试loess.demo
从TeachingDemos包中运行该函数.这使您可以交互式地单击绘图(甚至在点之间),然后显示预测中使用的点集及其权重以及该点的预测线/曲线.
另请注意,默认值loess
是在黄土拟合上进行第二次平滑/插值,因此您在拟合对象中看到的可能不是真正的黄土拟合信息,而是次要平滑.