档案

Posts Tagged ‘数据转换’

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

2011/06/05 1条评论

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文件

20110606_Appendix_SPSSSyntax

如何在EViews或Stata里计算Finsher转化值?

2009/08/30 留下评论

旭 @ 2009-07-23:

祝老师您好!我是一个学经济学的学生,目前正在做毕业论文,是关于跨国GDP与消费之间相互关系的研究。看了您的“如何检验两个相关系数的差别?”一文,感觉受益匪浅,帮助很大。因为这就是我要做的东西:把各国之间GDP与消费增长率的相关系数算出来,然后把对应的GDP与消费增长率的相关系数(如中美之间GDP增长率的相关系数和中美之间消费增长率的相关系数)做费雪转化,求出Z值看他们之间的区别显不显著。在文章里您给出来算费雪Z值的一个EXCEL公式,可以算出结果。但是我的导师说EXCEL不是一个ACCEPTABLE统计软件,让我用EVIEWS或者STATA软件做这个结果,想请教下您,能不能在这两个软件里做上述分析结果呢?如果可以,该怎么做呢?

庄主 @ 2009-08-30:

任何软件只要其公式一样,结果应该是一样的,不存在高贵低贱之分。我曾说过,SPSS是傻瓜机而Excel是智能机,因为前者一般只报告计算结果而不显示计算步骤,而Excel是让你自己一步一步算出结果。就这意义上说,其它统计软件(包括EViews、Stata、SAS等)也是傻瓜机。当然,就本案的如何计算Fisher z-transformation而言,我在原文中教大家的是直接套用Excel提供的函数FISHER(),那也是一个傻瓜工具。但你也可以根据我原文中的公式2

写出如下的Excel计算公式:=0.5*LN((1+A2)/(1-A2))

注,其中“A2”是你的相关系所在格。你也可以先用函数求、再用手工来验证。难道这样的结果还不acceptable?

如果一定要用高贵的EViews、Stata或其它软件来计算,道理一样。首先,你要建一个新文件,将你的相关系数作为一个变量放到一个column里,然后写一句类似上述Excel公式的指令,如

F = 0.5*LN((1+R)/(1-R))

其中F是转换后的值,R是原始相关系数。我手头没有EViews和Stata的手册,不知它们是有LN还是其它符号来代表自然对数函数。

再次呼吁:同学们大家起来,不要做统计软件的奴隶!

分类:统计 标签: