忘了2017,拥抱分位数回归-当线性回归条件不满足时

一、疑 无 路

小编想用线性回归来探讨收入和教育水平的关系,严格的小编找来张华老师的文章关于线性回归那点事,满心期待能够满足线性、独立性、残差正态性和方差齐性等条件。可惜现实是残酷的,小编只能看着线性回归远去。还好小编是一个乐观的人,忘了线性回归,转身就能拥抱分位数回归。

二、柳暗花明

分位数回归,好像很陌生。它是由中位数回归推广而来。18世纪中期,Boscovich、Laplace和Edgeworth提出并进一步研究了中位数回归。1978年,Koenker和Bassett将中位数回归推广到了一般的分位数回归上。

分位数回归相对于线性回归,应用条件更加宽松,它依据因变量的条件分位数对自变量进行回归,可以得到所有分位数下的回归模型,能够更加精确的描述自变量对因变量的变化范围,以及条件分布形状的影响。

三、可 能 不 受 欢 迎的算 法 简 介

线性回归是通过最小二乘法,设法使残差平方和最小,以估计参数。分位数回归则是设法使残差的绝对值最小,但是,需要有一个权重。当我们估计第0.1分位数时,回归线上方观察值的权重为0.1,回归线下方观察值的权重为0.9。位于回归线上方的90%的数据点导致了正残差,权重为0.1;回归线下方的10%的数据点导致了负残差,权重为0.9。回归线上方所有数据点到回归线的距离总和乘以权重0.1,回归线下方所有数据点的距离总和乘以权重0.9,二者之和即为加权距离总和,设法使加权距离总和最小,即可估计相关参数。

四、可 能 受 欢 迎的代 码

说的好像挺复杂,咱们还是看看怎么实现吧。

R软件中quantreg程序包可用于实现分位数回归。

首先,安装和加载程序包。

install.package(quantreg)#安装程序包

library(quantreg)#加载程序包

data(engel)#加载系统数据,可以通过mydata

head(engel)#查看数据前6行

#其中income为家庭收入,foodexp为食物支出

fit1

#拟合第0.5分位数的回归模型,即中位数回归

summary(fit1,se="boot")#查看回归结果

fit2

tau =c(0.05,0.25,0.5,0.75,0.95))

#拟合多个分位数回归模型

summary(fit2,se="boot")#查看回归结果

五、应 该 受 欢 迎的结 果

结果发现,不同分位点下,家庭收入对食物支出的回归系数是不同的。是不是就可以说,不同分位点下,收入对食物支出的影响是不同的呢?在下结论前,还需要检验3个模型是否有差异,结果发现p小于0.05,说明不同分位点下,收入对食物支出的影响是不同的。可以说,食物支出高的情况下和食物支出低的情况下,收入对食物支出的影响是不同的。

fit1 = rq(foodexp ~ income, tau = 0.25)

fit2 = rq(foodexp ~ income, tau = 0.5)

fit3 = rq(foodexp ~ income, tau = 0.75)

anova(fit1,fit2,fit3)

还等什么,新技能学起来。欢迎留言讨论。再唠叨一句。什么时候考虑分位数回归呢?不满足线性回归诸多条件时!因变量的分布极不平衡时,比如收入!因变量不同水平下,自变量对因变量的影响可能不同时!

六、肯 定 受 欢 迎的在 这 里

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180104B0320400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券