2009-03-28

如何处理和报告含高度相关自变量的回归分析?

Michael @ 2009-03-27:

祝老师您好,我看到很多多元线性回归没有报告自变量之间的相关性,是否只需要通过共线性检验就可以忽略自变量之间的相关性呢?另,我想分析两个高度相关(相关系数=0.8)的自变量A、B与Y的关系;CFA分析显示A、B具有显著差异(卡方值变化),我能否先用其中一个变量如A作用因变量,B作为自变量构建一个回归模型F,然后,用B和F模型形成的残差与Y回归呢?还是直接把AB放入回归模型?非常感谢!

庄主 @ 2009-03-28:

一、是否需要报告自变量之间相关程度?据我所知,绝大部分期刊确实没有将其作为必须报告之信息,也许是因为这一信息并不影响读者对回归模型的总解释力(即R平方)的理解。当然,高度相关的自变量即使能通过共线性检验,其统计显著性甚至系数的正负符号还是有可能受到影响(参见“如何在回归分析中检验和解读交互影响”和其他前贴)。所以,作为作者,不但有责任报告自变量之间的相关程度(但并不一定需要一个表格,用一两句话注明那些相关系数高于0.5的自变量即可),更需要根据R平方之变化值(“如何用block方法检验交互影响?”)或semi-partial R平方(“ΔR2与Semipartial R2”)等结果来检验和解读有关自变量的显著性。

二、如何将高度相关的自变量输入回归模型?一般的做法是将所有自变量(即你的A和B)同时引入回归分析,然后用上述方法来检验各自的显著性和独立贡献程度。这些方法不但在统计理论是成熟的,而且在解读时也是便利的。你建议的方法,其实就是将A和B之间的共同影响部分全部划归为B(这种做法与我在block方法中讲的先引入B、再引入A的结果一模一样),这就需要你有充分的理论根据(如B是A的自变量)才有意义,不然会导致人为夸大B的影响而缩小A的影响。

为了便于其他读者理解我们这里的讨论,让我用几个公式来说明一下。你的回归模型是

Y = b0 + b1A + b2B + e (公式一)

其中e是Y中无法被A和B解释的残差。因为A和B高度相关(r = 0.8),你打算分两步来检验公式一:

A = c0 + c1B + f (公式二)

Y = b0' + b1'f + b2'B + e' (公式三)

其中公式二中的f是A中无法被B解释的残差(也即A与B无关的部分),因此当作一个自变量进入公式三。如果用R平方来考察上述模型,其与block方法中的部分结果是一样的。在block方法中,你可以先检验

Y = b0 + b2B + e (公式四)

得到R42,它反映了B对Y的影响(其中包括了B和A的共同影响),然后再加入A(即检验公式一)而得到R12,而ΔR = R12 - R42的差即反映了A对Y的独立影响。

注意,R12,与公式三的R32应该是等值的、e和e'也应该相同;但b0和b'0、b1和b'1、b2和b'2则有可能不同,一般来说,b2'会大于b2、b1'则小于b1,因此我认为你的方法可能会“人为夸大B的影响而缩小A的影响”。当然,这种风险在上述的(不完整)block方法中也同样存在。

那么,应该如何处理呢?我在上述的几贴中已详细介绍过,这里只简单重复一下。先分别检验公式一、四和五(见下),

Y = b0 + b1A + e (公式五)

然后分别计算Δ1 = R12 - R42、Δ2 = R12 - R52和Δ3 = R12- R42 - R52,其中Δ1反映了B的独立影响;Δ2反映了A的独立影响;Δ3反映了A和B的共同影响。如果A和B完全无关,Δ3则为0,但在本例中,因为A和B高度相关,所以Δ3可能远远大于Δ1和Δ2。因此,这部分影响归功于谁,是十分重要而又复杂的问题,不能随意处置。