多重共线性
多重共线性,即,解释变量之间是线性相关的。完全的多重共线性并不多见,即使出现了,stata也会自动识别并且删除多余的解释变量。例如:
. gen x1=1+x
. reg y x x1
Source SS df MS Number of obs = 14
F( 1, 12) = 88.66 Model 1459.5467 1 1459.5467 Prob > F = 0.0000
Residual 197.542967 12 16.4619139 R-squared = 0.8808
Adj R-squared = 0.8709 Total 1657.08967 13 127.468436 Root MSE = 4.0573
y Coef. Std. Err. t P>|t| [95% Conf. Interval]
x (dropped)
x1 .3652809 .0387934 9.42 0.000 .2807573 .4498045
_cons -6.884479 2.205773 -3.12 0.009 -11.69045 -2.078513
较为常见的是近似的多重共线性,它的存在直接导致了模型参数估计值的不精确,并且,相应的显著性t检验接受零假设的可能性变大。
一、检验
1、不显著系数法
由于多重共线性的存在,它所表现出的症状通常是整个回归方程的样本科决系数R2较大,整体的显著性F检验也是显著的,但是单个系数的t检验却并不显著,或者系数估计值大小不合理、甚至符号与理论预期相反。
. reg y x x1 x2
Source SS df MS Number of obs = 14
F( 3, 10) = 25.16 Model 1463.19995 3 487.733315 Prob > F = 0.0001
Residual 193.88972 10 19.388972 R-squared = 0.8830
Adj R-squared = 0.8479 Total 1657.08967 13 127.468436 Root MSE = 4.4033
y Coef. Std. Err. t P>|t| [95% Conf. Interval]
x .5154173 .6534655 0.79 0.449 -.9405946 1.971429
x1 .7214368 2.209536 0.33 0.751 -4.201716 5.64459
x2 -.7218647 2.212266 -0.33 0.751 -5.651101 4.207372
_cons -7.044274 6.923512 -1.02 0.333 -22.47082 8.382273
2、拟合优度检验
该类方法的思想是逐个模型中的解释变量对其它解释变量回归,分别求出个回归方程的样本可决系数,如果R2接近1,则该变量可以被其它变量线性解释,存在多重共线性。
该类方法可以延扩为“相关矩阵法”,即:计算解释变量之间的相关系数矩阵,如果矩阵的某个元素绝对值很大(一般在0.8以上),就可以判断两个解释变量间是否存在多重共线性。
. corr x x1 x2
(obs=14)
x x1 x2
x 1.0000
x1 0.9757 1.0000
x2 0.9758 1.0000 1.0000
这里需要注意的是,该类方法只是一个充分而非必要条件,也就是说,如果相关系数很大,一定存在多重共线性,但是,如果相关系数很小,不一定不存在多重共线性。
3、方差膨胀因子
关于这种方法,思想不是很简单,只要把结论记住就好了。该方法是从回归系数的方差入手来分析多重共线性的。
命令:estat vif (vif为variance inflation factor的缩写)该命令要在回归之后进行,会得到各个解释变量的方差膨胀因子,vif 越大,说明多重共线性问题越严重。一个经验规则是:最大的vif不超过10且平均的vif值小于1,则认为不存在严重的多重共线性。
. estat vif
Variable VIF 1/VIF
x2 3.90e+07 0.000000
x1 3.88e+07 0.000000
x 240.91 0.004151
Mean VIF 2.60e+07
二、修正
如果多重共线性的存在并不影响你所关心变量的显著性,可以不必理会,否则,则需要增大样本容量或者对模型进行重新设定。具体的方法有很多。stata提供了逐步回归法来修正存在的多重共线性问题。不同于书上的逐步回归思路,stata中的stepwi命令提供了前进法与后退法两种思想。
1、前进法
命令:stepwi, pe(#): ...
首先用被解释变量对每个解释变量进行回归,将R2进行排序,通常选取
R2最大的作为基础方程。然后R2由高到低的顺序依次加入解释变量,根
据其显著性水平判断是否保留在模型中。其中,pe(#) 指定了从模型中
删除的变量的显著性水平:如果p>=pe(#),则从模型中将改变量删除。例:模型中存在三个解释变量,分别为x x1 x2 t2,则相应的命令为:
stepwi,pe(0.05):reg y x x1 x2 t2
显示结果如下:
. stepwi,pe(0.05):reg y x x1 x2 t2
begin with empty model
p = 0.0000 < 0.0500 adding t2
Source SS df MS Number of obs = 14 F( 1, 12) = 106.41 Model 1489.16205 1 1489.16205 Prob > F = 0.0000 Residual 167.92
7617 12 13.9939681 R-squared = 0.8987 Adj R-squared = 0.8902 Total 1657.08967 13 127.468436 Root MSE = 3.7409 y Coef. Std. Err. t P>|t| [95% Conf. Interval]
t2 .1659107 .0160833 10.32 0.000 .1308683 .2009531 _cons -.8263816 1.535971 -0.54 0.600 -4.172976 2.520213该命令等价于:
(1)reg y x
reg y x1
reg y x2
reg y t2
得到的R2排序为:t2 x x1 x2,所以选择的基础方程为:
y=β0+β1∗t2+u。
(2)在模型中添加变量x
reg y t2 x
. reg y t2 x
Source SS df MS Number of obs = 14
F( 2, 11) = 53.85 Model 1503.53903 2 751.769515 Prob > F = 0.0000
Residual 153.550635 11 13.9591486 R-squared = 0.9073
Adj R-squared = 0.8905 Total 1657.08967 13 127.468436 Root MSE = 3.7362
y Coef. Std. Err. t P>|t| [95% Conf. Interval]
t2 .3859351 .2173979 1.78 0.103 -.0925544 .8644246
x -.4906528 .4834704 -1.01 0.332 -1.554764 .5734583
_cons 7.025516 7.887576 0.89 0.392 -10.33492 24.38595
结果显示,两个变量均不显著,所以删除变量x
(3)在模型中添加变量x1
reg y t2 x1
. reg y t2 x1
Source SS df MS Number of obs = 14 F( 2, 11) = 49.11 Model 1490.20809 2 745.104044 Prob > F = 0.0000 Residual 166.881578 11 15.1710526 R-squared = 0.8993 Adj R-squared = 0.8810 Total 1657.08967 13 127.468436 Root MSE = 3.895 y Coef. Std. Err. t P>|t| [95% Conf. Interval]
t2 .1494096 .0650344 2.30 0.042 .0062699 .2925494 x1 .0003198 .0012179 0.26 0.798 -.0023607 .0030003 _cons -.6349874 1.757536 -0.36 0.725 -4.503298 3.233323结果显示变量不显著,所以,删除变量x1
(4)在模型中添加变量x2
reg y t2 x2
. reg y t2 x2
Source SS df MS Number of obs = 14
F( 2, 11) = 49.47 Model 1491.30046 2 745.650232 Prob > F = 0.0000 Residual 165.789201 11 15.0717455 R-squared = 0.9000
Adj R-squared = 0.8818 Total 1657.08967 13 127.468436 Root MSE = 3.8822
y Coef. Std. Err. t P>|t| [95% Conf. Interval]
t2 .1488109 .0483681 3.08 0.011 .0423533 .2552684
x2 .0000241 .0000641 0.38 0.714 -.0001169 .0001652
_cons -.4444346 1.889208 -0.24 0.818 -4.602554 3.713685在该情况下,变量x2不显著,所以删除。
最终,我们得到的模型为:y=β0+β1∗t2+u。这与命令stepwi,pe(0.05):reg y x x1 x2 t2所得到的结果一致。
2、后退法
后退法的思想与前进法相反,是将被解释变量对所有解释变量进行回归,然后,将显著性水平最差且低于指定水平的变量删除后重新进行回归,如果仍存在解释变量不显著,则继续删除,直到所有解释变量均显著为止。
命令:stepwi,pr(#):…
针对上例,则命令为:stepwi,pr(0.05):reg y x x1 x2 t
结果如下:
至于该回归的结果,可以自己进行回归验证一下。对比相应的P 值是否一致。
关于该方法的更多使用说明,可以再命令栏输入:help stepwi 查看帮助文档。
练习:美国电力行业的成本函数为:TC =δQ 1r PL α1 PK α2(PF )α3,其中,TC 为总成本,Q 为产量,PL 为工资率,PF 为燃料价格,PK 为资本租赁价格,取对数得到各个解释变量的对数值,检验是否存在多重共线性,如果存在,试将其进行处理,然后判断r 的估计值。显著性水平设置为5%。 _cons -.8263816 1.535971 -0.54 0.600 -4.172976 2.520213 t2 .1659107 .0160833 10.32 0.000 .1308683 .2009531 y Coef. Std. Err. t P>|t| [95% Conf. Interva
l] Total 1657.08967 13 127.468436 Root MSE = 3.7409 Adj R-squared = 0.8902 Residual 167.927617 12 13.9939681 R-squared = 0.8987 Model 1489.16205 1 1489.16205 Prob > F = 0.0000 F( 1, 12) = 106.41 Source SS df MS Number of obs = 14p = 0.3320 >= 0.0500 removing x
p = 0.2540 >= 0.0500 removing x1
p = 0.6230 >= 0.0500 removing x2
begin with full model
. stepwi,pr(0.05):reg y x x1 x2 t2