聊聊共线性问题
文章目录
引言
传统建模分析时,输入的因变量较多时,需要做共线性分析。
什么叫共线性分析呢?统计学中叫多重共线性,不精确的说就是多个因变量之间是否存在较高的相关性,如果存在,则可只保留部分变量。比如分析降水量、日照时长、温度、坡度、坡向、高程等因变量与植被长势(如NDVI等自变量)的耦合关系,就需要对因变量进行共线性分析,基于常识,坡度与高程存在较高的相关性,那么两个同时与NDVI做相关性分析就不合理了。
为什么不合理
引言中提到的如果坡度与高程存在很强的多重共线性,则结果可能就不合理了。具体看如下:
我们假设一个简化的关系模型
假如存在以下关系,其中
x
i
,
i
⊂
(
1....3
)
x_{i},i\subset (1....3)
xi,i⊂(1....3)为上述坡度、高程等因变量,
y
y
y为NDVI等自变量。
y
=
a
⋅
x
1
+
b
⋅
x
2
+
c
⋅
x
3
(
1
)
y=a\cdot x_{1}+b\cdot x_{2} + c\cdot x_{3} (1)
y=a⋅x1+b⋅x2+c⋅x3(1)
我们可以把
a
、
b
、
c
a、b、c
a、b、c看做各因变量对NDVI的贡献率。
如果不存在多重共线性,则以上关系是明确的。
如果x1,x2存在多重共线性,且x1与x2的相关性达到了0.9,则x1,x2的关系可简单表示为
x
1
=
A
⋅
x
2
+
B
,
R
2
=
0.9
x_{1} = A\cdot x_{2}+ B,R^{2}=0.9
x1=A⋅x2+B,R2=0.9
则在损失很小的精度下,式(1)可表示为
y
=
a
⋅
(
A
⋅
x
2
+
B
)
+
b
⋅
x
2
+
c
⋅
x
3
=
(
a
⋅
A
+
b
)
⋅
x
2
+
c
⋅
x
3
+
D
=
d
⋅
x
2
+
c
⋅
x
3
y=a\cdot (A\cdot x2+ B)+b\cdot x_{2} + c\cdot x_{3} =(a\cdot A+b)\cdot x_{2} + c\cdot x_{3} +D =d\cdot x_{2} + c\cdot x_{3}
y=a⋅(A⋅x2+B)+b⋅x2+c⋅x3=(a⋅A+b)⋅x2+c⋅x3+D=d⋅x2+c⋅x3
这时候我们就发现了,模型是可以在损失很小的精度下剔除冗余度的,此外,我们也可以看到系数
d
d
d为
(
a
⋅
A
+
b
)
(a\cdot A+b)
(a⋅A+b)之和。那么a、b可以取任意值,只要保证两者之和为定值d即可,比如A=1时,a=-10,b=20,或者a=20,b=-10。这时候模型结果便无法解释。
怎么消除共线性影响?
很简单,就是剔除。把多余的因变量剔除,在此之前可以尝试不同因变量在模型中的解释效果,优选其中之一即可。比如坡度、坡向、高程存在多重共线性,则分别把坡度、坡向、高程输入模型,选效果最好的即可。
此外有博客说增大样本可以消除共线性影响,增大样本量一定是好的,但是否可以消除共线性我存疑,欢迎大家提供文献佐证。
本文为根据自己理解所写,错漏之处难免,欢迎大家批评指正。
关于共线性的资料:https://zhuanlan.zhihu.com/p/88025370
李小文院士讲到病态反演,我感觉本质上背后的思想和共线性是一致的:https://blog.sciencenet.cn/blog-2984-20778.html
更多推荐


所有评论(0)