引言

传统建模分析时,输入的因变量较多时,需要做共线性分析。
什么叫共线性分析呢?统计学中叫多重共线性,不精确的说就是多个因变量之间是否存在较高的相关性,如果存在,则可只保留部分变量。比如分析降水量、日照时长、温度、坡度、坡向、高程等因变量与植被长势(如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=ax1+bx2+cx31
我们可以把 a 、 b 、 c a、b、c abc看做各因变量对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=Ax2+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(Ax2+B)+bx2+cx3=(aA+b)x2+cx3+D=dx2+cx3
这时候我们就发现了,模型是可以在损失很小的精度下剔除冗余度的,此外,我们也可以看到系数 d d d ( a ⋅ A + b ) (a\cdot A+b) (aA+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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐