多重共线性诊断与R语言实践

网友投稿 321 2022-09-26

多重共线性诊断与R语言实践

鄙人学习笔记 参考文献:《计量经济学模型及R语言应用》-王斌会

文章目录

​​变量的多重共线性诊断​​

​​特征根分析法​​​​条件数法​​​​方差扩大因子法​​​​直观判定法​​​​举个例子(R语言)​​

变量的多重共线性诊断

多元线性回归模型的一个基本假设,就是要求自变量矩阵X列满秩,即秩rank(X)=p,也就是要求X的列向量之间线性无关。如果X的列不满秩,则(X’X)-1将不存在,于是基于最小二乘回归系数估计,b = (X’X)-1X’y将不存在,所以很难得出稳定的结果。

特征根分析法

条件数法

方差扩大因子法

一般标准: ①当0100时,有严重的复共线性。

由于VIF=1/TOL (TOL称为容忍度),所以也可以用TOL来诊断复共线性。

直观判定法

举个例子(R语言)

数据:

输入:

Xdf <- testdf[, -1]Xscale <- scale(Xdf, T, T)#scale(data, center=T,scale=T)#1.center和scale默认为TRUE #2.center为TRUE 表示数据中心化 #3.scale为TRUE 表示数据标准化Rtest <- (t(as.matrix(Xscale)) %*% as.matrix(Xscale))/14# * 是表示两个矩阵中对应的元素的乘积# %*% 表示通常意义下的矩阵乘积,要求第一个矩阵的列数与第二个矩阵行数相等。#相关矩阵 = t(scale(X))*scale(X)/(n-1)#备注:X为解释变量矩阵,维度是n*p;n为样本量(Rtest)(R01 <- cor(Xscale))#查看我们自制的相关矩阵和R给出的相关矩阵是否一样#1.特征分析法(lamda = eigen(Rtest)$value)#本次实验的相关系数矩阵最小特征根为0.1626082 >0.1 则不存在复共线性#2.条件数法(CN = max(lamda)/min(lamda))#本次实验中CN = 11.53401,0<= CN <= 30, 则不存在多重共线性#3.方差扩大因子法(VIF)R2 <- summary(lm(x2 ~ x1 + x3, data = testdf))$r.sq(VIF1 <- 1/(1 - R2))#本次实验中VIF = 3.383924,0<= VIF <-5,同样没有复共线性

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring中@RequestParam使用及遇到的一些坑
下一篇:Python3--文件读取、写入、追加及seek()方法的使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~