非参数回归之loess

一般来说,两个变量之间的关系是十分微妙的,仅仅采用简单的直线、曲线参数方程去描述是不够的,所以这时候就需要非参数回归。还记得非参数和参数方法的区别,就是在分析之前有没有对预测做一些限制,比如认为特征和变量之间具有线性关系,可以通过线性方程拟合,我们只需要求出方程的系数就是参数方法,如果直接从数据出发进行分析就是非参数方法。正正因为没有限制,所以非参数方法拟合得到的曲线可以更好地描述变量之间的关系,不管是多么复杂的曲线关系都能拟合得到。

第一种介绍的非参数方法是loess(locally weighted regression),它主要是把样本划分成一个个小区间,对区间中的样本进行多项式拟合,不断重复这个过程得到在不同区间的加权回归曲线,最后再把这些回归曲线的中心连在一起合成完整的回归曲线,具体过程如下
· 决定拟合点的数量和位置
· 以拟合点为中心,确定k个最接近的点
· 通过权重函数计算这k个点的权重
· 通过加权线性回归进行多项式拟合(一次或者二次)
· 对所有拟合点重复以上步骤

关于权重的确定,这里需要说明一下,首先它需要确定区间内的点到拟合的点的距离,这个距离指x轴的距离,我们还要找到区间内最大的距离,然后对其他距离做归一化处理:
$$w_i(x_0) = W(\frac{|x_0 - x_i|}{\Delta (x_0)})$$
然后这个权重实际上,是离拟合点的距离越近就越小,所以我们就需要做一个转化,比如用tricube weight function:
$$W(u) = (1 - u^3)^3$$
指数可以选择二次(B函数)或三次(W函数),三次方对周围权值的降速更快,平滑效果更好,切适用于大多数分布,但增加了残差的方差,一般来说,第一次迭代会更多实用W函数,第二次迭代会选择B函数。

关于对区间内的散点进行加权线性回归拟合直线,之所以我们这里采取加权线性回归而不是普通的线性回归,是因为考虑到对拟合点,它附近的点的取值对拟合线的影响应该更大,远一点的点的影响更小,所以我们要定义损失函数的时候,应该优先降低附近的点与拟合直线的误差,这也就是我们对普通的最小二乘法要加上权重的原因:
$$J(a,b) = \frac{1}{N} \sum_{i=1}^N w_i(y_i -ax_i -b)^2$$
可以看到,损失函数加上权重之后,我们在最小化损失函数时,就会更多地考虑权重大的点,希望他们更优,这样拟合出来的结果,自然就更加偏向权重大的点了,也就是说,距离拟合点更近距离的散点,对拟合直线的影响更大。

以上就是loess的基本思路。

参考资料:
[1]https://blog.csdn.net/longgb123/article/details/79520982
[2]https://blog.csdn.net/longgb123/article/details/79079434