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)。另外一个可用的方法便是岭回归——多元回归的变体,专门用来处理多重共线性问题。

R in action读书笔记(10)-第八章:回归-- 异常观测值 改进措施的更多相关文章

  1. R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型

    8.6 选择“最佳”的回归模型 8.6.1 模型比较 用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度.所谓嵌套模型,即它的一 些项完全包含在另一个模型中 用anova()函数比较 &g ...

  2. R in action读书笔记(9)-第八章:回归 -回归诊断

    8.3回归诊断 > fit<-lm(weight~height,data=women) > par(mfrow=c(2,2)) > plot(fit) 为理解这些图形,我们来回 ...

  3. R in action读书笔记(8)-第八章:回归(上)

    8.1回归的多面性 8.2 OLS回归 OLS回归拟合模型形式: 为了能够恰当地解释oLs模型的系数,数据必须满足以下统计假设. 口正态性对于固定的自变量值,因变量值成正态分布. 口独立性Yi值之间相 ...

  4. R in action读书笔记(22)第十六章 高级图形进阶(下)

    16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set() ...

  5. R in action读书笔记(20)第十五章 处理缺失数据的高级方法

    处理缺失数据的高级方法 15.1 处理缺失值的步骤 一个完整的处理方法通常包含以下几个步骤: (1) 识别缺失数据: (2) 检查导致数据缺失的原因: (3) 删除包含缺失值的实例或用合理的数值代替( ...

  6. R in action读书笔记(19)第十四章 主成分和因子分析

    第十四章:主成分和因子分析 本章内容 主成分分析 探索性因子分析 其他潜变量模型 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因 ...

  7. R in action读书笔记(17)第十二章 重抽样与自助法

    12.4 置换检验点评 除coin和lmPerm包外,R还提供了其他可做置换检验的包.perm包能实现coin包中的部分功能,因此可作为coin包所得结果的验证.corrperm包提供了有重复测量的相 ...

  8. R in action读书笔记(13)第十章 功效分析

    功效分析 功效分析可以帮助在给定置信度的情况下,判断检测到给定效应值时所需的样本量.反过来,它也可以帮助你在给定置信度水平情况下,计算在某样本量内能检测到给定效应值的概率.如果概率低得难以接受,修改或 ...

  9. R in action读书笔记(12)第九章 方差分析

    第九章方差分析 9.2 ANOVA 模型拟合 9.2.1 aov()函数 aov(formula, data = NULL, projections =FALSE, qr = TRUE, contra ...

随机推荐

  1. Selenium 工具介绍、安装、配置及使用

    概念 selenium是一款跨平台开源工具,用于web的功能完整性測试,想做压力測试的能够换软件了 先看一眼官方站 http://docs.seleniumhq.org/download/ 首先要FQ ...

  2. Entity Framework工具POCO Code First Generator的使用(参考链接:https://github.com/sjh37/EntityFramework-Reverse-POCO-Code-First-Generator)

    在使用Entity Framework过程中,有时需要借助工具生成Code First的代码,而Entity Framework Reverse POCO Code First Generator是一 ...

  3. android8 Notification

     界面Layout:  customnotice.xml <?xml version="1.0" encoding="utf-8"?> <Li ...

  4. Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:\solr\solr-7.2.1\server\solr\new_core'

    \solr-7.2.1\server\solr\configsets\_default  下的conf  复制到:   \solr-7.2.1\server\solr\new_core

  5. ISA总线

    ISA总线: (Industry Standard Architecture:工业标准体系结构)是为PC/AT电脑而制定的总线标准,为16位体系结构,只能支持16位的I/O设备,数据传输率大约是16M ...

  6. python dns server开源列表 TODO

    基于dns lib的,https://github.com/andreif/dnslib 有:https://www.cnblogs.com/anpengapple/p/5664500.html ht ...

  7. openfire重新配置数据库oracle、mysql

    1.openfire重新配置设置: 删除target/openfire/conf/openfire.xml中的 <setup>true</setup> 2.删除浏览器之前访问过 ...

  8. bzoj 5017 炸弹

    题目大意: 直线上有n个炸弹有坐标x和半径r 当一个炸弹被引爆时 若有炸弹的坐标在该炸弹坐标+-r范围内则另一个炸弹也被引爆 求先引爆每一个炸弹最终会引爆多少炸弹 思路: 可以想到n平方连边然后tar ...

  9. UVa 12709 && UVaLive 6650 Falling Ants (水题)

    题意:给定 n 个长方体的长,宽,高,让你求高最大的时候体积最大是多少. 析:排序,用高和体积排序就好. 代码如下: #pragma comment(linker, "/STACK:1024 ...

  10. bzoj 1007: [HNOI2008]水平可见直线【半平面交】

    其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top-1]交点的x轴在s[top],s[top-1]交点左侧,则说明s[top]被a[i],s[ ...