楼主: jpld
2824 1

[学习分享] R in action读书笔记(10)-第八章:回归-- 异常观测值 改进措施 [推广有奖]

  • 2关注
  • 50粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
1263 个
通用积分
9.4733
学术水平
120 点
热心指数
120 点
信用等级
99 点
经验
1249 点
帖子
192
精华
0
在线时间
271 小时
注册时间
2009-5-29
最后登录
2024-6-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

8.4 异常观测值

8.4.1 离群点

car包也提供了一种离群点的统计检验方法。outlierTest()函数可以求得最大标准化残差绝对值Bonferroni调整后的p值:

> library(car)

> outlierTest(fit)

      rstudent unadjusted p-value Bonferonni p

Nevada 3.542929         0.00095088     0.047544

可以看到Nevada被判定为离群点(p=0.048)。注意,该函数只是根据单个最大(或正或负)残差值的显著性来判断是否有离群点。若不显著,则说明数据集中没有离群点;若显著,则你必须删除该离群点,然后再检验是否还有其他离群点存在。

8.4.2 高杠杆值点

高杠杆值观测点,即是与其他预测变量有关的离群点。换句话说,它们是由许多异常的预测变量值组合起来的,与响应变量值没有关系。高杠杆值的观测点可通过帽子统计量(hat statistic)判断。对于一个给定的数据集,帽子均值为p/n,其中p 是模型估计的参数数目(包含截距项),n 是样本量。一般来说,若观测点的帽子值大于帽子均值的2或3倍,即可以认定为高杠杆值点。

hat.plot<-function(fit){

p<-length(coefficients(fit))

n<-length(fitted(fit))

plot(hatvalues(fit),main="Index Plot of Hat Values")

abline(h=c(2,3)*p/n,col="red",lty=2)

identify(1:n,hatvalues(fit),names(hatvalues(fit)))

}

hat.plot(fit)


8.4.3 强影响点

强影响点,即对模型参数估计值影响有些比例失衡的点。例如,若移除模型的一个观测点时模型会发生巨大的改变,那么你就需要检测一下数据中是否存在强影响点了。有两种方法可以检测强影响点:Cook距离,或称D统计量,以及变量添加图(added variable

plot)。一般来说,Cook’s D值大于4/(nk 1),则表明它是强影响点,其中n为样本量大小,k 是预测变量数目。可通过如下代码绘制Cook’s D图形

> cutoff<-4/(nrow(states)-length(fit$coefficients)-2)

> plot(fit,which=4,cook.levels=cutoff)

> abline(h=cutoff,lty=2,col="red")


Cook’s D图有助于鉴别强影响点,但是并不提供关于这些点如何影响模型的信息。变量添加图弥补了这个缺陷。所谓变量添加图,即对于每个预测变量Xk,绘制Xk 在其他k 1个预测变量上回归的残差值相对于响应变量在其他k 1个预测变量上回归的残差值的关系图。car包中的avPlots()函数可提供变量添加图:利用car包中的influencePlot()函数,你还可以将离群点、杠杆值和强影响点的信息整合到一幅图形中

> library(car)

> avPlots(fit,ask=FALSE,onepage=TRUE,id.method="identify")

> influencePlot(fit,id.method="identify",main="InfluencePlot",sub="circle size is proportional to cook's distance")




反映出Nevada和Rhode Island是离群点,New York、California、Hawaii和Washington

有高杠杆值,Nevada、Alaska和Hawaii为强影响点。

8.5 改进措施

有四种方法可以处理违背回归假设的问题:

 删除观测点;

 变量变换;

 添加或删除变量;

 使用其他回归方法。

8.5.1 删除观测点

删除离群点通常可以提高数据集对于正态假设的拟合度,而强影响点会干扰结果,通常也会

被删除。删除最大的离群点或者强影响点后,模型需要重新拟合。若离群点或强影响点仍然存在,

重复以上过程直至获得比较满意的拟合。

8.5.2 变量变换

当模型不符合正态性、线性或者同方差性假设时,一个或多个变量的变换通常可以改善或调整模型效果。


当模型违反了正态假设时,通常可以对响应变量尝试某种变换。car包中的powerTransform()函数通过λ 的最大似然估计来正态化变量X λ。Box-Cox正态变换:

> library(car)

> states=data.frame(state.region,state.x77)

> summary(powerTransform(states$Murder))

bcPower Transformationto Normality


             Est.Power Std.Err. Wald LowerBound

states$Murder    0.6055  0.2639           0.0884

             Wald Upper Bound

states$Murder           1.1227


Likelihood ratio testsabout transformation parameters

                          LRT df       pval

LR test, lambda = (0)5.665991  1 0.01729694

LR test, lambda = (1)2.122763  1 0.14512456

当违反了线性假设时,对预测变量进行变换常常会比较有用。car包中的boxTidwell()函数通过获得预测变量幂数的最大似然估计来改善线性关系。下面的例子为用州的人口和文盲率来预测谋杀率,对模型进行了Box-Tidwell变换:

> boxTidwell(Murder~Population+Illiteracy,data=states)

          Score Statistic   p-value MLE of lambda

Population      -0.3228003 0.7468465     0.8693882

Illiteracy       0.6193814 0.5356651     1.3581188


iterations =  19

8.5.3 增删变量

改变模型的变量将会影响模型的拟合度。有时,添加一个重要变量可以解决许多问题,删除一个冗余变量也能达到同样的效果。

删除变量在处理多重共线性时是一种非常重要的方法。如果你仅仅是做预测,那么多重共线性并不构成问题,但是如果还要对每个预测变量进行解释,那么就必须解决这个问题。最常见的方法就是删除某个存在多重共线性的变量(某个变量vif 2)。另外一个可用的方法便是岭回归——多元回归的变体,专门用来处理多重共线性问题。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Action 读书笔记 观测值 CTI ACT 读书笔记 action

沙发
成长的乐趣 发表于 2015-4-30 10:18:56 |只看作者 |坛友微信交流群
好帖,学习中。。。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
jpld + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-10 09:23