2009-01-20

如何处理回归中30多个虚拟变量?

afeiwu @ 2009-01-07:

祝老师,你好。有几个问题想向您请教

1、看了很多会计文章。对年份、地区和行业分别用虚拟变量来处理。有的有30几个居多,这种处理方式正确吗?比如年份,一定要把每一年都放入吗?是否只用根据理论或者逻辑,来自行设定呢?比如这一年前后有重大的事项发生?

2、另外对这些虚拟变量,大部分文章也不汇报相关系数等输出结果。这种处理方式对吗?

3、如果用stata进行面板数据处理。其中的交互项处理方式和spss的处理方式有什么区别?哪一种分析效果跟好呢?谢谢!

庄主 @ 2009-01-20:

你的问题虽然来自会计期刊,但其涉及到的是一般的统计问题(即回归分析),对适用传播学和其它社会科学。

1. 你看到的文章,是否是将年份、地区和行业三个变量分解成30多个虚拟变量(dummy variables)之后放入回归分析?如是,这种做法并不算错,但肯定属于低效和繁琐。可以从多方面来理解其中的问题。

首先,将定距变量的年份转换成虚拟变量,实属低效。一般说来,每个自变量(不论其测量水平)至少要有30个案。如果年份涉及10年,如果作为定距变量,只要求有30个案,但如果转换成9(=10-1)个虚拟变量,则要求有30 X 9 = 270个案。此乃严重低效也。当然,作者也许有其它考虑而将年份转换成虚拟变量,如因此来检验年份与因变量的非线性关系。即使如此,只须在线性的年份变量之后,加上年份的二次方变量甚至三次方变量(详见“如何在SPSS中做数据正态转化?”)就可以了。这时,自然要增加30或60个案,但还是远远少于270个。

其次,如果地区或行业也有10来个甚至更多组别,解读回归分析结果时将会很繁琐,可以转用Analysis of Covariance(简称ANCOVA,或协方差分析)来做。ANCOVA与常见的ANOVA(Analysis of Variance,方差分析)之区别在于前者可以包括定距变量作为covariate(如本例中的年份),但对定类变量(如地区和行业等)的处理则与ANOVA完全一样,直接而简洁。在SPSS中,以前是用MANOVA来实现的,现在也改用Generalized Linear Model(GLM)中的Univariate模型来做(参见“如何解读GLM回归系数的方向?”)。

你问道,将年份转换成虚拟变量时,是否要把每一年都放入? 答案是如果把“每一年”都放入,这组变量就出现完全共线性问题,所以必须抽掉一年(作为基准年份)。

你还问道,是否只用根据理论或者逻辑,来自行设定呢?当然可以。但是,从效率(即对样本数的要求)来说,这种做法仍不如将年份作为定距变量(包括多次方项)来得有效。

2. 你说“大部分文章也不汇报相关系数等输出结果”,不知这里指的是自变量(即虚拟变量)与因变量之间的相关系数还是自变量之间的相关系数?如果是前者,既然有回归系数,就没有必要报告原始相关系数。如果是后者,那么要看各虚拟变量之间的相关系数之强度,如果较强(如大于0.5以上),有必要用文字或附录表交代一下。其实,各虚拟变量之间的相关系数强度,完全与该原始变量各组的大小有关,如果每组大小完全相等,其虚拟变量之间的相关系数一定为0,不需计算或更不必报告。只有当各组规模悬殊时,各虚拟变量之间的相关关系才会成一个问题。所以,在生成虚拟变量之前,应该检查原始变量的分布,并在必要时调整各组规模。

3. 我对Stata也是初学者,只知道可以在其回归分析中直接写X*Z的交互项而不必像SPSS里需要事先另行生成(详见”如何生成交互影响变量?”),但自己没有用Stata做过带交互影响的回归分析,所以不知道其输出结果是否容易解读。我觉得SPSS回归分析的输出结果还是很简洁易懂的。当然,无论用那个软件,如何解读交互影响都是一个较难的事,需要对回归分析有比较透彻的理解。可参见竹家庄里有关的数帖(如“如何在回归分析中检验和解读交互影响?”)。