稳健回归
先说一下在传统的回归中,使用的是最小二乘法进行的参数估计的,这个算法就要求误差项是相互独立,服从正态分布,零为数学期望并拥有相同方差的随机变量中,当实际中的样本数据或者观察值出现了异常值时,误差将不再服从正态分布,这样我们估计出来的模型参数将不准确了,而稳健回归能够克服异常值和异方差的影响,它的一个基本思想就是,采用迭代加权最小二乘法估计,为了减少异常值的作用,对不同值给予不同的权重,就是对残差小的点给予较大的权重,而残差较大的点给予较小的权重,根据残差大小确定权证,并建立起加权的最小二乘估计,反复迭代以改进权重系数,直至权重系数的改变小于一定的允许误差;从而达到稳健的目的;得到接近实际值的估计;常用的估计方法有:最小中位数平方法,M估计法,在R语言里有MASS包里的rlm函数可以使用;
阻力回归
阻力回归相比较更加稳健,也是稳健回归一种,更能处理高崩溃值的回归方法,这里只介绍最小中位数平方和估计的模型,它主要思想是通过选取K个观测点的原数据的子集,对此K个观测点做普通最小二乘法估计,基于此估计求次序残差平方,当数据集的基数不大时将上述操作作用于数据集的所有K子集,当数据集的基数很大时将上述操作作用于多个随机选取的K子集,最后保留具有最小中位数残差平方的估计,这里R语言里可以使用包MASS里的lqs函数;这里我们选用car包里面的Quartet数据集进行建模;在建模前我们先进行探索性的分析;
绘制散点图
plot(Quartet$x, Quartet$y3)
建立模型
library(MASS)
lm_test <- lm(y3~x,data=Quartet)
rlm_test <- rlm(y3~x,data=Quartet)
lqs_test <- lqs(y3~x,data=Quartet)
分别画出三条拟合线
abline(lm_test)
abline(rlm_test,col='red')
abline(lqs_test,lty=4)
结果
从上面的结果来看,稳健回归和阻力回归线几乎是一条,而传统线性回归模型受极端值影响较为大,稳健回归不受峰值影响,三种方法中阻力回归模型是不敏感的,不过图中数据无法体现,本来想通过在增加一些参数结果比较,本人水平有限就讨论到此,有什么问题可以一起交流,喜欢就点赞吧,