线性回归模型比较-稳健回归,阻力回归,传统线性回归比较

浏览: 4292

稳健回归

先说一下在传统的回归中,使用的是最小二乘法进行的参数估计的,这个算法就要求误差项是相互独立,服从正态分布,零为数学期望并拥有相同方差的随机变量中,当实际中的样本数据或者观察值出现了异常值时,误差将不再服从正态分布,这样我们估计出来的模型参数将不准确了,而稳健回归能够克服异常值和异方差的影响,它的一个基本思想就是,采用迭代加权最小二乘法估计,为了减少异常值的作用,对不同值给予不同的权重,就是对残差小的点给予较大的权重,而残差较大的点给予较小的权重,根据残差大小确定权证,并建立起加权的最小二乘估计,反复迭代以改进权重系数,直至权重系数的改变小于一定的允许误差;从而达到稳健的目的;得到接近实际值的估计;常用的估计方法有:最小中位数平方法,M估计法,在R语言里有MASS包里的rlm函数可以使用;

阻力回归

阻力回归相比较更加稳健,也是稳健回归一种,更能处理高崩溃值的回归方法,这里只介绍最小中位数平方和估计的模型,它主要思想是通过选取K个观测点的原数据的子集,对此K个观测点做普通最小二乘法估计,基于此估计求次序残差平方,当数据集的基数不大时将上述操作作用于数据集的所有K子集,当数据集的基数很大时将上述操作作用于多个随机选取的K子集,最后保留具有最小中位数残差平方的估计,这里R语言里可以使用包MASS里的lqs函数;这里我们选用car包里面的Quartet数据集进行建模;在建模前我们先进行探索性的分析;

绘制散点图

plot(Quartet$x, Quartet$y3)

Clipboard Image.png

建立模型

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)

结果

Clipboard Image.png

从上面的结果来看,稳健回归和阻力回归线几乎是一条,而传统线性回归模型受极端值影响较为大,稳健回归不受峰值影响,三种方法中阻力回归模型是不敏感的,不过图中数据无法体现,本来想通过在增加一些参数结果比较,本人水平有限就讨论到此,有什么问题可以一起交流,喜欢就点赞吧,

推荐 3
本文由 夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册