浅谈共线性的产生以及解决方法(中篇——今生)
上篇我们讲到共线性概念以及共线性问题存在时对模型的影响。那么如何对样本数据中存在的共线性问题进行诊断呢?
3 多重共线性的诊断方法
3.1 相关系数法
对于一个样本数据集,我们要了解解释变量,相关系数是一个重要的参数。假设样本中有
x
1
x_{1}
x1,
x
2
x_2
x2,
x
3
x_3
x3,…,
x
p
x_p
xp这些变量,两个变量间的相关系数:
R
=
∑
i
=
1
n
(
x
i
−
x
ˉ
)
(
y
i
−
y
ˉ
)
∑
i
=
1
n
(
x
i
−
x
ˉ
)
2
∑
i
=
1
n
(
y
i
−
y
ˉ
)
2
R=\frac{\sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{\sum_{i=1}^{n}(x_{i}-\bar{x})^2\sum_{i=1}^{n}(y_{i}-\bar{y})^2}
R=∑i=1n(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
我在上篇博文中有提到,**存在一个常用但不完全合适的共线性度量指标,是样本自变量之间的相关系数的平方,精确共线性对应的相关系数的平方等于1,非共线性对应的相关系数的平方等于0,近似共线性的相关系数平方介于0和1之间,值越大,表明两个变量间近似共线性程度越大。**当有很多变量之间均存在共线性问题时,可以根据自变量的相关系数矩阵,对每个自变量统计相关系数>0.5的变量数(不计与自身的那一项),剔除掉那些共线性变量较多的变量,然后再进行建模。
3.2 条件数判别法
度量多重共线性严重程度的一个重要指标是
X
T
X^{T}
XT
X
X
X的条件数(
X
X
X是原始数据经过中心化和标准化后得到的向量),即
κ
\kappa
κ(
X
T
X^{T}
XT
X
X
X)=
∥
X
T
X
∥
\left \|X^{T}X \right \|
∥∥XTX∥∥*
∥
(
X
T
X
)
−
1
∥
\left \|(X^{T}X)^{-1} \right \|
∥∥(XTX)−1∥∥=
λ
m
a
x
(
X
T
X
)
λ
m
i
n
(
X
T
X
)
\frac{\lambda_{max}(X^{T}X)}{\lambda_{min}(X^{T}X)}
λmin(XTX)λmax(XTX)
λ
m
a
x
(
X
T
X
)
\lambda_{max}(X^{T}X)
λmax(XTX)和
λ
m
i
n
(
X
T
X
)
\lambda_{min}(X^{T}X)
λmin(XTX)分别表示
X
T
X
X^{T}X
XTX的最大、最小特征值。
条件数刻画了
X
T
X
X^{T}X
XTX的分散程度,我们可以据此判断自变量之间存在多重共线性与否以及多重共线性的强弱程度。
实际应用经验:
当
κ
\kappa
κ<100,认为多重共线性程度很小;
当100<=
κ
\kappa
κ<=1000,认为存在中等或者较强程度的多重共线性;
当
κ
\kappa
κ>1000,认为存在严重的多重共线性;
在R软件中,函数kappa()计算矩阵的条件数。kappa(z,exact=FALSE,…),z是矩阵,exact=TRUE时表示精确计算条件数,FALSE时表示近似计算条件数。
3.3 方差膨胀因子法
对自变量做中心标准化处理之后得到的相关阵为
记为:
称其为主对角线元素
V
I
F
j
VIF_{j}
VIFj =
C
j
j
C_{jj}
Cjj的为自变量
X
j
X_{j}
Xj的方差扩大因子。
已知:
其中
L
j
j
L_{jj}
Ljj是
X
j
X_{j}
Xj的离差平方和,
R
j
2
R_{j}^{2}
Rj2为自变量
X
j
X_{j}
Xj对其余的p−1个自变量的复决定系数,可以得到如下结论:
根据上式可知
V
I
F
j
VIF_{j}
VIFj恒大于1,
R
j
2
R_{j}^{2}
Rj2越大,说明自变量之间的多重共线性越严重。
V
I
F
j
VIF_{j}
VIFj不仅能够诊断出自变量之间是否存在多重共线性,还能反映多重共线性的严重程度。一般处理问题时,当
V
I
F
j
VIF_{j}
VIFj≥10时,说明自变量
X
j
X_{j}
Xj与其余自变量之间存在着很严重的多重共线性,而且这种多重共线性很可能影响最小二乘估计值。
3.4 特征根判别法
从高等代数中我们知道了矩阵的行列式等于其特征根的连乘积,所以,当行列式|
X
′
X
∣
≈
0
X^{'}X|≈0
X′X∣≈0时,也就是说设计矩阵中的自变量之间存在多重共线性,那么矩阵
X
′
X
X^{'}X
X′X至少存在一个近似为零的特征根,该命题的逆命题为当矩阵
X
′
X
X^{'}X
X′X至少存在一个近似为零的特征根时,X的列向量之间一定存在多重共线性。
记 其中
是X的列向量,λ是矩阵
X
′
X
X^{'}X
X′X的一个近似为0的特征根,
是对应特征根λ的单位特征向量,有
这恰是多重共线性关系满足的定义式,从而在实际问题中遇到此类情况,可判定为自变量之间存在着一定的共线性。另外当特征根向量是标准化正交向量时,设计矩阵X多重共线性的重数取决于矩阵
X
′
X
X^{'}X
X′X有多少个近似为零的特征根。
4 多重共线性的解决方法
当在解决实际问题中,通过某种诊断方法发现自变量之间存在着严重的多重共线性时,我们就要找到合适的方法来削弱这种共线性。
常见的多重共线性产生的原因有两种:
一种是由于搜集数据的局限性造成的,表现在设计矩阵X的p个列向量
近似地都落在维数低于p的
R
n
R^{n}
Rn的超平面内,此时我们认为设计矩阵X的p个列向量就有多重共线性。这样的情况产生的多重共线性是非本质的,可以通过改善数据搜集方法克服。
另一种产生多重共线性是本质内的,即自变量之间在客观上就有近似线性相关关系。处理自变量较多的回归问题时,由于缺乏对自变量之间关系的认识,很可能把一些具有共线性的变量引入到回归模型中,这种产生多重共线性的情况是无法克服的。一方面我们可以对最小二乘估计方法做改进处理;另一方面可以从消除自变量间的多重共线性入手。常用的解决方法如下:
4.1 岭估计
岭回归方法优化了回归系数估计方法,对最小二乘估计法做了改良,当自变量之间存在多重共线性时,即 |
X
′
X
∣
≈
0
X^{'}X|≈0
X′X∣≈0,如果给
X
′
X
X^{'}X
X′X加上一个常数矩阵k∙I(k>0),那么
(
X
′
X
+
k
I
)
−
1
(X^{'}X+kI)^{-1}
(X′X+kI)−1接近奇异的可能性要比
X
′
X
X^{'}X
X′X小得多,所以用岭估计值
作为β的估计理论上比最小二乘估计更加稳定。
设0≤k<∞,由
β
^
(
k
)
\hat{β}(k)
β^(k)参与的的回归方程称为岭回归方程,k称为岭参数。。对于回归系数
的每一分量
β
^
j
\hat{β}_{j}
β^j(k)来说,在直角坐标系中k-
β
^
j
\hat{β}_{j}
β^j(k)的图像称为岭迹。
岭参数k的选择,具体原则如下:
1 各回归系数的岭估计基本稳定;
2 用最小二乘估计时符号不合理的回归系数,其岭估计的符号将变得合理;
3 回归系数没有不合理的绝对值;
4 残差平方和上升的不太多。
当不存在奇异性是,岭迹应该是稳定地逐渐趋于0,如下图所示
当存在奇异性时,由岭回归的参数估计结果可以看出来,刚开始k不够大时,奇异性并没有得到太大的改变,所以随着k的变化,回归的估计参数震动很大,当k足够大时,奇异性的影响逐渐减少,从而估计参数的值变得逐渐稳定。
(1). 岭迹法与基于残差的传统方法是不同的,它提供了一种新的分析问题的思想方法,对分析各个变量之间的关系是有帮助的。但岭迹法选择岭参数存在着一定的主观性,目前为止还没有一个理论能够支持岭迹法的科学性。
(2).方差扩大因子法(略)
(3).由残差平方和确定k值
从前面的介绍,可知岭估计β ̂(k)在减小均方误差的同时,残差平方和是增大的。我们可以给定一个大于1的c值,将岭回归的残差平方和SSE(k)控制在一定的限度内,即满足
求出满足上诉条件最大的k值。
4.2 LASSO回归
lasso回归无论因变量是连续还是离散的,它都能处理。 lasso对于数据的要求是非常低的,所以应用程度较广,能够对变量进行筛选和降低模型的复杂程度。变量筛选是指不把所有的变量都放入模型中进行拟合,而是有选择的把变量放入模型从而得到使模型效果更好的参数。
LASSO回归的原理:在传统最小二乘估计的基础上,对模型的参数增加一个惩罚函数:
其中n为样本个数,α为常数,需要调控得到最优值。
‖
θ
‖
1
‖θ‖_{1}
‖θ‖1为一范数,即绝对值。
对系数进行压缩,将较大的系数变小,甚至有可能把较小的系数压缩为零。在满足限制条件
时,使得残差平方和达到最小,从而求得此时的回归系数的估计值。
我们用LASSO回归的方法,使得自变量之间变得稀疏,这种稀疏性由调整参数α来实现。随着α的增大,惩罚也随之增大,导致有些解释变量的系数为零,使得简化了模型结构,重要的变量得以保留,从而增加了模型对数据的解释能力。
在R软件中的lars包提供了lasso算法,根据问题的需要,我们可以利用lars包中的lasso算法,结合AIC准则和BIC准则进行变量选择,从而降低了系统的复杂度,进而增加了模型的解释能力。
4.3 主成分回归
主成分估计也是有偏估计,这是一种基于多元统计中的主成分分析的概念而提出的估计方法。
主成分分析的实质是降维。在损失一小部分信息的前提下把多个指标利用正交旋转变换转化为几个综合指标的多元统计方法。一般情况下,我们常把转化生成的综合指标称为主成分,并且每个主成分都是原始自变量的线性组合,每个主成分之间互不相关。我们只考虑少数几个主成分且不至于失去过多信息,这样使得问题简化,从而更容易发现研究问题的主要矛盾,揭示事物内部变量的规律,分析效率也会提高。
设由p个自变量构成的随机向量为
随机向量X的均值为μ,协方差矩阵为Σ。
对X进行线性变换处理,能形成新的综合变量,用Y表示,即
为了使得
Y
i
Y_{i}
Yi尽可能完全的表示样本信息,我们要求
Y
i
Y_{i}
Yi的方差尽可能大且
Y
i
Y_{i}
Yi之间互相独立
根据以下原则,确定主成分
这样通过主成分分析得到的参数估计称为主成分估计。对于主成分估计,需要解决选择主成分个数的问题,通常有两种常用的方法:第一种是略去特征根接近零的主成分;第二种是选择r个主成分使得满足下述条件
4.4 偏最小二乘
一般,我们估计多元线性模型的参数时,当自变量个数p小于观测组数n时,我们常采用最小二乘估计方法估计回归系数;当自变量个数p大于观测组数时,导致矩阵X’X奇异,无法求出其逆矩阵。主成分回归不用求X’X的逆,而是得到矩阵X’X的特征根,选择出几个重要的主成分,这样我们就可以用少数几个主要成分表示样本总体信息,从而得到多元线性模型。偏最小二乘(PLS)也能解决p>n的情况,思想是考虑偏向于y有关的自变量 x 1 , x 2 , … , x p x_1,x_2,…,x_p x1,x2,…,xp的线性组合。
由于篇幅限制,本文暂更新到这里,已经对建模中共线性问题的诊断和消除的方法做了详尽的介绍,下篇会更新实例应用,请大家耐心等更。