2009-04-13

共同影响与交互影响是一回事吗?

LH @ 2009-04-03:

我看了你最近的博客如何处理和报告含高度相关自变量的回归分析?,有一个疑问,如下:

Y = b0 + b1A + b2B + b3AB + e                   (公式六)

得到R62。这个跟R12是什么关系呢?R62不应该是包含了A的贡献,B的贡献和AB交互贡献的总的公式吗?

假如我的研究问题是想搞清楚AB的共同影响,您的原文中说“Δ3 = R12- R42 - R52”,“Δ3反映了A和B的共同影响”,那么R62- R42 - R52又是什么呢?

我是不是搞混了“交互作用”和“共同影响”?

b3AB中的b3是“交互作用”,而Δ3是共同影响?

或者这两个词是一回事,我在别的地方弄错了。

您看这样的理解对不对:对b3AB中的b3关注的是AB交互对回归系数的影响(放大或者缩小),而对Δ3的关注是关注AB对回归方程effect size的影响。而对Δ3研究effect size影响的时候,应该采用公式一Y = b0 + b1A + b2B + e ,而非公式六?

但愿我没有越说越糊涂。

庄主 @ 2009-04-12:

一、公式1与公式6之区别:原文公式1(Y = b0 + b1A + b2B + e )只含A和B的main effects(主影响),而公式6加入了A X B的interactions(交互影响)。所以,前者是“主影响模型”而后者是“交互影响模型”。显然,这两者是nested,即前者是后者在b3(即交互影响)=0时的一个特例。所以,我们是通过(R62- R12)/R62来检验交互项是否显著的。

二、R62- R42 - R52又是什么呢:公式4和公式5都是公式1的一个特例。公式4(Y = b0 + b2B + e)是公式1在A的net effects(独立影响)=0时的特例而公式5(Y = b0 + b1A + e)在B的独立影响=0时的特例。因此,两者也是公式6的一个特例。R62- R42 - R5= 交互影响 + A和B共同影响。

三、交互影响与共同影响之区别:两者是完全独立的两个概念,不要搞混了。(当然,你即不是世上第一个、也绝不会是最后一个混淆两者的人。)由于经常与人辩论这个问题,我最后找到一个简单而又有力的例子:含A和B两个自变量的factorial experiment正交实验),在此条件下,A和B是完全无关的(为什么?考考你),即两者对因变量只有独立影响而无共同影响(即 Δ3= 0);然而,分析正交实验数据时,我们一定要检验A和B之间的交互影响,结果有时显著、有时不显著,这就不说明交互影响与共同影响是无关的两回事吗?(我好像写过一个类似的帖子,但一下子查不到了。知道的读者帮帮忙吧)

四、共同影响是什么东东:我写过N个帖子讲交互影响,你的上述理解是对的。这里讲几句什么是共同影响。首先,这个名词容易误导。英文中不是“common effects”,而是confounding effects, overlapped effects, shared effects(干扰、重合、共享等等)。它并不是什么好东西,甚至连“东西”都不是,因为它不含任何信息,只是一个即属于A也属于B的混沌世界(但真正的混沌是有信息、可以解的),也许称为“灰色地带”更准确(相信很多读者对在政策灰色地带中生活有深切感觉)。

当然,“灰色地带”有多种来源,如A和B缺乏discriminant validity(差异效度)、A和B受到第三者变量的影响下、A和/或B中含有偏向对方的系统性误差,等等。不管来源为何,其直接影响了模型的理论解释力(当然并不影响模型的预测能力),所以一般是想方设法减小(而不是“研究”)AB之间的“共同影响”。

你的最后一段文字,大意对、但表述不准确。如果按我上述说法,应该如何改一下呢?

附录:

为了演示“交互影响与共同影响是完全独立的两个概念”,我用SPSS设计了一个正交实验的模拟数据,样本N=400,A和B完全独立、而且A、B与其交互项AB也完全独立,同时A、B、AB分别解释了Y的三分之一变差(当然只有在模拟的理想世界中才可能发生)。你运行一下,查看输出的相关矩阵和回归结果来验证一下。最后,如果你琢磨一下crosstabs的结果,应该可以找到我上面有关为何正交实验的自变量之间是完全独立的原因。

set seed=123.
input program.
loop #i=1 to 400.
compute ID=#i.
end case.
end loop.
end file.
end input program.
do if ID<=100.
compute A=-.5.
compute B=-.5.
else if ID>100 and ID<=200.
compute A=-.5.
compute B=.5.
else if ID>200 and ID<=300.
compute A=.5.
compute B=-.5.
else if ID>300.
compute A=.5.
compute B=.5.
end if.
cross A by B.
compute AB=A*B.
compute Y=AB*.5+A*.25+B*.25.

cor A B AB.

*Model 1 (R-square=.667).
reg dep=Y/enter A B.

*Model 4 (R-square=.333).
reg dep=Y/enter B.

*Model 5 (R-square=.333).
reg dep=Y/enter A.

*Model 6 (R-square=1.000).
reg dep=Y/enter A B AB.

2009-04-12

如何做“有序Logistic回归”?

patricia @ 2009-04-12:

祝老师, 你好, 我想问个关于回归的问题. 对照组病灶数0, 病例组病灶数为1,2,3. 现在想了解几个危险因素和病灶数的关系, 是不是应该用有序logistic回归来分析. 能不能概括一下步骤, 看了一些资料, 还是感觉茫然! 谢谢!

庄主 @ 2009-04-12:

我对医学知之甚少,不知取值从0到3的“病灶”应该是一个定距 interval) 还是一个定序 ordinal) 的变量?既然你已考虑用有序logistic回归(ordinal logistic regression,以下简称OLR),说明你是确定病灶为定序变量的。

logistic regression(LR)用于分析因变量为定类或定序的数据。其中分为三个分支:一是因变量为二分组的binary LR(通常在LR一词之前不注明binary),二是因变量为多项分组的multinomial logistic regression(MLR),三是这里谈的OLR。显然,MLR和OLR相似,唯一的区别是前者因变量各组之间只有性质的区别而后者各组之间有大小之别。

我用过MLR,但没有用过OLR(所以以下部分纯属“知识”而不是经验之谈),刚才查看了一下SPSS中的OLR程序(SPSS中叫做PLUM,但不是可口的李子噢),觉得它的操作及输出结果与MLR大致相仿(其实前者比后者更简单,这也许是好事),主要要多了一项“Test of parallel items”的输出,用于检验因变量各组之间的预测值(即根据自变量而模拟的logistic曲线)是否平行。

你希望了解一下操作步骤,我觉得你既然知道选择OLR,操作对你来说应该没有任何困难。如在SPSS里,将定类的自变量当作Factor、定距的自变量当作Covariate,如果需要检验自变量之间的交互影响,在Location中指定。以下是基本的Syntax(假定有两个定类自变量x1、x2和一个定距自变量z,其中x1和x2、x1和z被假设有交互关系):

PLUM y BY x1 x2 WITH z/LOCATION=x1 x2 z x1*x2 x1*z/PRINT=FIT PARAMETER SUMMARY TPARALLEL.

其中PRINT=TPARALLEL就是检验y各组预测值的平行性(注:如果不平行,并不是说明它们之间有交互影响)。

我猜你参阅了其它资料后的困惑,主要在于对其输出结果的解读上。这是在对定类因变量做多元分析时使用各种LR或者Loglinear时普遍出现的问题。(曾有一位学生问我,是否需要选修一门专讲Loglinear Analysis的课,我强烈推荐,说哪怕你以后从不用Loglinear,懂得如何解读定类因变量的多元分析结果就终身受用了。)这种困惑,与你已有如何处理定类变量的其它经验直接有关(注意,我不用知识,因为一般知识在这里帮不了你)。如果你会在各种回归中设置和解读定类自变量,就应该会将其原理推广到如何设置和解读BLR中定类因变量、并进一步推广到如何设置和解读MLR中的定类因变量或OLR中的定序因变量了。我在本庄已写过多个有关如何设置和解读定类自变量的帖子,请查询一下。如果你读后还是觉得无从下手,说明你还只获得了一下(简单)知识,需要从那里开始动手做,以积累必要的经验,然后循序渐进、最后才来做OLR,定量分析很难一步到位的。