2011-06-06

变量的标准化与中心化有何不同?

ZFB @ 2011-06-05:

现想问您一个问题,希望您能在百忙之间能给予回答,谢谢!我在看以下文献

Scott W. Campbell & Nojin Kwak, Mobile Communication and Civic Life: Linking Patterns of Use to Civic and Political Engagement, Journal of Communication 中,其中有段话:

Interaction terms
In order to carry out analyses corresponding to RQ3, this study created interaction terms between the different usage patterns and competence with mobile telephony. To reduce potential problems with multicollinearity between interaction terms and their components, all the component variables were standardized prior to the formation of the interaction terms (Cronbach, 1987; Eveland, 1997; Jaccard, Turrisi, & Wan, 1990).

这里,我想问一个问题是,为什么交互效应会跟他们的组成元素会产生多重共线性,而“all the component variables were standardized prior to the formation of the interaction terms”指的是什么呢?是标准化了组成元素变量后再进行交互效应吗?这样能减少它们之间的多重共线性吗?如何进行标准化及产生交互效应呢?

庄主 @ 2011-06-06:

你的问题涉及交互影响的理解及其操作。我曾写过几个贴子讨论有关问题,今天简单解答其中涉及到概念,有关操作细节请查一下前贴,如尚有不解之处,望再提出。

在下述回归模型中,

Y = b0 + b1X + b2Z + b3XZ + b4W                                 (公式1)

Y是因变量,XZW是自变量,而XZ是前两个自变量之间的交互项。你的第一个问题是:为什么XZ分别与XZ之间有共线性?答案很简单:因为XZXZ的乘积。你可以用自己的数据试一下。或者执行一下我附录中的SPSS文件的第一部分,XZ并不相关(r = 0.006),但XZ的乘积XZ却分别与XZ高度相关(0.673和0.679)。

降低此类共线性的一个方法是将自变量XZ分别进行如下的中心化(centering)转换,并由此而生成新的交互项:

Xc = X - Xm                                 (公式2)

Zc = Z - Zm                                 (公式3)

XZc = XcZc                                  (公式4)

其中XcZc分别是XZ的中心化值,XmZm分别为XZ的均值,XZc是中心化之后的XZ的交互项。如果用附录的第二部分来检验,可以得到以下结果:

  1. XcZc的均值都成了0、但其标准差没有变(2.051和2.012);
  2. XXc或者ZZc均是线性相关的(r = 1.000),这是因为公式2和3对XZ仅仅作了线性转换,故不会(也不应该)改变中心化值与原始值的相关关系;
  3. XcZc的相关关系还是0.006;
  4. 最重要的是:新交互项XZc与中心化值XcZc的共线性大大降低了(-0.092和-0.076)。

你引用的文献中,作者用了"standardize”(标准化)方法,即

Xz = (X - Xm) / Xs                        (公式5)

Zz = (Z - Zm) / Zs                        (公式6)

XZz = XzZz                                   (公式7)

比较公式2与5或3与6,可知标准化与中心化的区别在于前者还除以原始值的标准差(XsZs),因为标准差是一个常数,所以标准化值(公式5和6)也是原始值的线性转换,因此我们可以预期以下结果:

  1. XzZz的均值还是为0、但其标准差变了(应该为1.000);
  2. X、XcXz三者或者Z、ZcZz三者之间应该是线性相关的(r = 1.000);
  3. XzZz的相关关系还是0.006;
  4. 最重要的是:标准化值之间的交互项XZz与标准化值XzZz的共线性也降低到同样程度(-0.092和-0.076)。

如果执行附录的第三部分,可以验证上述预期。

你也许会问,标准化和中心化哪种方法更好?中心化是更普遍使用的方法,其好处是XcZc保留了原始值XZ的测量单位(如年龄的岁数、上网时间的小时数等等),所以在使用中心化值的回归模型中,

Y = b0 + b1Xc + b2Zc + b3XZc + b4W                                 (公式8)

b1b2b3分别代表的是XZ的一个单位的增加导致Y的绝对变化量。相反,标准化是通过除了标准差而消除了原始值的测量单位,所以所以在使用标准化值的回归模型中(如你引用的文献),

Y = b0 + b1Xz + b2Zz + b3XZz + b4W                                 (公式9)

b1b2b3分别代表的是XZ的一个标准差的增加导致Y的相对变化量。相比之下,中心化值更直观、更接近研究现象。当然,如果XZ的测量单位本来就是人为设置的值(如态度量表),那么两种方法之间也就没有任何差别了。

最后重复一下我在前贴中多次提到的两个问题:第一、中心化(或标准化)不是解决所有变量之间共线性的灵丹妙药,其要求原始值XZ服从对称分布 (distributed symmetrically),如果XZ的分布不对称,中心化值(或标准化值)与其交互项之间还会有共线性。如附录中的XZ不是完全对称,所以其转换值与其交互项之间还有轻度相关。XZ的分布越不对称、其转换值与交互项之间的共线性越高。这时就需要先对XZ作纠偏转换、然后再做中心化或标准化。(记住:纠偏转换是非线性转化,会对最后的回归系数之解读带来一定的困难。)

第二、中心化或标准化不会改变原始值变量XZ之间的共线性。附录数据中已反复显示这一点。事实上,原始自变量之间的共线性是一个更大的问题。我在其它帖子中已讨论过,这里就不展开了。

附录、生成一个400个案数据并检验上述假设的SPSS Syntax文件

*Party 0: Create data.
set seed=20110606. /*To ensure the same results on different mechines and different days.
new file.
input program.
loop #i=1 to 400.
compute id=#i.
end case.
end loop.
end file.
end input program.
exe.

*Part 1: Create raw scores of X, Z, and XZ.
compute X=rv.normal(5,2).
compute Z=rv.normal(5,2).
compute XZ=X*Z.
descr X Z XZ.
cor X Z XZ.

*Part 2: Create centered scores of Xc, Zc, and XZc.
compute c=1.
agg out/break c/Xm=mean(X)/Xs=sd(X)/Zm=mean(Z)/Zs=sd(Z). /*Calculate mean and standard deviation of X and Z.
descr Zm Xs Zm Zs.
compute Xc=X-Xm.
compute Zc=Z-Zm.
compute XZc=Xc*Zc.
descr Xc Zc XZc.
cor X Z Xc Zc XZc.

*Part 2: Create standardized scores of Xz, Zz, and XZz.
compute XZ=(X-Xm)/Xs.
compute ZZ=(Z-Zm)/Zs.
compute XZz=Xz*Zz.
descr Xz Zz XZz.
cor X Xc Xz Z Zc Zz XZz.