2009-03-15

如何用block方法检验交互影响?

阳阳:

祝老师,您好!读了您的《如何在回归分析中检验和解读交互影响?》,我大受启发,非常感谢!关于调节变量的检验我还有一个问题想请教您。我的毕业论文有一个调节变量是“年龄阶段”(共分为三个年龄阶段,即是一个包含三个水平的类别变量),自变量(X)和因变量(Y)各是一个连续变量。我的考虑是把调节变量转化为虚拟变量(D1,D2),则最后要检验的方程为:Y=a+bX+cD1+dD2+eX*D1+fX*D2。我的疑问是,在检验中,是把X、D1、D2构成“Block 1”,而X*D1和X*D2一起构成“Block 2”?还是“Block 1”不变,把X*D1构成“Block 2”,而X*D2构成“Block 3”呢?另外,我的假设是“X与Y负相关,而处于不同年龄阶段(即调节变量)的个体,这种负相关的强度有区别,具体为:年龄阶段二 > 年龄阶段一 > 年龄阶段三”,第一次使用spss,我只会解读包含两个水平的调节作用,心里很着急,期盼您的指导!非常感谢!

庄主:

你没有说清第一个问题(是把X*D1和X*D2当作一个block还是两个block进入回归)的目的,但我估计是想因此来检验e和f的统计显著性。你的思路应该是受到stepwise regression(逐步回归)的影响。如果你查看一下我的前贴(大部分还在http://zjz06.ycool.comhttp://zjz06.spaces.live.com上,还没有转过来),就会知道我是强烈反对用逐步回归来做显著性检验的(逐步回归可以用了做预测模型的构建,但那完全是另外一种研究)。

你应该采用的是full-1的思想。即通过比较你的full model与full-1 (减掉一个交互项)model之间的差别来检验被减掉的交互项之显著性。在你的案例中,首先估算full model:

Y=a+bX+cD1+dD2+eX*D1+fX*D2               (模型1)

然后估计两个partial models,分别为:

Y=a+bX+cD1+dD2+eX*D1                         (模型2)

Y=a+bX+cD1+dD2+fX*D2                         (模型3)

最后分别比较模型1与模型2、模型1与模型3的R平方之间的差别,从而决定e和f分别是否显著。即,

clip_image002

clip_image002[5]

其中clip_image002[7]clip_image004clip_image006分别是模型1-3的R平方,K1K2K3分别是模型1-3的自变量个数(在你的案例中,分别为5、4、4),N为样本个数。上述比较结果均服从以(K1-K2)和(N-K1-1)和(K1-K3)和(N-K1-1)为自由度的F分布,所以可以通过查阅F值表来决定模型1与2或模型1与3之间是否有显著差别。如果有差别,即说明被省略的该交互项是显著的(因为省略之后模型的拟合度或解释力有了显著的退步)。

你的第二个问题,是通过比较e和f的值及其方向来完成的。鉴于你的假设为“年龄阶段二 > 年龄阶段一 > 年龄阶段三”,你应该将年龄组1作为基准组,即在D1和D2两个dummy变量中取0,而年龄组2在D1中取1、年龄组3在D2中取1。SPSS syntax为:

IF AGE=2 D1=1.
IF AGE=1 D1=0.
IF AGE=3 D1=0.
IF AGE=3 D2=1.
IF AGE=1 D2=0.
IF AGE=2 D2=0.

如果前述检验结果显示模型1与模型2有显著差别、而且e是正值(即年龄组2大于基准组),那么假设一成立;如果模型1与3有显著差别而且f是负值(年龄组3小于基准组),那么假设二成立。

其实上述道理与只有一个dummy交互项相仿,你如有志从事科学研究,应该加强训练自己的举一反三能力。

6 comments:

Anonymous said...

祝老师,对检验交互效应的显著性有一点疑问。
一般我们做逐步回归主要是想看某个变量的单独贡献。如果看交互效应的那个系数(e和f)的显著性的话,直接用full model(Y=a+bX+cD1+dD2+eX*D1+fX*D2)看系数的p值不就可以了吗?为什么要用上述的F检验的方法呢。

Anonymous said...

又翻看了庄里的其它帖子,明白了。共线性问题可能使sig值不可靠。而确定系数却不受影响。

Anonymous said...

Anonymous:

我相信你已经认识到“一般我们做逐步回归主要是想看某个变量的单独贡献”之说法的问题所在了。

y said...

祝老师,当自变量为一个,调解变量为多个时,是不是也可以采用这种方法来检验各调解变量的调解效应?反过来,当调解变量为一个,而自变量为多个时,是不是也可以通过这种方法来检验调解变量对各个自变量与因变量关系的调解效应?

Anonymous said...

祝老师,如前贴所说:共线性问题可能使sig值不可靠,而确定系数却不受影响。这就是说某个变量(比如X*D1)sig值的显著性和F(比如Fe)的计算结果不一致,详细说就是出现两种情况:第一,Fe显示不显著,而full model中X*D1的sig值显著;第二,反之,Fe显示显著,而full model中X*D1的sig值不显著。如果出现这两种情况,我将如何处置X*D1?如何撰写模型以进一步画图呢?

Anonymous said...

另外一个问题是:如果把模型3作为block1,把X*D1放入block2(或者把模型2作为block1,把X*D2放入block2)是不是可以得到和Fe(Ff)相同的结果?
迫切期待老师的教诲!