精华内容
下载资源
问答
  • 文章目录变量的多重共线性诊断特征根分析法条件数法方差扩大因子法直观判定法举个例子(R语言) 变量的多重共线性诊断 多元线性回归模型的一个基本假设,就是要求自变量矩阵X列满秩,即秩rank(X)=p,也就是要求X的列...

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



    变量的多重共线性诊断

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

    考虑线性回归模型:

    这里假定自变量矩阵X已中心标准化,且rank(X)=p, 这时X’X/(n-1)为相关矩阵R。
    下面给出几个常用的复共线性诊断方法。

    特征根分析法

    条件数法

    方差扩大因子法

    一般标准:
    ①当0<VIF≤5时,没有复共线性;
    ②当5<VIF≤10时,有较弱的复共线性;
    ③当10<VIF≤100时,有中等或较强的复共线性;
    ④当VIF>100时,有严重的复共线性。

    由于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,同样没有复共线性
    
    

    输出:

    展开全文
  • 多重共线性诊断及处理

    千次阅读 2018-11-26 11:34:00
    一、定义 多重共线性(Multicollinearity)是指线性回归模型... 目前常用的多重共线性诊断方法  1.自变量的相关系数矩阵R诊断法:研究变量的两两相关分析,如果自变量间的二元相关系数值很大,则认为存在多重共...

    一、定义

    多重共线性Multicollinearity)是指线性回归模型中的解释变量之间由于存在较精确相关关系或高度相关关系而使模型估计失真或难以估计准确。完全共线性的情况并不多见,一般出现的是在一定程度上的共线性,即近似共线性。

    . 目前常用的多重共线性诊断方法
      1.自变量的相关系数矩阵R诊断法:研究变量的两两相关分析,如果自变量间的二元相关系数值很大,则认为存在多重共线性。但无确定的标准判断相关系数的大小与共线性的关系。有时,相关系数值不大,也不能排除多重共线性的可能。

    R实现:画协方差矩阵图
      2.方差膨胀因子(the variance inflation factor,VIF)诊断法:方差膨胀因子表达式为:VIFi=1/(1-R2i)。其中Ri为自变量xi对其余自变量作回归分析的复相关系数。当VIFi很大时,表明自变量间存在多重共线性。该诊断方法也存在临界值不易确定的问题,在应用时须慎重。

    判断:VIFj>10时,说明自变量x与其余自变量之间存在严重的多重共线关系,这种多重共线性可能会过度地影响最小二乘估计值
      3.容忍值(Tolerance,简记为Tol)法:容忍值实际上是VIF的倒数,即Tol=1/VIF。其取值在0~1之间,Tol越接近1,说明自变量间的共线性越弱。在应用时一般先预先指定一个Tol值,容忍值小于指定值的变量不能进入方程,从而保证进入方程的变量的相关系数矩阵为非奇异阵,计算结果具有稳定性。但是,有的自变量即使通过了容忍性检验进入方程,仍可导致结果的不稳定。
      4.多元决定系数值诊断法:假定多元回归模型p个自变量,其多元决定系数为R2y(X1,X2,…,Xp)。分别构成不含其中某个自变量(Xi,i=1,2,…,p)的p个回归模型,并应用最小二乘法准则拟合回归方程,求出它们各自的决定系数R2i(i=1,2,…,p)。如果其中较大的一个R2k与R2y很接近,就表明该自变量在模型中对多元决定系数的影响不大,说明该变量对Y总变异的解释能力可由其他自变量代替。它很有可能是其他自变量的线性组合。因此,该自变量进入模型后就有可能引起多重共线性问题。该方法也存在临界值和主观判断问题。
      5.条件数与特征分析法:在自变量的观测值构成的设计矩阵X中,求出变量相关系数R的特征值,如果某个特征值很小(如小于0.05 ),或所有特征值的倒数之和为自变量数目的5倍以上,表明自变量间存在多重共线性关系。

    三. R语言实现多重共线性的检验   

    1、 方差膨胀因子VIF

    得到各个系数的方差膨胀因子,一般认为,当0<VIF<10,不存在多重共线性(注意:在《R语言实战》第2版P182中认为VIF>4就存在多重共线性);当10≤VIF<100,存在较强的多重共线性,当VIF>=100,多重共线性非常严重。

    library(car)

    vif(lm.sol)

    注意:需要安装car包。

    2、基于条件数和特征分析法

    step1: 利用kappa函数,计算自变量矩阵的条件数;
    step2: 判断是否存在多重共线性. 从实际经验的角度,一般若条件数<100,则认为多重共线性的程度很小,若100<=条件数<=1000,则认为存在中等程度的多重共线性,若条件数>1000,则认为存在严重的多重共线性.

    注意:不用装包,kappa是R中内置函数,可以直接使用!

     

    四. 解决方法

    1、 处理时可以进行逐步回归,用step()命令,比如你一开始的模型是fm=lm(),step(fm)选择最小AIC信息统计量就可以了。这种方法是排除引起共线性的变量,是解决多重共线性的比较常用方法!

    2、 增大样本量,尽量样本量要远远大于自变量个数。

    3、 回归系数的有偏估计(岭回归,主成分分析,偏最小二乘法)

    例如:

    > 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)
    

      

    > library(car)
    载入需要的程辑包:carData
    > vif.dia<-vif(lm(Y~.,data = collinear))
    > sort(vif.dia,decreasing = TRUE)
            X4         X3         X1         X2         X5         X6 
    297.714658 266.263648 182.051943 161.361942   1.919992   1.455265 
    
    #逐步回归
    > fit <- lm(Y~.,data=collinear)
    > fit_step <- step(fit)
    > summary(fit_step)
    

      

     

    转载于:https://www.cnblogs.com/Christina-Notebook/p/10019415.html

    展开全文
  • 多重共线性的确认: 做出自变量间的相关系数矩阵:如果相关系数超过0.9的变量在分析时将会存在共线性问题。在0.8以上可能会有问题。但这种方法只能对共线性作初步的判断,并不全面。 【1】容忍度(Tolerance):有 ...
  • 多重共线性诊断(R语言)

    万次阅读 2019-01-22 14:48:22
    多重共线性诊断 1.方差扩大因子法 经验表明,VIFj≥10VIF_{j}\geq10VIFj​≥10时,就说明自变量xjx_{j}xj​与其余变量之间有严重的多重共线性,且这种多重共线性可能会过度地影响最小二乘估计值。 代码实现如下...

    多重共线性的诊断

    1.方差扩大因子法

    经验表明, V I F j ≥ 10 VIF_{j}\geq10 VIFj10时,就说明自变量 x j x_{j} xj与其余变量之间有严重的多重共线性,且这种多重共线性可能会过度地影响最小二乘估计值。

    代码实现如下:

    data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",head=TRUE)
    lm3.3<-lm(y~x1+x2+x3+x4+x5,data3.3)
    library(car)
    vif(lm3.3)
    

    输出结果为:
    在这里插入图片描述
      从输出结果看到, x 1 , x 2 x1,x2 x1,x2的方差扩大因子很大,远远超过10 ,说明这四个变量之间存在严重的多重共线性。
      一般情况下,当一个回归方程存在严重的多重共线性时,有若干个自变量所对应的方差扩大因子大于10,这个回归方程多重共线性的存在就是由方差扩大因子超过10 的这几个变量引起的,说明这几个自变量之间有一定的多重共线性的关系存在。知道了这一点,对于我们消除回归方程的多重共线性非常有用。

    2.特征根判定法

    通常认为条件数 k &lt; 100 k&lt;100 k<100时,设计矩阵 X X X多重共线性的程度很小; 100 ≤ k ≤ 1000 100\leq k\leq 1000 100k1000时,设计矩阵 X X X存在较强的多重共线性; k &gt; 1000 k&gt;1000 k>1000时,存在严重的多重共线性。

    代码实现如下:

    data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",head=TRUE)
    XX<-cor(data3.3[,2:6])
    kappa(XX,exact=TRUE)
    

    输出结果为:
    在这里插入图片描述
      根据条件数大于1000,说明自变量之间存在严重的多重共线性。为找出哪些变量是多重共线性的,需要计算矩阵的特征值和相应的特征向量,在R命令窗口下面代码:

    eigen(XX)
    

    输出结果为:
    在这里插入图片描述
      有结果知道相应的特征向量为
       φ = ( 3.99 , 0.93 , 0.07 , 0.01 , 0 ) T \varphi=(3.99,0.93,0.07,0.01,0)^{T} φ=(3.99,0.93,0.07,0.01,0)T
     
     即 3.99 X 1 ∗ + 0.93 X 2 ∗ + 0.07 X 3 ∗ + 0.01 X 4 ∗ ≈ 0 3.99X_{1}^{*}+0.93X_{2}^{*}+0.07X_{3}^{*}+0.01X_{4}^{*}\approx0 3.99X1+0.93X2+0.07X3+0.01X40。由于 X 3 ∗ , X 4 ∗ , X 5 ∗ X_{3}^{*},X_{4}^{*},X_{5}^{*} X3,X4,X5的系数几近于0,故 X 1 ∗ X_{1}^{*} X1 X 2 ∗ X_{2}^{*} X2之间存在着多种共线性。

    展开全文
  • 第matlab计量经济学多重共线性诊断与处理.doc 第五节多重共线性诊断与处理5.1多重共线性诊断数据来源:《计量经济学》于俊年编著对外经济贸易大学出版社2000.6p208-p209某国1998-1998的经济数据年份进口额(y)...

    41528d3028836879cd698677c3999917.gif第matlab计量经济学多重共线性的诊断与处理.doc

    第五节多重共线性的诊断与处理5.1多重共线性的诊断数据来源:《计量经济学》于俊年编著对外经济贸易大学出版社2000.6p208-p209某国1998-1998的经济数据年份进口额(y)国内产值(x1t)存货额(x2t)国内消费(x3t)198815.9149.34.2108.1198916.4161.24.1114.8199019171.53.1123.2199119.1175.53.1126.9199218.8180.81.1132.1199320.4190.72.2137.7199422.7202.12.1146199526.5212.15.6154.1199628.1226.15162.3199727.6231.95.1164.3199826.32390.7167.65.1.1条件数与病态指数诊断重共线性。,则认为存在严重的多共线性;若或较强的多重,则认为存在中等程度很小;则认为多重共线性程度重共线性。,则认为存在严重的多的多重共线性;若或较强,则认为存在中等程度度很小;若,则认为多重共线性程阵(不包括常数项)为自变量的相关系数矩30301,111)()()(minax1CICIRIRR设x1,x2,…,xp是自变量X1,X2,…XP,经过中心化和标准化得到的向量,即:RxTii)(记(x1,x2,…,xp)为x,设为xTx一个特征值,为对应的特征向量,其长度为1,若,则:002121000cXcXcxxxppTTT根据上表,计算如下:x=[149.3,4.2,108.1;161.2,4.1,114.8;171.5,3.1,123.2;175.5,3.1,126.9;180.8,1.1,132.1;190.7,2.2,137.7;202.1,2.1,146;212.1,5.6,154.1;226.1,5,162.3;231.9,5.1,164.3;239,0.7,167.6]求x的相关矩阵RR=corrcoef(x)R=1.000000000000000.024470490835730.997152185820790.024470490835731.000000000000000.035673222920070.997152185820790.035673222920071.00000000000000求R的条件数:cond(R)ans=7.178039564809832e+002也可先求R的特征值e=eig(R)e=0.002784831061250.998252415043421.99896275389533注:3自变量的个数=ee(3)/e(1)ans=7.178039564809491e+002条件数为717.804,大于100,存在较严重的多重共线性。为了进一步了解哪些变量之间存在线性关系,计算相关矩阵的特征值和相应的特征向量:[v,d]=eig(R)v=0.706964538965750.035698735796330.706347464713710.00795062868633-0.999063342195630.04253499482058-0.707204304390490.024454826587770.70658618250581d=0.002784831061250000.998252415043420001.99896275389533注意:Rv=vdv为标准正交矩阵最小的特征值为0.00278483106125,对应的向量为:(0.70696453896575,0.00795062868633,-0.70720430439049)T考虑到第二个数0.00795062868633约等于0,从而即:072.0.31x所以存在使得:,c0321cx5.1.2方差膨胀因子诊断每一个自变量对应的方差膨胀因子为R-1相应的对角元素rjj。若记xj关于其他p-1个自变量的复相关系数为Rj则有:}{max12jjjjrVIFr如果VIF10,则认为自变量间存在严重的多重共线性。在本例中:diag(inv(R))ans=1.0e+002*1.797227470436430.010234788725901.79843993838056VIF=max(diag(inv(R)))VIF=1.798439938380555e+002VIF远大于10,存在严重的多重共线性。注意:书上结果错了,我用SPSS算了,也是这个结果。方差膨胀因子也可按此计算:x1=x(:,1);x2=x(:,2);x3=x(:,3);[bbint,r,rint,stats]=regress(x1,[ones(11,1)x2x3]);一定要常数项1/(1-stats(1))ans=1.797227470435788e+0025.1.3容许度(Tolerance)诊断若记xj关于其他p-1个自变量的复相关系数为Rj则有:Tolj=1-R2j它是方差膨胀化因子的倒数。越小自变量共线性越强。小于0.1高度共线在本例中:Tol=1./diag(inv(R))Tol=0.005564125946490.977059738878030.00556037473734最小的值远小0.1,高度多重共线性。5.1.4方差比例诊断(看AppliedEconometricusingMatlab的第84页)注意:AppliedEconometricusingMatlab的第84页,4.4式是错的,4.3,4.5,4.6式是对的。某国1998-1998的经济数据年份进口额(y)国内产值(x1t)存货额(x2t)国内消费(x3t)198815.9149.34.2108.1198916.4161.24.1114.8199019171.53.1123.2199119.1175.53.1126.9199218.8180.81.1132.1199320.4190.72.2137.7199422.7202.12.1146199526.5212.15.6154.1199628.1226.15162.3199727.6231.95.1164.3199826.32390.7167.6x1=[149.3,4.2,108.1;161.2,4.1,114.8;171.5,3.1,123.2;175.5,3.1,126.9;180.8,1.1,132.1;190.7,2.2,137.7;202.1,2.1,146;212.1,5.6,154.1;226.1,5,162.3;231.9,5.1,164.3;239,0.7,167.6];x=[ones(size(x1,1),1),x1];vnames=strvcat( constant , x1 , x2 , x3 );fmt= %12.6f ;bkw(x,vnames,fmt);Belsley,Kuh,WelschVariance-decompositionK(x)constantx1x2x310.0000000.0000510.0000000.0000121400.0000060.140284

    展开全文
  • 多重共线性是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或者难以估计准确。...多重共线性诊断 直观判断法: 增加或者剔除一个自变量,或者是改变一个观测值,回...
  • Python 多重共线性检验

    千次阅读 2021-03-13 10:28:41
    多重共线性概念 共线性问题指的是输入的自变量之间存在较高的线性相关度。共线性问题会导致回归模型的稳定性和准确性大大降低,另外,过多无关的维度计算也很浪费时间。 多重共线性产生原因 样本量太少,导致部分...
  • 回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣。但是就是技术而言,如何确定模型中的各各特征之间是否有多重共...
  • 多重共线性问题 -- 岭回归方法

    千次阅读 2020-02-28 00:18:10
    第二部分,借由1987-2007年的人口、消费和科技对碳排放的影响的数据来说明多重共线性问题(包括如何从定性和定量两个方面判断多重共线性问题)和多重共线性问题对普通最小二乘估计的影响。第三部分,使用岭回归对第...
  • 多重共线性与虚拟变量

    千次阅读 2016-12-20 08:35:04
    什么是多重共线性直接解答:2个或2个以上变量存在相关性。数学语言:存在 c1x1i+c2x2i+⋯+ckxki=0,i=1,2⋯,n c_1 x_{1i} + c_2 x_{2i} + \cdots + c_k x_{ki} = 0, i=1,2 \cdots, n 即其中一个变量可以由其他
  • 当回归模型中两个或两个以上的自变量彼此相关时,则称回归模型中存在多重共线性,也就是说共线性的自变量提供了重复的信息。 那么这种多重共线性会有什么不好的影响吗?答案是会的,而且影响非常不好。总结一下就是...
  • 多重线性在进行多重线性回归时,有一个隐含假设为各个自变量之间相互独立;若自变量之间存在线性相关关系,则称存在多重线性。怎么判断自变量之间存在多重线性?常用的评价指标有两个:容许度和膨胀因子(VIF...
  • 如果违背这一假定,即线性回归模型中某一个解释变量与其他解释变量间存在线性关系,就称线性回归模型中存在多重共线性多重共线性违背了解释变量间不相关的古典假设,将给普通最小二乘法带来严重后果。这里,我们...
  • 对于线性回归模型,数据中是不能有多重共线性的。我想知道如果使用决策树或者随机森林或者其他一些基于树的模型,数据中的多重共线性的现象对模型有没有什么影响? 1、回答1 随机森林的预测能力不受多重共线性影响。...
  • 多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。   1.可以计算X矩阵的秩qr(X)$rank,如果不是满秩的,说明其中有Xi...
  • 统计分析---多重共线性

    千次阅读 2016-11-11 16:12:06
    多重共线性基础知识
  • 方差膨胀系数(variance inflation factor,VIF)是衡量多元线性回归模型中复 (多重)共线性严重程度的一种度量。它表示回归系数估计量的方差与假设自变量间不线性相关时方差相比的比值。  多重共线性是指自变量之间...
  • 多重共线性、异方差、自相关多重共线性异方差自相关 多重共线性 1 多重共线性是指各个解释变量之间有准确或近似准确的线性关系。 2 多重共线性的原因: (1)经济变量之间具有共同变化趋势。 (2).利用截面数据建立...
  • 多重共线性问题的几种解决方法

    万次阅读 2017-06-02 09:45:04
    如果违背这一假定,即线性回归模型中某一个解释变量与其他解释变量间存在线性关系,就称线性回归模型中存在多重共线性多重共线性违背了解释变量间不相关的古典假设,将给普通最小二乘法带来严重后果。 所谓多重...
  • 多重共线性一些指标解释

    千次阅读 2019-12-22 13:21:54
    ANOVA中 F检验是对整个模型而已的,看是不是自变量系数不全为0,这里F检验值23,对应P概率=0,显著性P<0.05,H1成立,说明显著...SPSS对于多重共线性的判断指标有以下几种:容忍度(Tolerance)、方差膨胀因子(V...
  • SPSS 多重共线性问题【SPSS 039期】

    千次阅读 2020-06-10 10:54:05
    3多重共线性问题 3.1导读 根据回归分析的基本假设,自变量之间要求相互独立的。如果某两个或多个自变量之间出现了相关性,导致参数估计出现偏差,或者标准误很大,模型失真,则称为存在多重共线性。 3.2主要内容 ...
  • 点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 本文转自 | 深度学习这件小事 当用最小二乘法进行线性回归时,在面对一堆数据集存在多重共线性时,最...
  • 第6章 多重共线性的情形及其处理 6.6 对第5章思考与练习中第9题(xt5.9)财政收入的数据,分析数据的多重共线性,并根据多重共线性剔除变量,将所得结果与用逐步回归法所得的选元结果相比较。 rm(list=ls()) # ----...
  • 我们在使用python的随机森林包时,会用到max_feature这个参数 ...选择sqrt可以去除样本中特征之间多重共线性的干扰,sqrt代表每次选择根号n个特征进行建树。从而减少样本间多重共线性的干扰。 ...
  •  多重共线性: 也即使用的多个预测变量之间存在线性相关。多重共线性会导致解的不稳定,进而可能导致意外的结果。在线性代数中,基坐标必须是相互正交的,也即不相关的,此处在做多元回归预测时,必须保证预测变量...
  • 用于确定回归矩阵中共线性的程度和性质(也称为多重共线性)的几个 Matlab 函数。 给定一个设计矩阵,返回条件指数(最大奇异值与每个奇异值的比率)、方差分解比例和方差膨胀因子。 Belsley、Kuh 和 Welsch [1] ...
  • UA MATH571A QE练习 R语言 多重共线性与岭回归 这是2017年1月的第4题。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,274
精华内容 909
关键字:

多重共线性的诊断