局部加权回归(Lowess)

一.算法思想

局部加权回归(Lowess)的大致思路是:以一个点x为中心,向前后截取一段长度为frac的数据,对于该段数据用权值函数w做一个加权的线性回归,记(x,\hat{y} )为该回归线的中心值,其中\hat{y} 为拟合后曲线对应值。对于所有的n个数据点则可以做出n条加权回归线,每条回归线的中心值的连线则为这段数据的Lowess曲线。

二.参数讲解

在这个思路中,能提取出的可调参数则是:

1.长度frac,应该截取多长的作为局部处理,frac为原数据量的比例;

2.权值函数w,使用什么样的权值函数w合适;

3.迭代次数it,在进行一次局部回归后,是否需要迭代,再次做回归;

4.delta回归间隔,是否真的每个点都需要算一次加权回归,能否隔delta距离算一次,中间没算的用插值替换即可。

三.权值函数

理解了lowess之后,可以明白,其实权值函数并不是固定的,只要满足一定的规则条件即可(当然并也非强制),条件如下:

选择该类函数大致思路是:希望W(x)大于0,且作用域为[-1,1],且为对称函数,该函数对于中间(0处)的值较大,两边(-1,1)处值较小。

选择思路是,中间的权值较高,对于加权回归的影响较大;[-1,1]的原因是,对于任意不规则的数据段,可以压缩映射到[-1,1],方便处理。

权值函数如,B函数(二次函数):

W函数(三次函数):

二次与三次函数的区别在于,三次函数对于周围权值降速更快,在平滑最初时候效果好,且适用于大多数分布,但增加了残差的方差。

对于权值函数选取,第一次迭代适用W函数(三次函数),之后迭代使用B函数(二次函数)。

权值函数的使用:

1、使用权值函数W(x)

2、数据段[d_{1},d_{2}],映射成[-1,1]对应的坐标;

3、带入函数W(x),计算出每个点对应的w_{i}

4、使用加权回归得出模型:\hat{Y}=X(X^{T}WX) ^{-1}X^{T}WY

四.回归迭代

上面讲了权值函数的选取和使用,提到了迭代,这里讲解怎么迭代。

首先,原值为y,预测值为\hat{y} ,残差为e=y-\hat{y} ,记s|e_{i}|的中位数。鲁棒性的权值调整附加值\delta _{k} =W(\frac{e_{k}}{6s} ),修正后的权值为\delta _{k}w_{k}

迭代过程为:

1.使用W函数(三次函数)作为权值函数,求出w_{i}

2.将w_{i}带入加权回归计算出\hat{y}

3.求出e=y-\hat{y} s

4.以B函数作为修正权值函数,求出\delta _{k} =B(\frac{e_{k}}{6s} ),计算出\delta _{k}w_{k}

5.将\delta _{k}w_{k}作为修正权值,重复2、3、4步骤

该迭代没有明确的终止条件,据大量实验得知,原文中提到是2次迭代就基本收敛了,我做实验的时候,3次左右基本收敛,根文中描述差不多。

五.间隔回归,中间插值

在使用局部加权回归的时候,如果每个点都使用一次加权回归,则会比较耗时,所以有了,对于部分点使用加权回归,而未使用加权回归的点采用插值法处理,速度会增快很多,同时不会影响太大效果。

可以每间隔delta个点使用一次加权回归,中间点采用:线性插值、二次插值、三次插值等方法。

statsmodels推荐当数据点N>5000的时候,选择d e l t a = 0.01 ∗ N

参考:https://blog.csdn.net/longgb123/article/details/79520982

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容