我试图了解如何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
,例如, span
或degree
。 当我predict(mdl, 1.5)
这是怎么predict
能够在这个新产生的值x
? 难道是最近的两个现有之间插x
值及其相关y_hat
? 如果是这样,什么是它背后是如何做的这个细节呢?
我已阅读cloess
在线文档,但我无法找到它讨论了这一点。
但是,因为没有系数被存储的“模式”,在这种情况下,仅仅是被用来预测每个y_hat什么细节
也许你已经使用print(mdl)
命令或者干脆mdl
看什么型号mdl
包含,但这种情况并非如此。 该模型是非常复杂和存储的参数一个大数目。
有一个想法里面有什么,你可以使用unlist(mdl)
看看在它的参数大名单。
这是描述它如何工作的命令的手册中的一部分。
配件在本地完成。 也就是说,对于配合在点x,拟合在x的附近,从x中通过距离加权使用点(在“参数”变量差异计算距离时被忽略)制成。 邻域的大小是由α控制(由跨度或enp.target设置)。 对于α<1,邻域包括的点的比例α,并且这些具有三重三次加权(正比于(1 - (DIST / maxdist)^ 3)^ 3)。 对于α> 1,所有点都使用的,与“最大距离”假定为α的p解释变量的实际最大距离^(1 / p)的倍。
对于默认家族,拟合是(加权)最小二乘法。 对于家庭=“对称”的几个使用Tukey biweight一个M估算程序的重复使用。 要知道,作为初始值是最小二乘法拟合,这不一定是一个非常适合耐。
我相信的是,它试图在每一个点(不只是一整套单一多项式)附近,以适应多项式模型。 但居委会并不意味着以前只有一个点和后一个点,如果我实现这样的功能,我把最近的点,点X,和较低的权重远点的大重量,并试图以适应多项式符合最高的总重量。
然后,如果给定的x“为其高度应预测最接近点X,我试图用装在点x的邻里多项式 - 说P(X) - 并将其应用在X” - 说,P(X “) - 这将是预测。
让我知道如果你正在寻找什么特别的东西。
为了更好地理解什么是在黄土配合试运行发生loess.demo
从TeachingDemos包功能。 这可让您以交互方式单击图(甚至点之间),然后它显示的集预测,该点的预测线/曲线用点及其权重。
还要注意,默认loess
是做了第二次平滑/插值黄土契合,让你在装物体看什么可能不是真正的黄土调配信息,但二级平滑。
发现该手册的第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.