R语言之多重共线性的判别以及解决方法
来源:互联网 发布:卷皮折扣淘宝u站 编辑:程序博客网 时间:2024/04/26 04:31
多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。
1.可以计算X矩阵的秩qr(X)$rank,如果不是满秩的,说明其中有Xi可以用其他的X的线性组合表示;(完全的线性表示,此方法不能作为判别是否有共线性的标准,因为有可能存在共线性但不是完全线性相关)
2.也可以计算条件数kappa(X),k<100,说明共线性程度小;如果100<k<1000,则存在较多的多重共线性;若k>1000,存在严重的多重共线性。
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
collinear<-
data.frame
(
Y=
c
(10.006, 9.737, 15.087, 8.422, 8.625, 16.289,
5.958, 9.313, 12.960, 5.541, 8.756, 10.937),
X1=
rep
(
c
(8, 0, 2, 0),
c
(3, 3, 3, 3)),
X2=
rep
(
c
(1, 0, 7, 0),
c
(3, 3, 3, 3)),
X3=
rep
(
c
(1, 9, 0),
c
(3, 3, 6)),
X4=
rep
(
c
(1, 0, 1, 10),
c
(1, 2, 6, 3)),
X5=
c
(0.541, 0.130, 2.116, -2.397, -0.046, 0.365,
1.996, 0.228, 1.38, -0.798, 0.257, 0.440),
X6=
c
(-0.099, 0.070, 0.115, 0.252, 0.017, 1.504,
-0.865, -0.055, 0.502, -0.399, 0.101, 0.432)
)
XX<-
cor
(collinear[2:7])
kappa
(XX,exact=
TRUE
)
#exact=TRUE表示精确计算条件数;
[1] 2195.908
#大于1000,有严重的多重共线性
# eigen(XX)
处理时可以进行逐步回归,用step()命令,比如你一开始的模型是fm=lm(),step(fm)选择最小AIC信息统计量就可以了。这种方法是排除引起共线性的变量,是解决多重共线性的比较常用方法!
3.可以使用方差膨胀因子(VIF)
1
2
library
(car)
vif
(lm.sol)
得到各个系数的方差膨胀因子,一般认为,当0<VIF<10,不存在多重共线性(注意:在《R语言实战》第2版P182中认为VIF>4就存在多重共线性);当10≤VIF<100,存在较强的多重共线性,当VIF>=100,多重共线性非常严重。是判断多重共线性的比较常用方法!
阅读全文
0 0
- R语言之多重共线性的判别以及解决方法
- R语言之多重共线性
- 多重共线性的产生原因、判别、检验、解决方法
- R语言 检验多重共线性
- 数据挖掘总结之多重共线性与过拟合
- 多重共线性的解决方法
- R语言建立回归分析,并利用VIF查看共线性问题的例子
- 单组数据的描述性分析以及正态性判别r语言代码
- 【R语言 数据分析】多重共线性问题
- R语言-数据预处理的一些实用(万能)办法:缺失值、数据重复、共线性等等的处理
- R 教你做炫酷的--共线性系数展示
- 多重共线性问题的几种解决方法
- 多重共线性问题的几种解决方法
- 多重共线性问题的几种解决方法
- R判断逻辑回归参数共线性
- 使用R对共线性检验
- 利用R语言如何判别和分类
- 利用R语言如何判别和分类
- springmvc拦截器与web组件filter使用的粗浅认识
- linux修改系统的yum源为阿里云并添加epel源
- Mybatis-Plus代码生成器使用
- 磁盘及网络IO工作方式解析
- Centos6.5下装ZooKeeper
- R语言之多重共线性的判别以及解决方法
- Linux返回上一次访问的目录
- JSON.parse, JSON.stringify and eval
- 《统计学习方法》学习笔记-感知机
- uuid简单用法
- re模块替换字符串中的某些字符
- Apache安装
- stm32f10x.h 头文件解析
- java中变量,常量和运算符