档案

Archive for the ‘统计’ Category

是否应该使用生存分析?

2011/10/01 留下评论

tylechu @ 2011-09-23:

我目前正利用SPSS研究某种元器件的使用寿命(Y),考察X1-X5对Y的影响规律。为此,我搜集了共1050组数据。初步考察可知,Y不服从正态分布,频数分布图显示其更接近指数分布,但由于在Y=9这一点频数明显高于左右时段,指数分布不成立。

自变量的情况是:X1,X3,X5是定类变量,均为2水平;X4是定序变量,3水平;X2是连续变量,其分布也不满足正态分布,也可以选择将其处理成定序变量,4水平。

我有这样一些问题请您帮忙解答:

1.所有数据是准确无误的,除一个观察的X1缺失外均完整。请问在这种情况下是否需要剔除异常值以排除干扰,使分析结果能够反应绝大部分数据的分布规律呢?比如对于X2,分布范围是16-40,但38-40之间只有少于5个观察,是否应予剔除?

2.自变量各个水平间的样品数很不均匀,例如对于X1,两个水平间的样品量大约是1:9,这种情况可以将X1引入分析模型吗?还是需要将所有数据分成两组讨论?

3.在考察期结束时,仍有部分元件正常使用。这样的案例是否必须使用生存分析的方法来研究?由于该元件的寿命是否超过1年对我的研究意义重大,而考察期结束时仍存活的元件已经超过1年,我是否可以为这部分元件统一指定一个时间(例如考察结束后一个月)为其失效时间,据此计算Y值,从而采用SPSS中的Regression/Binary Logistic过程或者Regression/Ordinal过程?

4.我考虑选择的另外一种处理方法就是将所有变量都处理成分类变量,从而将全体数据视为列联表,采用Loglinear/Logit过程分析。但由于前面提到的自变量各个水平上样品数分布不均匀的问题,将会出现期望频数不满足要求的问题。这是否要求我必须将某些变量舍弃掉,还是在分析过程中采用为每个格子的频数增加一个小常量的方法即可?

5.最后,能否再帮我明确一下对于Regression/Binary Logistic过程和Loglinear/Logit过程分析的前提是怎样的,对于自变量和因变量的要求是什么?很多书都没有提到这个问题,提到的也不是很明确甚至相互矛盾。

庄主 @ 2011-09-25:

五个问题中,3最为重要,涉及到研究设计,我会答得详细一点;1、2和4有关数据预处理,而5则只是对一些概念的理解,请容我回答的简单一些。顺序上还是按你问题先后。

1. 是否剔除outliers(异常值)?如果你确定所有观测值都“准确无误”,则应该全部保留。如你所说,X2不是正态分布。应该先对其做正态转换(如取log或根号等),然后看转换后的观测值是否都落在均值的正负3个标准差之内。

2. 是否分拆成两个样本?X1不是binormal分布,说明该变量信息不多、价值不高。但如果因此将样本分拆成二,则等于认为该变量毫无信息。两害取其轻,还是保持原状(即分别取值为0和1的dummy variable)。

3. 是否可以用Survival Analysis(生存分析)?是的,可以而且应该。本案中其实有两个不同的因变量:一是元器件的状态(合格与报废),是一个二项类别变量;二是元器件从启用到报废的时间长度,是一个定距变量。如果用回归分析,只涉及时长的因变量,而且对尚且合格产品的报废时间的估计也是有问题的。而如果用Logistic回归或下面提到的Loglinear或Logit分析,只涉及状态的因变量,而且假定了合格产品永远不会报废。两者都有缺陷。

生存分析就是专门用来解决这类问题的。其因变量同时含有状态和时长。当然讲到底因变量还是时长,而状态的信息则被用来估算尚合格产品可能报废的时长,比起人为地假定一个报废时长要合适得多。你提到Y(即时长)基本符合指数分布,更进一步说明适合用生存分析。Y = 9时的偏差只会对模型的拟合度有些影响,但不会导致模型的misspecification(错误设置)。

4. 是否可以用Loglinear或Logit分析?你说道,5个自变量的各组之间分布不均,会造成有些交叉组的个案数不足甚至缺失。这确是一个问题。对Loglinear分析说来,你的自变量(5个)太多。即使每个自变量的数据分布均匀,你共有2 x 2 x 3 x 2 x 2 x 2 = 96个交叉组,也即每个组的期望值为10。当然这还是理想状态。光从X1的1:9分布上就可以推测很多交叉组会出现0个案的。如要用Loglinear, 至少要将X1去掉。更重要的是,Loglinear无法将因变量的时间因素考虑进去,所以在本案中远不如生存分析有用。

5. Logistic回归、Loglinear分析、Logit分析的前提要求?三者的因变量都是类别或名目变量,更确切地说,它们的因变量描述的是出现或不出现某些事件的次数(counts)。其中

经典的Binary Logistic回归只能处理二项类别的因变量,而Multinomial Logistic回归、Loglinear和Logit都可以处理任意个类别的因变量。理论上,它们对因变量各类别的分布并没有要求。但实际上,各类别之间的分布越均匀,信息越多,模型的拟合度越可能好;反之亦然。Loglinear与Logit的区别仅在于对因变量的定义:前者是logged frequency(发生频数的对数值)而后者是logged odds-ratio(发生与不发生频数之比率的对数值)。

Logistic回归对自变量的要求与OLS回归分析相同。Loglinear只接受类别或名目变量作为自变量。同样,它对自变量各类别的分布没有要求,但实际上是分布越均匀越好。其实,Loglinear就是多维的卡方分析,所以卡方分析中的每交叉组至少需要5个观测个案的要求也同样适用。对于社会科学家来说,经常面临所有自变量和因变量均为类别变量的数据,Loglinear往往是唯一的选择。

如何区分协方差分析与半偏差相关分析的差别?

2011/09/25 留下评论

zshtom007 @ 2011-08-22:

庄主你好,想请教下协方差分析(ANCOVA)和半偏相关分析(semi-partial correlation)的差异,谢谢!

庄主 @ 2011-08-23:

ANCOVA是一种检验多个自变量(分别为定类水平和定距水平)对一个因变量(定距水平)影响的方法、其结果体现为一系列的F-值以及相应的df值、p-值;semi-partial correlation是在扣除了其他(定距水平)自变量的影响之后、一个自变量与一个因变量(均为定距水平)之间的相关系数(即一个统计量)。因此,两者不是直接可比的。请进一步说明你的变量或模型,以便我理解你到底想问什么?

zshtom007 @ 2011-09-12:

谢谢庄主回答。我想问的是,ANCOVA的思想是控制掉covariate对因变量的影响后,考察其它自变量对因变量的影响。可以有方差解释百分比的指标。而semi-partial correlation的思想也是控制掉某一自变量对因变量的影响后,求另外一个因变量和自变量的相关系数,也可有与以上方差解释百分比对应的r-square指标。

我是想问着这种控制covariate的思想之间有什么差别?

庄主 @ 2011-09-24:

终于明白你的问题。你问的其实就是ANOVA(Analysis of Variance,方差分析)与回归分析的异同。我曾在几个前贴里提到过,方差分析是心理学、教育学的主打武器,而后者则是社会学、政治学等学科的基本工具,但是两者的数学基础相同、估算结果也一样。

不错,你问的是ANCOVA(Analysis of Covariance,协方差),但它只是方差分析从只含定类水平的自变量到也容许定距水平的自变量(习惯上被叫为covariate或协变量)的扩展而已。经典的回归分析只含定距水平的自变量,但通过将定类变量转换成dummy或哑变量,回归分析也可以同时包含定距和定类的自变量。因此,协方差分析和回归分析所能解决的分析问题及其结构完全一样:检验一组定距或定类的自变量对一个定距水平的因变量的联合和独立影响。

先说多个自变量对一个因变量的联合影响。这种影响在方差(或协方差)分析中是通过分解Sum of Squares(离差总和)的来源而实现的,即将离差总和分解成由自变量造成(组间离差)和由误差造成(组内离差)两部分,前者除以离差总和即为自变量的联合影响(即你说的“方差解释百分比”)。而在回归分析里,自变量的联合影响是直接通过回归模型的R2来反映的,但事实上R2也是通过计算被解释的离差除以总离差而得知的。所以,尽管方差分析与回归分析使用的术语不同,两者检验自变量的联合影响的方法及其结果是完全一样的。

再说各个自变量对一个因变量的独立影响。你肯定知道,如果各个自变量之间没有任何相关关系(如控制实验的数据一般如此),那么它们对因变量的影响一定是独立的;而这些独立影响之和,就是上面讲的联合影响。但是,观测而得的自变量(包括实验中的协变量)之间通常是有相关关系的,所以就产生了在自变量之间存在相关关系的条件下,如何计算各自的独立影响的问题。可以说,这是数据分析中最常见也是最容易令人迷惑的问题之一。其纠结之处在于以如何扣除(即“控制”)其它自变量的干扰影响?方差分析和回归分析两个阵营内,各有好几种看法,区别都在于把哪些离差放进计算公式到分子里、哪些离差放进分母。我无意在此一一叙述,否则只会将大家弄得更加迷惑,而只讨论一下你提到的回归分析中的semipartial correlation(半偏差相关系数)。这是我知道的各种计算独立影响指标中最“干净”或最保守的指标。简单说来,它的平方值描述了因变量的离差中纯粹来自某自变量的部分(即既独立于该自变量与其它自变量的相关关系、也独立于该因变量与其它自变量的相关关系),因此,它的值小于任何其它相似指标(如partial correlation)。

协方差分析一般会报告partial eta squared,它的根号值与回归中partial correlation相等,但与semipartial correlation有所不同。如果你需要知道后者,可以根据协方差分析的结果手工计算,当然更省事的方法是放到回归分析里去计算。

如何分析两个时点的固定样本数据?

2011/09/17 留下评论

David M @ 2011-08-23:

您好,我是XX大学管理学博士研究生,这次给您写信,主要是我在研究中遇到了一下问题和疑惑。先简单描述一下我的研究:样本是187个企业,在2004年和2008年分别收集了问卷数据;另外还从商业数据库中找到了上述企业中50个企业2004年-2009年的客观绩效数据。也就是说,对于问卷主观数据,我们只有两个时间点的数据;而对于客观绩效数据,我们则有6个时间点的数据,但是样本量只有50个左右(且每年的企业不完全一样,即个别年份有缺失值)。

我的问题如下:

1、如果我仅用问卷的主观数据,可以使用什么方法来检验自变量在两个时间点上的差异,以及两个时间点上自变量对因变量的影响的差异?(根据潜变量成长曲线分析的要求,要至少有3个时间点或以上;我几乎没有看到有处理两个时间点数据的有关文献,您可以推荐一些经典文献或案例吗?)

2、如果我在自变量上使用两个时间点,而在因变量上使用6个时间点,可以使用潜变量成长曲线来分析吗?如果可以,应该怎么处理数据?如果不行,有什么好的建议吗?

由于我刚接触纵向数据的处理,只是个初学者,而目前国内相关的研究还比较少,盼望您的回复!再次表示衷心的感谢!

庄主 @ 2011-09-18:

1、你的问卷数据,是一个含两次测量的Panel Sample(固定样本)数据。柯惠新、祝建华、孙江华的《传播统计学》第15章“纵向关系研究”中的第4节专门介绍了固定样本数据分析的基本方法和相关案例。但该书现已脱销,不知贵校图书馆是否能够找到?

在该节的15.4.2表中,我按因变量的测量水平和观测次数,分成三次情况讨论。这里只简单叙述一下第一种情况(我假定你的数据就是这种情况),即因变量为interval scale(定距变量)、观测次数为2,这时可以用方差分析(更确切地讲是ANCOVA、协方差分析)或回归分析(两者完全相等)。以回归为例,

Yi2 = a + bXi1 + cYi1                                (Eq. 1)

其中下标里的i是第i个企业,1和2分别是第一次和第二次的观测值。注意:因变量Y的过去值Yi1出现在公式的右边,即是自变量之一或是一个控制变量,它与自变量Xi1同时进入回归模型。由于因变量的过去值成了一个自变量或控制变量,而它与因变量的当前值之间往往高度相关,所以b值可能很小、甚至不显著。这是符合现实生活的,不要为此沮丧。

公式1是一个“历史长期影响”模型。如果有某理论认为,被研究的因变量更受自变量当前值的影响,也即“当前短期影响”模型,那么你需要用Xi2来代替公式中的Xi1。但是,不要将Xi1和Xi2同时放入模型之中,因为这两者高度相关,会造成共线性问题。

也许还有某种理论认为,因变量更受自变量的变化值(DX)的影响,这时可以先求出DX = Xi2 – Xi1,再将DX代替公式中的Xi1

你当然可以分别试一下这三种模型。但是,如果没有相关理论,在选择和解读其结果时会是一个难题。

2、你是否可以用潜变量成长曲线(latent growth curve)来分析只含两个时间点的自变量、但含六个时间点的因变量的数据?可以,但意义不大。成长曲线模型的目的是分别估算出自变量和因变量各自随时间而变化的函数(即Y = f(Yt)和X = g(Xt)),然后估算两个时间函数(f与g)之间的关系。在本案中,因变量有六个时间点的观测值,所以有足够的信息来估算f函数(或更确切地说,检验多种时间函数模型的可能性,如S-曲线、指数曲线、U型曲线等);但是自变量只有两个时间点,g函数一定是线性的。如此,除非f也是线性的,否则f与g之间的关系一定是被低估的。而如f是线性的话,只需两个时点就可以估算出来了。

那么,还有其它方法吗?可以用multilevel longitudinal model (MLM,多层纵向模型)。但是其技术难度更大一些。如果你熟悉一般的multilevel model(多层模型)的,那么比较容易理解MLM。否则,需要从多层模型开始补起,是一个较长时间的学习过程。这里我只对MLM做些最简单的介绍。

在理念上,本案的MLM涉及两个层面;但在实际估算中,两层是合在一起的(但我们这里暂不讨论估算的操作问题)。

Level 1(底层)是对每个企业的因变量分别估算一条时间曲线:

Yit = b0i + b1i(t) + b2i(t2) + b3i(t3) + …                    (Eq. 2)

其中i如同公式1中一样,为第i个企业,但这里i = 1 至58,t是观测年份(t = 1 至 6,其中1为2004年,2为2005年,…。该公式与一般的回归模型相比,有以下两个明显不同:

第一、公式右边的各自变量t,t2,t3,等等,其实只是同一个变量(时间t)的polynomials(多项式)。一般说来,用1至3项式足够,最多不能超过5 (= t – 1)项式。

第二、公式右边的各回归系数b0i,b1i ,b2i,等等的下标中不但含有一个常见的常数(0,1,2,等等),而且还含有一个罕见的变量i(因为i随着公式左边的企业的变化而变化),也就是说需要对每一个企业分别估算一条时间曲线。

Level 2(上层)是将公式2的回归系数(b0i,b1i ,b2i等等)当作因变量、问卷数据测得的X为自变量,估算以下回归模型:

b0i = g00 + g01X1                         (Eq. 3.0)

b1i = g10 + g11X1                         (Eq. 3.1)

b2i = g20 + g21X1                         (Eq. 3.2)

b3i = g30 + g31X1                        (Eq. 3.3)

如公式1一样,如果有特定的理论依据,上述公式中的X1可以被X2DX代替,但一般不用同时将X1和X2同时放入(除非两者之间为弱相关)。注意,因为i = 1 至 58,上述的每个回归模型所涉及到的样本量为58。

这组公式背后的假设是企业因变量的时间曲线之间差别是受到X的过去值(或当前值、或变化值)的影响的。也许用英文写更能看懂:The difference among the firms in their growth curves of Y is affected, at least in part, by the past (current or change) value of X.

如何分析只含一个指标的隐含因子模型?

2011/09/16 留下评论

jingjing @ 2011-09-16:

您好!真的很感谢您提供这么一个平台和机会,为我们这些在学习结构方程模型和相关软件有困惑的同学提供具体的解答,谢谢您~

我想请教您的问题是:我的毕业论文中,要研究x和y的关系,其中x只有一个指标,y有两个指标,还有控制变量c1/c2/c3/c4/c5,其中c1/c2是年度变量和行业变量,我想问您的是这种外生潜变量只有一个指标,内生潜变量有两个指标能不能用结构方程模型做?lisrel软件中又是怎么编程的?年度控制变量和行业控制变量又是如何设置的?是直接赋值为1、2.。。。吗?

我刚接触结构方程模型和lisrel软件,很多问题都没弄明白,特别是在软件的操作上,请您多指教~~

庄主 @ 2011-09-17:

一、你的控制变量写为“c1/c2/c3/c4/c5”是什么意思?是五个latent factors(隐含因子)还是五个observed indicators(测量指标)?如是后者,它们分属哪些隐含因子?“c1/c2”不会是指c1除以c2吧?请说明。定量研究中使用的语言一定要明确无疑义。

二、你的数据(X含一个测量指标、Y含两个测量指标)既可以用SEM分析,也可以用常规回归分析,结果相仿。与回归相比,SEM最直接的两个优势在于:a)含有多个测量指标的各因子之间的关系不受测量误差影响;b) 检验中介变量的间接影响。你的数据无法享受这两项优势,所以用不用SEM差别不大。(SEM还有其它优势,因与本文无关,所以略过。)

三、我在第一点中讲定量研究的语言要明确无疑,而在第二点中说本案中用SEM和回归“结果相仿”和“差别不大”,两者之间是否有矛盾?非也。根据目前知道的信息,只能得出后者的结论。如果有x, y1和y2的相关系数矩阵,加上样本数,就能进一步知道“相仿”或“差别”的程度,但现在可以确定的是这种程度并不大(以X和Y的相关关系来说,也许在0.01-0.02之间)。

一般而言,消除X和Y之关系中的测量误差,X和Y各自至少需要三个指标,也即有一个6乘6的相关系数矩阵(严格说来说6乘6的covariance矩阵),其中含有21个独立的known moments(已知参数)。你现在只有一个3乘3的矩阵,含6个已知参数,信息远远不够。后果是什么?你估算的模型中含有大量测量误差,与完全不顾测量误差的回归分析差别不大。

如果你X有两个指标,情况会好一些;如果X有三个指标,会更好一些(但模型中还会有因为Y只有两个指标的误差)。但如果X还是一个指标而Y有三个(或更多)指标,则与事无补。

四、如何编写LISREL程序是个难以通过博客帖子回答清楚的问题。最有效的方法是听一位操作型老师面授10来小时的基本指令。当然,我知道国内很少有这种课程。能教的老师还是有的,但能讲清LISREL操作指令的老师大多是科研高手,时间很紧,而且讲操作指令会被同行看低。国外有些大学的社会科学计算中心会有免费培训,实为功德无量。社会上有更正规的培训,如http://www.ssicentral.com/workshops/lisrelbegin.html,当然收费不薄。这里有两个基本教材,供自学:http://www.ssicentral.com/lisrel/techdocs/SIMPLISSyntax.pdfhttp://nd.edu/~rwilliam/stats2/l95.pdf

分类:统计 标签:, , ,

如何检验名目变量的中介效应?

2011/09/11 2 条评论

Zhang @ 2011-09-07:

祝老师,您好,我想用结构方程模型做路径分析,有个问题不清楚,想跟您请教一下。

先说样本量,我调查了100户,也就是我的的样本量是100,假设模型包含4个自变量,其中2个是连续变量,1个是类别变量,1个是计数变量,因变量只有1个,是连续的。

我的模型中有一个中介变量,这个中介变量就是上面提到的类别变量。我主要是想问参数估计方法的选择问题,对于我这样一个小样本量,里面又含有非连续的变量类型,参数估计的方法generalized least square(GLS)和ordinary or unweighted least square (OLS OR ULS)哪个更适合一点?

此外,您觉得我100个样本是否适合做这样一个结构方程模型的路径分析?我是刚开始学SEM,希望能得到您的指点,非常感谢关注,期待您的答复。

庄主 @ 2011-09-12:

你虽然是新手,但对数据和问题的叙述既简洁又清楚。这是做好科学研究(或定量分析)的第一步。推荐给其他提问者学习。

类别变量(categorical variable,或叫名目变量)可以做中介变量,但不能用SEM来分析。SEM确实有好几种估算方法,如你提到的GLS、OLS和ULS,以及更常见的Maximum Likelihood (ML)。但所有估算方法都要求除了grouping variable(分组变量)之外的所有自变量和因变量必须是连续或定距变量。你当然可以用那个类别变量做分组变量,但那检验的是moderation effects(调节或交互效应)而非mediation(中介效应)。

那么,不用SEM是否可以检验类别变量的中介效应呢?可以,但我得事先预警一下:有关的操作和解读都非常(或极其)繁琐。我假定你已经了解中介效应的一般原理(或用“中介变量”查询一下本站有关前贴),所以不再赘言,以下只介绍具体操作步骤。

一、以Y为因变量,X(在本案中是三个连续或计数变量,记为X1、X2和X3)为自变量,做一回归分析,得到的回归系数记为c。

Y = cX                                (Eq. 1)

可用常用的OLS回归,或用general linear model (GLM)回归,两者的结果相同,但后者在第二步中更为方便。

二、将M(类别变量)加入上述回归,得到的回归系数分别记为c’和b。

Y = c’X + bM                      (Eq. 2)

如你在第一步里用的是OLS回归,须先将M转换成k – 1个dummy variables(零一变量),其中k是M的类别个数;如第一步用的是GLM回归,则可以省去对M的转换而直接进入。注意:1. 这里的回归系数是c’,不是第一步中的c;2. 如果M有3个以上的类别时(即k > 2),就会得到k – 1个b,可分别记为b1,b2,…,bk-1,多个b的出现是上面提到的“繁琐”原因之一。

三、以M为因变量、X(本案中X1 – X3)为自变量,做一回归分析,得到的回归系数记为a。

M’ = aX                              (Eq. 3)

由于这里的因变量M是类别变量,所以不能用OLS或GLM回归,而要用Logistic Regression (LR,当k = 2) 或 Multinomial Logistic Regression (MLR,当k > 2)。如与第二步一样,当M的类别大于2时,会有k–1个a,可记为a1,a2,…,ak-1,这又是一个繁琐之处。

更重要的是公式3中的M’与公式2中的M之不同。前者是probability of odds ratio between category j and category 1-j (某一类别j发生与否的概率)而后者是difference in the mean between category j and the baseline category (类别j与基准类别之间平均数之差)。这是最容易引起困惑繁琐的地方,尤其是对于不熟悉类别变量分析的基本原理(如什么是类别发生概率等)。

四、这是另一个难点:如上所述,M在第一、二步的OLS(或等值的GLM)中和在第三步的LR或MLR中的scale(单位)不同,所以MLR系数a不能与OLS系数b等直接比较,而我们知道,检验中介效应的核心是检验ab (即X通过M对Y的间接影响)的显著性以及比较c’与ab的大小而实现的。因此,a必须与b等具有相同的单位。为此,我们需要将它们转换成各其的标准化系数。其公式分别为:

a’ = a Sx / Sm’                   (Eq. 4a)

b’ = b Sm / Sy                    (Eq. 4b)

c” = c’ Sx / Sy                    (Eq. 4c)

其中Sx和Sy分别是连续变量X和Y的标准差,可以用SPSS的Descriptive或其它软件的类似指令直接算出。公式4b中的Sm是零一变量M的标准差,也可以用上述指令直接算出。但是4a中的Sm’是公式3中的因变量M’的标准差,即一个“什么什么发生与否”的概率的标准差,没法直接算。对它的一种估算方法是:

clip_image002              (Eq. 5)

其中p是圆周率 (= 3.1416…),p2/3则是标准化的logistic分布函数的方差(这一项其实是一个常数,= 3.14162 / 3 = 3.29),因此公式5可以简化成

clip_image002[25]              (Eq. 5′)

不知你是否还在看吗?看懂了多少?我知道第一、二步很容易,第三、四步并不难,但很繁琐,如没有做过LR或MLR的人确实难以消受这种思路的产品。如果你能坚持到这里,接下来就可以看到辛苦劳动的成果了:检验M的中介效应。

不管M是连续变量还是类别变量,检验其是否具有中介效应的原理是一样的,即:

一、公式1中的c必须显著;

二、公式2中的b和公式3中的a必须显著;

三、最后看公式2中的c’。这时有三种可能:

1. 如果c’不显著,那么M具有完全(或强烈)的中介效应(理想状态);

2. 如果c’显著、但其标准化系数c"(见公式4c)小于a和b的标准化系数之乘积a’b’(见公式4a和4b),那么M具有部分(或微弱)的中介效应(常见的中介效应大多如此);

3. 如果c’显著、而且c">a’b’,即X对Y的直接影响大于通过M的间接影响,或者说,M的出现并没有改变X对Y有显著影响的基本格局。因此,我们必须承认M不具备中介效应。有些读者认为,只要a’b’是显著的,就说明M有中介效应。这种看法是错的。

如何区别fixed factors(固定变量)、random factors(随机变量)和covariates(协变量)?

2011/08/05 留下评论

Keykure @ 2011-08-02:

我有一个非常简单的问题就是,在SPSS里输入自变量的时候怎么来区分fixed factors, random factors 和covariates,我经常搞混淆这三者。比如我的问题中X是连续变量,是不是就不能放到fixed factors中去,只能放到covariates中?

庄主 @ 2011-08-06:

你的问题涉及两对概念之区别:一是factors(因子)与covariates(协变量);二是fixed与random。前者易懂、后者较难,经常有人问我。

其实并不简单,涉及到两方面的基本知识:一是心理学实验的术语体系(你好像就是读心理学的?);二是数据的unit of analysis(分析单元)和格式问题。因此,经常有人感到困惑。

一、因子与协变量之区别:

首先,两者都是自变量。区别在于测量水平:前者是名目或定类变量(只含两至数个类别,每个类别中至少要有30个案例),后者是连续或定距变量(可以含成千上百个类别,每个类别中只含一至数个案例)。当你通过这种区别、将每个自变量的测量水平告知SPSS或其它统计软件之后,软件就知道如何计算了。作为普通用户,知道这些就够了。

那么,为何SPSS不直接了当地将有关输入区标为“名目自变量”和“连续自变量”?这应该是历史遗留问题。“因子”和“协变量”是实验研究的基本概念,而实验数据传统上用ANOVA(方差分析,只含名目变量的因子)或ANCOVA(协方差,同时含名目因子和连续变量的协变量)来分析。GLM(general linear model)是ANCOVA的扩展,其中的术语也沿用了实验研究体系。这对于习惯“自变量”、“因变量”、“控制变量”等术语的回归分析用户来说,是个挑战。SPSS中很多统计子程序都有这种历史阴影。

提醒大家一下:上述是在测量层面(operationalization)上讨论“因子”和“协变量”之间的区别,它们在理论(conceptualization)上的含义很不同,不要混淆:因子可以是自变量(如外生因子)、也可以说因变量(如内生因子),两者即可以是名目变量、也可以是连续变量;协变量则被用来指“控制变量”(也是对因变量有影响的自变量、但不是理论上所关心的,所以引入以过滤其影响),可以是连续变量(如年龄)、也可以是名目变量(如性别)。

二、固定变量与随机变量之区别:

如上所述,这里的“变量”可以是因子、也可以是协变量。一个变量到底是固定还是随机的?大部分统计教科书并不详细解释,即使有讨论也较费解。以下让我用“非正式”的语言(即只讲结论不讲理由)说一下其中的关键问题。

在GLM范畴内,所谓“固定”和“随机”变量,表面上是指自变量,其实是涉及数据结构。什么意思?一、你的因变量有几个?二、你的自变量之间是“同级并列”(如个人特征)还是“上下主从”(如个人特征在下、机构或社区特征在上)?这两个维度相交,形成了下表中的四种情况。

 

自变量之间关系

因变量个数

同级并列

上下主从

  单个

I. 固定

II. 随机

  多个

III. 随机

IV. 随机

I. 单个因变量和并列自变量:这是最常见(但也是最有局限)的数据,自变量必定是固定的。

II. 单个因变量和主从自变量:由于自变量之间有从属关系,所以形成了multilevel(多层)结构。为了与III和IV相区别,我将这种多层结构叫做“variances between-subjects”(BS差异或人际差异)。下层的自变量为随机而上层的自变量为固定。如果有3+层的话,最高一层为固定、以下各层均为随机。

III. 多个因变量和并列自变量:这时,虽然自变量之间是并列的,但因变量之间存在着明显(如同一概念时间先后的测量)或隐含(同一大概念下面的众多子概念)的关系,所以形成了与BS差异不同的另一种多层结构,我称之为variances within-subjects(WS差异或自身差异)。这种结构中,多个因变量的序号构成了下层自变量的值;而其上层自变量并不存在,需要在GLM或类似程序中构建相应的虚拟变量(我知道,这句话对没有实际操作经验者来说是很难懂的,如不理解就暂且跳过吧)。但是,WS差异结构与BS差异结构相同的是,最高层的自变量总是固定的,而以下各层的自变量均是随机的。

IV. 多个因变量和主从自变量:这种结构同时兼有BS差异和WS差异(即BS-WS差异),其最上层的BS自变量和WS自变量都是固定的而以下各层各种变量都是随机的。这当然是最丰富、也是最难得的数据,如固定样本数据的SEM模型。

希望上述分类有助于大家理解或判断固定和随机变量的表面区别。需要注意的是,随机变量可以当作固定变量处理(当然有犯Type-I错误,即可能过高估计自变量的影响。实际研究上,很多II类数据被当作I类处理)。但是反之不亦然,固定变量不可能成为随机变量。

如何控制或考虑“控制变量”的影响?(续篇)

2011/08/03 3 条评论

keykure @ 2011-08-01:

非常感谢庄主的解答,我想我的问题应该是属于第三种情况,至少要先考虑交互影响。我还有一个非常简单的问题就是,在spss里输入自变量的时候怎么来区分fixed factors, random factors 和covariates,我经常搞混淆这三者。比如我的问题中X是连续变量,是不是就不能放到fixed factors中去,只能放到covariates中?

另外,因为涉及到的数据变量比较多,所以我主要用Matlab来做统计分析,我建立了如下模型(其中X为IQ),不知道和您解释的模型是否一致?

1) to detect main effect of Age, using sex and IQ as covariates:
Yi= mean(Y)+ a1i*Age + a2i*Sex + a3i*IQ + ei;

2) to detect main effect of Sex, using IQ and Age as covariates, as well including interactions (Age*Sex, Sex*IQ):
Yi= mean(Y)+ a1i*Age + a2i*Sex + a3i*IQ + a4i*(Age*Sex) + a5i*(Sex*IQ) + ei;

3) to detect main effect of IQ, using Age and Sex as covariates, as well including interactions (Age*IQ, Sex*IQ):
Yi= mean(Y)+ a1i*Age + a2i*Sex + a3i*IQ + a4i*(Age*IQ) + a5i*(Sex*IQ) + ei.

特别是第三个模型,就是我在帖子里咨询的问题,这样的模型再做线性回归,然后考察IQ的系数a3i以及其它交互影响的系数a4i,a5i的统计意义,是否就能达到我希望分析的目的(IQ对Y的影响)?

庄主 @ 2011-08-03:

你有关如何区别fixed factors, random factors, covariates的问题,我过几天另外写个帖子回答。

你模型1是一个三项main effects模型 (”主影响“或我原文中说的”直接影响“模型),同时检验了三个自变量 (Age、IQ和Sex)的直接影响。

模型2是一个三项主影响加两项second-order interactions(二阶交互影响)的模型,这个模型其实是多余的(理由见下)。

模型3也是一个主影响加两项二阶交互影响模型,与模型2的区别在于其中一项交互影响涉及到不同变量。这个模型不是检验IQ的主影响(这在模型1中已检验)、而是检验IQ与其它两个自变量的交互影响。接下来是一个极其重要的技术细节:如何判断交互影响的显著性?这也就是你下面的问题。请往下看。

Keykure @ 2011-08-02:

庄主您好,关于上面的三个模型,再补充问一个问题,关于模型1的:模型1中没有包含任何交互影响,得到的结果是Age对Y有显著影响;但是如果在模型1中加入Age*IQ的交互影响,Age的影响就变得没有显著意义了;因此模型1(主要看Age对Y的影响)需不需要加入交互影响呢?如果加入的话,显著性消失,是否就能说明Age对Y无显著影响呢?

庄主 @ 2011-08-03:

Age对Y是否有显著的主影响?这个问题与如何检验交互影响直接有关。具体来说,有以下几个相关的问题需要考虑:

一、交互项Age*IQ与Age高度共线性,所以当Age和Age*IQ同时出现在模型3中时,低阶的Age会被人为的提高其p值(即变得不容易显著)而高阶的Age*IQ则会人为的降低其p值(即变得更容易显著)。结论:不要轻易相信模型3的各回归系数的显著性。

二、克服上述偏差的方法之一是先分别对Age和IQ进行centering(中心化转换),然后将两个中心化自变量以及它们的乘积输入模型3。我先后写过两、三个有关帖子,请参考具体操作。

三、中心化转换的前提是有关自变量的原始数值服从正态分布(至少要对称分布),否则,中心化值与其交互项之间还是有共线性,无法解决问题一。这时,可改用比较模型1与模型3的拟合度(即两个R平方)之间的差别。也请参考我的有关前贴。

四、有一种很流行的说法,即如果两个自变量之间有显著的交互影响,那么就不需要考虑自变量的主影响了。这种说法在ANOVA框架下有其道理,因为这时涉及到的是实验数据,自变量之间以及与其交互项是独立的;但在回归分析框架下是不对的,因为即自变量之间以及与其交互项之间往往存在共线性。我应该也写过一个有关帖子的。

五、重复一下:先对所有自变量做中心化转换,然后用模型1检验所有主影响,再与模型3比较来检验交互影响。

如何控制或考虑“控制变量”的影响?

2011/08/01 4 条评论

Keykure @ 2011-07-31:

庄主,您好,我最近碰到一个问题,跟下面这个帖子的问题很像,但是没有这么复杂。http://zjz06.blogspot.com/2010/03/blog-post.html (庄主注:或zjz06.wordpress.com上相同标题)
我的问题描述如下:考察自变量X,因变量Y之间的相关关系,但是这两者XY都受到两个因素Age和Sex的影响,因此给怎么建立模型来控制Age和Sex的影响?具体我该采用什么方法(比如GLM)来进行统计分析呢?

庄主 @ 2011-08-01:

你的问题中Age和Sex对X和Y的“影响”,包括了三种形式:一、直接影响;二、通过X的间接影响;三、对X->Y影响的调节影响(即与X的交互影响)。由于你没有说清是那种形式,所以我分别介绍一下,但不一定是你想问的。

一、直接影响:

这种影响最简单,说明Age和Sex分别与X相关,即有竞争关系。如果要控制它们对X->Y关系的影响,只需将Age和Sex直接加入X->Y的分析模型中即可,如:

Y = b0 + b1X + b2Age + b3Sex                        (1)

二、间接影响:

这种影响是与直接影响相比较而言的,即除了模型1之外,再估计以下模型:

X = c0 + c1Age + c2Sex                                   (2)

然后比较Age的直接影响(b2)与间接影响(c1b1),如果前者小于后者,说明有必要考虑Age的间接影响;同理,比较Sex的直接影响(b3)与间接影响(c2b1),如果前者小于后者,说明有必要考虑Sex的间接影响。

注意,我这里用的是“考虑”而非你用的“控制”,两者的区别在于:“控制”用于去除由于自变量之间的相关关系而造成的各自对因变量的直接影响的错误估计;而“考虑”间接影响并不会改变所有自变量的直接影响,当然会改变总影响(=直接影响+间接影响)。

三、交互影响:

这种影响与上述的直接或间接影响均为关系,即不管Age或Sex对Y是否有直接或间接的影响,它们都可能与X存在着对Y的交互影响。检验的方法是在模型1中加入两项交互项:

Y = b0 + b1X + b2Age + b3Sex +b4XAge + b5XSex   (3)

其中b1, b2, b3是三个自变量的直接影响,而b4和b5则是Age和Sex分别与X的交互关系。详细解释可参见我的几个前贴。

最后简单回答如何在SPSS GLM中用Syntax实现上述三个模型(如果用菜单选项,三者的差别仅在自变量的box中输入不同而已):

直接影响:Y WITH X, AGE, SEX.

间接影响: X WITH AGE, SEX

交互影响: Y WITH X, AGE, SEX, X*AGE, X*SEX

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

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

如何处理严重的缺省值问题?

2010/10/13 留下评论

L @ 2010-10-11:

您在博客中讲解如何报告回归分析时,提到:“但变量常有缺省值,这时模型的个案数就会小于样本数、有时两者相差很大(当然是个严重问题),所以一定要报告前者。”

我在处理一批调查数据,遇到了严重的缺省值问题。我的样本有近千人,用媒体使用的三个自变量和三个人口控制变量(简称X1-X6)对因变量(简称Y)做回归分析,只剩下300个案。请问对此如何处理。

庄主 @ 2010-10-13:

数据缺省值是定量研究者人人遇到都头痛的问题。因为缺省值就是数据里没有信息,巧妇难为无米之炊。

我看了你的数据,主要问题在于X1-X3等3个变量上的缺省值太多(各有200-400个缺省值不等)。如果去掉这三者,会有600余人个人留下来,大概可以接受。但是,这三个自变量是你研究的核心变量,如果删掉它们而只留下3个人口控制变量,也就难以成为传播学研究了。真是一个两难问题。

现在流行一种“Missing Value Analysis“(MVA,即“缺省值分析”),SPSS下属的结构方程模型软件AMOS中就有MVA工具。其基本思想是根据已知信息去预测(即填补)缺损信息。具体操作步骤如下:

1. 假定样本数据中有十个变量(已经用于回归分析的X1-X6和Y,以及没有用上的Z1-Z3),先把Y放一边,分别分析其中八个变量与第就个变量之间的关系。即:

X1 = b0 + b1X2 + b2X3 + b3X4 + b4X5 +b5X6 + b6Z1 + b7Z2 + b8Z3             (1)

X2 = b0 + b1X1 + b2X3 + b3X4 + b4X5 +b5X6 + b6Z1 + b7Z2 + b8Z3             (2)

X3 = b0 + b1X1 + b2X2 + b3X4 + b4X5 +b5X6 + b6Z1 + b7Z2 + b8Z3             (3)

注意,这里每个模型的有效样本数为该模型所有九个变量(包括因变量Y和八个自变量)上都没有非缺省值的个案数。在你的案例中大概是600多人。

2. 根据模型1-3的结果参数(即b0-b8)来分别预测X1-X3上的缺省值。假定模型1的结果是:

X1’ = 0.5 + 1.0X2 + 1.5X3 + 2.0X4 + 2.5X5 +3.0X6 – 2.0Z1 + 3.0Z2 + 1.0Z3    (4)

那么,就可以根据那些在X1上有缺省值的个案的X2-X6和Z1-Z3的实际数值而预测出(填补进)他们在X1上可能取的值(记为X1’)。同理,可以预测出X2或X3缺省值的可能取值(分别记为X2’和X3’)。

3. 最后将填补后的X1-X3(即X1’, X2’, X3’)放回你一开始想做的回归模型,即

Y = b0 + b1X1’ + b2X2’ + b3X3’ + b4Z1 + b5Z2 + b6Z3                                  (5)

MVA是否合理和有效,取决于以下三个条件能否同时被满足:

一、每个模型中的所有就个变量上上没有(或是很少)缺省值,否则“救”不回多少个案。假如每个变量有30个缺省值(即只占样本的3%),看来微不足道,但是如果每个变量上的30个缺省值发生在不一样的个案上,那么就有30X9=270个案无法就回。

二、每个模型有一定的解释力(如R平方在0.20以上,当然越高越好),这决定了用该模型中八个自变量去预测Y的validity(效度)。

三、每个变量上的缺省值是完全随机(completely random)产生的,即不受任何规律制约;不然,必须将影响缺省值产生的因素放进模型中去。

以上条件一和二是可以从已有数据中计算出来的。如果一和二无法成立,那么就则是彻彻底底的无米之炊了。如果条件一和二问题不大,那就需要看条件三了。

条件三一般是无从得道的。不过根据前人研究(包括我自己做过的一个大型研究),缺省值的发生一般都不是完全随机的。也就说,使用MVA在大部分情况下都是有风险的。缺省值产生的随机性越低、用MVA的风险就越高。

以上是现有文献中对MVA的基本看法。此外,我个人觉得用数据中除了因变量之外的所有变量来预测缺省值的做法有totalogy(自我循环)之弊端。以本案为例,你比较一下模型4与模型5,就不难看出Z1-Z3对Y的影响出现了四次:一次是自己的直接影响(模型5)而另三次是分别通过X1’、X2’和X3’的间接影响。这在理论上和方法上都有问题(如X1’-X3’与它们的预测值Z1-Z3之间有共线性)。

我认为,解决上述问题的一个办法是将Z1-Z3从模型1-3中去掉。就是说,只用模型5之外的变量来预测X1-X3的缺省值。如此填补出来的X1’-X3’在模型5中与Z1-Z3应该没有过高的共线性;同时,Z1-Z3对Y的影响只被估计一次。当然,这种方法并无法解决X1-X3中缺省值非随机产生的问题。

最后还是那句话,缺省值就是数据中缺乏信息。MAV或其它任何统计方法(包括我提出的改进方法)都无法根本解决信息不足甚至信息匮乏的问题。

如何判断各项选择之间是否存在独立关系?

2010/09/04 留下评论

张君 @ 2010-08-31:

老師: 您好! 我來自台灣,姓張。看了老師許多的文章,讓我受益良多。在此有個統計上的問題,想要冒昧請教:如果我要研究的依變數為多分類(多於二分類),各類之間又沒有順序時,我是否該用multinomial logistic model來加以分析?但是,如果我的依變數各分類之間的關係為不獨立時,是否就該改用別的model?

舉例來說:我想研究什麼樣的學生會選擇什麼樣的交通工具去上課時,依變數是一個三分類的變數,選項分別為搭紅色的車,搭藍色的車以及不撘車。如果用multinomial logit的話,IIA檢定是一定每沒辦法過的;改用multinomial probit的話,在理論上又好像不太對。由於學生們的選擇在理論上來說應該是先選擇搭不搭車,再來選搭紅色或搭藍色的車,所以我是不是應該各別跑一個二元logit模型呢?第一個分析搭不搭車,第二個分析搭藍色或紅色。還是有其他更好的方法可以做更直接的分析,就請老師多多指教了。

庄主 @ 2010-09-04:

很抱歉,我对IIA 假定(Independence of Irrelevant Alternatives,不知你们是如何译成中文的?)知之不多,没有做过任何第一手的研究。以下只是根据直觉来谈谈,不要太拿我的话当一回事。

从有关文献来看,我觉得IIA假定是一个相当理想化的状态。就是说,各种选择中的 irrelevant alternative(s)(“无关选项”?)是真正无关或独立的。然而,这种理想状态大概只能在实验条件下才会出现。而在实际生活或实际研究中,很难会有真正的独立选项。(我对台湾不太了解,但一直好奇:2004年大选,如果没有第三党候选人,结果会一样吗?)

如你的“红车、蓝车和不搭车”问题,大概也只是一个举例,你的实际数据应该更复杂一些。

简言之,多项选择之间的关系,应该是一个理论而不是统计问题,需要根据具体的研究问题来确定。如果没有明确的理论指引,我个人倾向将各项选择看作是相关事件的竞争关系(我自己的很多研究课题都是根据zero-sum原则来展开的)。当然,你可以同时用两种或多种方法分别分析一下,看看各种结果之间有多大差别?那种方法的结果看上去更合常理?

如何检验两个模型拟合度的差别?

2010/09/03 留下评论

>

Anonymous @ 2010-09-01:

祝老师您好!我看了您对“为何不同模型的路径系数和拟合度相同”一文的回复,有一处不明白。想向您请教。即,当两个模型对同一组数据的拟合都可以接受时,如何检验这两个模型的拟合度之间有没有显著差异呢?

庄主 @ 2010-09-02:

首先要分清这两个模型之间是否具有从属关系。如果是的,可以用常规的模型比较方法来检验;否则需要用非参数的统计量。下面分别说一下。

主从关系模型之比较

什么是模型之间的主从关系 (hierarchically nested)?如果两个模型(A和B)具有相同的变量(包括隐含因子和观测指标)、而其中模型B是在模型A的基础上减去若干参数,这两个模型就被认为是有主从关系。按参数的个数来看,模型A是主(full model)、模型B是从(reduced model)。请看以下例子:

image image image

上图中,A和B在measurement model(测量模型层面)上完全相同;但在structural model(结构模型层面)上则不同:在A中因子X对因子Y有直接影响(记为g2),而在B中X对Y没有直接影响(也即g2=0)。这两个模型之间就是具有上述的主从关系,所以可以直接用常规的模型比较方法对两者之间的差别进行显著性检验。

所谓“常规的模型比较方法”,是指计算两个具有主从关系的模型的卡方值(分别记为χAsup>2和χBsup>2)之差(记为Δχ2),然后根据两个模型的自由度(分别记为dfA和dfχB)之差(Δdf),从卡方分布表中查出该Δχ2),所对应的显著水平(p-level)。

以上图中的模型A和B为例。假定A的χA2 = 150.0而B的χA2 = 145.0,Δχ2 = 150.0 – 145.0 = 5.0,而dfA = 22(这不是假定而是实际的,因为该数据有45个已知值、23个参数;大家可参照前贴如何计算SEM中的自由度?来计算本例各模型的自由度)、dfB = 23(很显然,因为B少用了一个参数、因此多一个自由度)、Δdf = 1。根据卡方分布表(可参考以下http://www.fourmilab.ch/rpkp/experiments/analysis/chiCalc.html),如果df = 1而χ2 = 5时,其对应的p-level = 0.0253。那么,我们的结论是什么呢?即,A和B之间是否有显著差别呢?或者,在A和B之间我们应该选择哪个呢?请大家自己得出结论。如果有疑问,请继续提出。

非主从关系模型之比较

如果两个具有同样变量的模型之间没有上述的hierarchical nested关系,就无法直接比较了。上图中,A和C也是有主从关系的,但B和C却不具备主从关系,尽管两者都是A的从属。两个非主从关系的模型之间的比较,一般是用Akaike Information Criterion (AIC)或类似的非参数统计量(non-parametric statistics)如Bozdogan’s Consistent AIC (CAIC)或Browne-Cudeck Criterion (BCC)。所谓“非参数统计量”是指该统计量的概率分布(也就是说其显著性水平)是个未知数。所以比较两个非主从关系的模型之间AIC(或其它)的差别,我们只能知道其中那个模型对数据的拟合更好一些、但不能确定这种差别在总体里是否存在。

以上图的B和C为例,假定AICB = 120和AICC = 135,我们可以知道B对数据的拟合更好(因为AIC及其它类似统计量都是越小越好),但是我们无法得知ΔAIC = 15的p-level是什么。因此,非主从关系的模型之间的比较,只是非正式的研究。

如果一定要检验两个非主从关系模型之间差别的显著性,那就需要找到一个B的替身(且称为B’),其即同时为B和C的主模型、但又与B没有显著差别。在本例中,A是B和C的主模型、但是与B有显著差别,所以不能承担B的替身。如果能找到B’,那么B’与C是主从关系,就可以按上述的常规模型比较方法来检验B’与C的差别了。

分类:统计 标签:,

如何处理SEM模型中的“坏”因子?

2010/06/13 留下评论

>

SJ @ 2010-05-17:

我是X大学心理系的学生,目前在美国Y校访问。最近在处理数据时遇到问题不知该如何解决,之前在您的网页上冒昧向您请教过,非常感谢您当时的回复。我后来找了一些相关的文献看,知道了多组比较的大概步骤,但在统计中又遇到了新的问题,所以再次向您请教。谢谢您关注我的邮件!

我探讨的是暴力游戏对青少年攻击性影响的性别与年龄差异。研究变量包括:

  • 自变量:玩暴力游戏的程度(VVG — 庄主注,下同)
  • 因变量:身体攻击(Physical Aggression)
  • 中介变量:信念(Belief about Aggression)、期望(Hostile Expectation)、移情(Empathy)
  • 调节变量:性别、年龄

因此我把全部被试(795人)按年级和性别分成六个组,每组100多人,想比较不同性别、不同年龄孩子模型的路径差异(庄主注:这应该是一个moderated mediation模型,对此有兴趣的读者请仔细理解本案例的模型设置及有关讨论)。

比较结构模型前,为了确定测量等同(measurement invariance — 庄主注),我分别对信念、移情和身体攻击这三个潜变量进行了单组和多组的CFA。以因素负荷相等(factor loadings invariant — 庄主注)为标准,最后确定了5项目的信念、5项目的身体攻击及12项目的移情测量,能够满足跨组测量等同。信念和身体攻击是完全等同,两个移情项目虽不等同,但考虑到12题中只有两题不等同,所以认为部分等同也能允许进入结构模型的比较。

上面我所提及的CFA是分别针对每一个变量(庄主注:应该是factor吧?)进行的。但当我把所有变量(庄主注:也是factors吧?)都整合到一个模型后发现,六组都不能很好地拟合总模型。我看了修正指数(modification index或MI — 庄主注),发现问题主要出在移情这个变量上。在前面的测量等同阶段,我删掉了16个移情项目,保留了12个项目,这12个项目分属5个因子。在结构模型中,我把这个5个因子作为移情的指标(庄主注:Empathy成了一个second-order factor?),但发现指标间及指标与其他变量还存在复杂的关系,这导致了模型不能较好拟合。

我又尝试了很多次,尝试找到一个移情的测量模型(measurement model — 庄主注),无论是单个变量的单组及多组CFA,还是放到总模型中时,都能拟合六组数据,但徒劳无功。

如果把所有变量都当成显变量,那模型都能拟合得很好。但我能这样做吗?如果把所有变量当成显变量来处理的话,那前面的测量等同检验是否还有必要?

我实在不知道该如何考虑和继续,所以冒昧请教,请您给予我指导,非常感谢!

附件的图是我在确定了各组的测量等同后,用总数据做的模型。我担心我说得不清楚,可能看看模型会有帮助。再次感谢!
clip_image002

X2(114) = 411.1, p < .001, RMSEA = .06, NNFI = .90, CFI = .91

Note: Unstandardized coefficients are provided first, with standardized coefficients in parentheses. All paths are significant.

SJ @ 2010-05-21:

在等待您的回复之余,我这几天仍然在尝试寻找拟合潜变量的总模型,但可恨NNFI仍徘徊在0.8几(如果拟合很差我也就放弃了)。我发现问题在于移情量表。因为当我把三个潜变量当中的移情视为显变量,保留攻击与信念作为潜变量时,模型的拟合是可以的。移情的四个子量表之间有复杂的关系,而这不是我这个研究想关注的问题。我该如何处理呢?

庄主 @ 2010-06-13:

正如我在你上面叙述中加注所说,你想研究的是一个moderated mediation (“被调节的中介效应”?) 模型。虽然这种模型有点复杂,但是你遇到的三个问题(见下),却是在其它各种模型中也经常会出现。

一、为何你对三个中介变量分别做CFA时各自都拟合得很好,但当将三个因子合在一起做CFA时却拟合不好?这很常见。一般而言,单个因子CFA(即只有一个因子的模型)非但没有意义、而且富有误导性。实际研究中,最简单的模型至少也有两个因子。而拟合任何一个多因子模型,则不但需要每个因子内部的测量指标之间高度相关,而且需要各因子之间的测量指标基本独立(见下图a)。而如果数据是下图b那样,则会出现单因子模型拟合很好而多因子模型拟合不好的现象。在本例中,如果分别拟合X1-X3和Y1-Y3,会得到两个很完美的模型,但那是假象,X1-X3和Y1-Y3实际上应该同时属于一个因子。

image 二、为何总样本的拟合度要比六个分样本的拟合度好?你没有这么说,而是我从你提供的总样本模型拟合度(应该是勉强可以接受)和对分样本结果的叙述(如“六组都不能很好地拟合总模型”和“NNFI仍徘徊在0.8”等)中推出。这应该与你的分组样本过小有关。如你所说,每个分样本100余人,而每个模型含30来个测量指标((= 22个中介变量指标 + ?个自变量指标 + ?个因变量指标)。计算样本量是否足够的一种快捷方法(不一定精确但大体上可靠)是样本量除以测量指标数。文献中最宽松的说法是应该大于10(我倾向于更大一些)。而你这里只有4-5之间。样本小的一个直接结果是指标之间的相关程度不稳定(可以更高或更低)。回到上图,总样本容易接近a,而分样本则难。这里不怕因子内部相关程度变低,而是拍因子之间相关程度变高。

改进的方法包括:增加样本(你大概做不到);减少分组(如两个年龄组 X 两个性别组 = 4);减小测量指标数(尤其是“移情”用了12个指标,有必要那么多吗?)等。

三、“移情”是个“坏”因子,是否可以将其12个测量指标直接进入模型(即你说的“显变量”)?如果为了提高拟合度,当然可以这么做。但是,这在理论和统计上都是下策。首先,显变量都是含测量误差的;其次,一个含12个显变量作为中介变量的模型是无比复杂;再次,部分(或很多)显变量之间会有共线性问题;等等。所以,你得到了模型拟合度的改进,但失去了更多。

我并不了解你的“移情”量表之来历,估计是个已被前人验证的成熟(?)工具。如此,为何在本案中成为“搞坏了一锅汤的老鼠屎”呢?也许是问卷翻译的问题?或是被测对象的不同(文献中的移情是用于儿童的吗)?还是加在其它问题之后(?)产生的副作用?等等。可能有很多种原因。你说移情不是你本研究想关注的问题。但是,如果该因子的测量模型太有问题,那么,你只能在整体删去这个因子和显变量处理之间做出痛苦的选择。如果是我,会选择前者。

分类:统计 标签:,

为何一个自变量在总样本和分样本中的显著性不同?

2010/06/05 留下评论

>

Anonymous @ 2010-06-02:

老师:您好。我在做回归分析的时候遇到一个问题,想向您请教。假设我用一些自变量解释因变量y

y=a0+a1x1+a2x2+…+anxn     (模型1)

最后得到的结果是x1(如非农收入比重),x2(如政府补助)与y1显著相关(p<0.01)。我的指导老师希望我对样本进行分组,分为参与非农产业与未参与非常产业,然后对两个子样本分别进行回归分析。他想考察参与非农产业与不参与非农产业的情况下,x2对y的解释力是否有差异。得到两个模型:

参与非农产业的样本(样本2):y*=a0*+a2*x2*+…+an*xn* (模型2)

不参与的样本(样本3):y‘=a0’+a2‘x2’+…+an‘xn’ (模型3)

结果模型2里,x2与y之间显著相关,模型3里二者并不相关。我的指导老师就说这是因为,x2与y之间之所以显著,就是因为在样本2里二者有显著相关关系。对于不参与非农产业的样本,x2与y之间并无关系。因为我对统计知识一无所知,所以上来向老师求助。我的指导老师的说法对吗?出现这种结果还可能是什么原因?或者怎样理解这种现象?

期待您的回复,谢谢

庄主 @ 2010-06-05:

虽然你描述了很详细,但我还不敢肯定完全清楚你的数据(如Y是什么?)和以及你指导老师的意思(他的话“X2与Y之间之所以显著是因为两者有显著相关关系”好像是同义词重复?)。

我猜,你的核心问题是为什么X2在总样本和分样本1中对Y有显著影响,但在分样本2中没有显著影响?假定你是根据X1而将总样本一分为二的(因为X1没有出现在模型2或3中),那么X2只在分样本1中显著的原因有二:

一、X1与X2对Y有交互影响(interaction)。简单说来,X2对Y的影响不是一个常数,而是随着X1的值而变化,如当X1 > 0 (是吗?)时,X2对Y有显著影响;而当X1 = 0(是吗?),X2对Y并无显著影响。至于为什么会这样,则是需要用你们的专业知识来解释了。

二、由两个分样本的大小不同而造成。我们知道,相关系数或回归系数的显著性与样本大小直接有关。如果两个样本的大小不同,即使两者的相关系数或回归系数相同,其中大样本的系数可能显著而小样本的系数则可能不显著。这是一种方法上的artifact(即人为假象)。你需要检查一下两个分样本的大小是否相同。

事实上,如我在前贴(如“分样本比总样本的回归分析更准确吗?”)中指出,检查X1和X2的交互影响,不应该将样本按X1的值分成两个分样本来比较a2,而是应该在总样本(即你的模型1)中加入X1和X2的交互项(即X1和X2的乘积),用你的模型术语来表示,即为 Y = a0 + a1X1 + a2X2 + a3X1X2 + … + anXn。其中a3的显著性直接检验了a2是否随着X1的变化而显著变化,并避免了因为将总样本分成分样本而造成的人为不显著假象。

分类:统计 标签:,

如何比较自变量与中介变量的解释力?

2010/04/21 2 条评论

>

YF @ 2010-04-19:

庄主,非常感谢您对学生的慷慨指导,我想向您请教一个新问题。《管理世界》上有篇文章(见以下出处),是研究中介效应的,其自变量是家长式领导方式,应变量是团队绩效,团队冲突管理方式。作者按照Baron & Kenny(1986)检验中介变量的方法,分析结果用表2表示。

clip_image002

我的问题和该作者文章没有关系,是以该文章为例:(1)如果比较中介变量和自变量对应变量的解释力是否有意义?(2)如果有意义,是否根据下表2结果可以比较中介变量和自变量对应变量的解释力?如果可以根据下表2结果比较,那么看哪两个数据?例如:如果比较仁慈领导和合作型团队冲突解决方式对团队绩效的解释力,是根据0.726**(model 3)〉0.513**(model 2),还是根据0.662**(model 4)〉0.126(model 4),认为仁慈领导对团队绩效的解释力大于合作型团队冲突解决方式对团队绩效的解释力。

文献出处:张新安, 何惠, 顾锋. 家长式领导行为对团队绩效的影响:团队冲突管理方式的中介作用. 管理世界, 2009, 3: 121-133.

庄主 @ 2010-04-21:

问题1:比较中介变量与自变量之间对因变量的解释力之差别,是否有意义?有,但这只是检验中介效应的规定动作之一。强度版的中介效应要求自变量(X)对因变量(Y)的直接影响(Byx)= 0 而其通过中介变量(W)的间接影响(RwxByw) > 0;而弱度版的中介效应则要求Byx < RwxByw。也就是说,Byx < Byw是中介效应的必要条件(因为Rwx小于1.0)。所以两者的差别是不喻而言的。如果Byx大于或等于Byw,那就没有必要再谈中介效应了。

问题2:如果比较Byx与Byw的大小,应该看模型4。你的困惑来源于作者不合适、也无必要用了四步的hierarchical回归(“分批进入回归”,参见我数贴中对在类似场合下使用这种方法的批评),模型2(自变量模型)和模型3(中介变量模型)的系数是不能直接比较的,因为模型2中的Byx是在Byw缺席情况下估算的,其中含有通过Byw的间接影响,所以是夸大了的;同样,模型3中的Byw的影响也因为由于Byx的缺席而被夸大了。只有两者同时出席的模型4才是直接比较的地方。

当然,模型2和模型3也有其用此,就是通过计算模型4的R平方 – 模型2的R平方(= 0.505 – 0.307 = 0.198)来得知两个中介变量(合作型和竞争型)对因变量的联合解释力,并通过计算模型4的R平方 – 模型3的R平方(= 0.505 – 0.478 = 0.027)来得知三个自变量(权威、仁慈、德行)对因变量的联合解释力。而表中模型2和模型3的ΔR平方则是没有什么意义的。由于很多读者对此有困惑,我再重复一下这种“nested testing”(嵌镶式检验)与上述“分批进入回归”的区别:

假定模型为Y = b0 + b1X1 + b2X2 + b3X3,分批进入回归的做法是估计三个模型,分别为Y = b0 + b1X1, Y = b0 + b1 + X2, Y = b0 + b1X1 + b2X2 + b3X3,然后认为:模型1的R平方代表X1对Y的解释力、模型2的R平方与模型1的R平方的差别为X2对Y的解释力、模型3的R平方与模型2的R平方的差别为X3对Y的解释力。其问题是模型1的R平方中包含了X2和X3的贡献、模型2的R平方中包含了X3的贡献。

嵌镶式检验是估计四个模型,分别为1:Y = b0 + b1X1 + b2X2 + b3X3(全模型),2:Y = b0 + b2X2 + b3X3(X1缺席模型),3:Y = b0 + b1X1 + b3X3(X2缺席模型),4:Y = b0 + b1X1 + b2X2(X3缺席模型),然后认为:模型1与2的R平方之差为X1对Y的独立解释力、模型1与3的R平方之差为X2对Y的独立解释力、模型1与3的R平方之差为X3对Y的独立解释力。这里的最后一步与分批进入回归的最后一步相同、但其它比较有数量和质量上的区别。注意,嵌镶式检验的三个R平方差其实就是模型1中X1、X2和X3的semipartial correlation,在SPSS中叫做“part correlation”,可以只估算模型1而得知,不需再分别运行模型2-4的。对初学者来说,分别操作一下有助于从理念上认识上面讨论的各种问题的逻辑。

如何绘制个人增长曲线图?

2010/04/18 留下评论

>

Z @ 2010-04-15:

我们有一3个wave的panel样本,用GLM Repeated Measures分析数据,并从中画出三个时间点上样本的平均值。我们写了一篇论文投给某国际期刊,有位评审人要求我们随机抽取10人,在同一图里显示各自的growth curves。我们在SPSS中试了很久,怎么也无法制作这种图。不知是否可以在SPSS中“自动”做到?

庄主 @ 2010-04-18:

最近我教的统计课里,也有一位同学提出相同的问题,其答案在于纵向数据的特殊结构。一般说来,纵向数据的结构有“矮胖型”和“瘦长型”两种。但你们需要的是第三种结构。

矮胖型数据与更常见的横向数据相似,每一列是一个变量、每一行是一个个案,由于纵向数据的因变量有多个时点的观测值,每个观察值被当做一个变量,分别占领一列,一般在因变量名后加下标1、2、…、t(t=时间点个数)来显示各自的观测时间点。所以,这种结构的正式学名叫做“multivariate format”(因变量多列型)。如表一代表你们的数据,其中Y1、Y2和Y3是因变量Y在三个时间点上的观察值,注意它们是被当做三个变量分别各占据一列,X是自变量(只测量一次,所以只有一列)、最后的“…”表示还可以有其它自变量。GLM、SEM等都是使用这种结构的数据。但是,这种数据无法用来制作“intrapersonal growth curves”。

表一、因变量多列型数据结构(n行记录、t列因变量)

ID Y1 Y2 Y3 X
1 y11 y12 y13 x1
2 y21 y22 y23 x2
n yn1 yn2 yn3 xn

在瘦长型结构中,因变量只占一列,但是每个个案占三列,因此因变量y1、y2和y3分布在这三行之中(见表二)。为了保留Y的观测时间点,新增加了一个变量Time,取值1、2、…、t。这种结构的正式学名叫做“multirecord format”(个案多行型),是HLM和其他多层分析软件所要求的数据格式。在这种数据结构中,你可以通过选择个人的ID来显示一个人的增长曲线,但也无法在同一图中显示多人的增长曲线。

表二、个案多行型数据结构(n x t行记录、1列因变量)

ID Time Y X
1 1 y11 x1
1 2 y12 x1
1 3 y13 x1
2 1 y21 x2
2 2 y22 x2
2 3 y23 x2
n 1 yn1 xn
n 2 yn2 xn
n 3 yn3 xn

如要在同一图中显示多条增长曲线,需要将矮胖型或瘦长型数据转换成第三种结构,这在文献中还没有专门的名称,我姑且称之为individuals-as-variables format(“每人一列型”),如表三所示。这种结构更加“奇怪”,每一列是一个人的因变量或自变量,而每一行是一个时间点。本例t = 3,所以只有三行,比起矮胖型的n行来更加矮胖了。这种结构不适合做统计分析,但十分适合做各种图形,如可以做以Time为X-轴、单个或多个Y为Y-轴的增长曲线,也可以做以X为X-轴、Y为Y-轴的个人层面X-Y散点图。

表三、每人一列型数据结构(t行记录、n列因变量)

Time ID1_Y ID1_X ID2_Y ID2_X IDn_Y IDn_X
1 y11 x1 y21 x2 yn1 xn
2 y12 x1 y22 x2 yn2 xn
3 y13 x1 y23 x3 yn3 xn

好了,根据上述原理,你可以按需要而将数据在这三种结构之间互相转换。当然,如果你会使用SPSS的Syntax指令,确实可以用以下(或类似)的指令来“自动化”操作(注:指令中的大写字母是SPSS指令、小写字母是可以替代的变量名或文件名)。

*1. 假定你的数据是矮胖型结构,首先转换成瘦长数据.
VECTOR j=y1 to y3.
LOOP i=1 to 3.
COMPUTE y=j(i).
COMPUTE time=i.
XSAVE OUT ‘r:\temp.sav’/KEEP id time y x.
END LOOP.
EXE.

*2. 随机抽取10个个案.
SAMPLE 10 FROM 100.  
EXE.
MATCH FILES FILE */KEEP id.    /*只保留被抽取的id.
AUTORECODE id/into newid.      /*对id重新排序.

*3. 与瘦长数据并行对接.
MATCH FILES TABLE */FILE ‘r:\temp.sav’/BY id.
SELECT IF newid>0.     /*剔除没有newid的个案.
EXE.

*4. 从瘦长数据中逐个提取个案,分别保留到单独文件中.
DEFINE !newcase (!POS, !CMDEND).
!DO !i !IN (!1).
TEMP.
SELECT IF newid=!i.
SAVE OUT !QUOTE(!CONCAT(‘r:\newcase’, !i, ‘.sav’))
  /KEEP time y x
  /rename (y=!concat(‘y’, !i)/rename (x=!concat(‘x’, !i).
!DOEND.
!ENDDEFINE.
!newcase 1 2 3 4 5 6 7 8 9 10.
EXE.

*5. 将10个单独文件平行对接起来,构成最后的“个案每列”结构.
MATCH FILES FILE ‘r:\newcase1.sav’
  /FILE ‘r:\newcase2.sav’
  /FILE ‘r:\newcase3.sav’
  /FILE ‘r:\newcase4.sav’
  /FILE ‘r:\newcase5.sav’
  /FILE ‘r:\newcase6.sav’
  /FILE ‘r:\newcase7.sav’
  /FILE ‘r:\newcase8.sav’
  /FILE ‘r:\newcase9.sav’
  /FILE ‘r:\newcase10.sav’.
EXE.

*6. 打印10个因变量对时间的散点图.
TSPLOT y1 y2 y3 y4 y5 y6 y7 y8 y9 y10/ID=time.

以下是步骤6制作的10条“个人增长曲线“图,估计就是你们要画的那种了。

image

如何处理自变量之间的相关关系?

2010/03/20 留下评论

>

JF @ 2010-03-15:

我有一个初级问题想了很久还是不清楚。假如我有一个因变量Y、两个自变量X和Z,如果做回归分析,只要将X和Z同时进入回归模型就可以了,不需理会X和Z的相关关系。但是如果用SEM,除了要分别连接X和Z对Y的路径,还要连接X和Z之间的相关关系。这是为什么呢?不是说在结构层面回归和SEM是一致的吗?

另外,在报告上述SEM结果时,是否需要描述和解释X和Z的相关关系?如果用回归分析,是否还需要另行计算X和Z的相关关系、然后再报告呢?

庄主 @ 2010-03-20:

你的问题确实简单、但绝非初级,因为其中涉及了回归分析与结构方程模型(SEM)的主要异同,值得讨论一下。首先,自变量与因变量之间的结构关系 (structural relationship among variables),如自变量对因变量的直接影响、间接影响、总影响、交互影响、等等,在回归和SEM中都是同义的(但不一定是等值的,因为前者含有测量误差而后者不含测量误差,但这与本文无关,所以下面的讨论均假定所有变量都不含测量误差)。

但是,在处理自变量之间的相关关系时,两者所用的方法不同:回归是用隐含方法而SEM是用明示方法。在回归模型 Y = b0 + b1X + b2Z中,对回归系数b1和b2的估算公式分别包含了X与Z的相关系数(记为rXZ;同理,Y与X、Y与Z的相关系数分别记为rYX和rYZ):

image

image

由于b1和b2是在Y与X或Z的简单相关系数中扣除了X与Z的相关程度(以及Y与另一自变量的相关程度),所以b1和b2又被叫做partial regression coefficients(偏回归系数)。可见,在回归分析中,自变量之间的相关关系是自动而且必须地被控制了的。这里的“被控制”是指用于消除自变量之间的相关关系的影响。

在SEM中,自变量之间的相关关系是需要明确设置的。如在使用矩阵语言的LISREL中,通过指令"FR PH (1, 2)”来估算rXZ;而在使用图形语言的AMOS中,则是通过在X和Z之间画一条双箭头的曲线来估算rXZ(见下图,注:图中的三个参数b1、b2和rXZ是不需要的,这里只是为了说明它们与上述回归模型的对应关系)。

image

该SEM模型与上述回归模型是等价等值的。大家可以用一个含三个变量、N > 200 (SEM所需的最小样本量)的数据验证一下,两个模型的b1、b2、rXZ、R-Square(= AMOS中的MSC)、Std error of the estimate(= SEM中e的Variance的平方根)应该都相等。然而,回归用的是OLS(最小二乘法)而SEM是用ML(最大似然法)来估算上述参数的。这两者之间的差别,除了对样本量的要求不同(ML估算只有在大样本条件下才可能接近OLS结果),还有许多深层的差别。这里只讲其中比较明显的一个差别:如上所示,rXZ在回归中是自动被控制起来的,但在SEM中却需要人为设置。反过来说,如果需要的话,在SEM里也可以设置rXZ = 0(在AMOS中也可以将X和Z之间的曲线删掉)或其它任意值(1.0,0.5,等等)。如此设置的模型,因为少估算了一个参数,所以会比原模型多出一个df(自由度),通过比较两个模型的拟合指数(Chi-squares)之差,就可以检验 rXZ = 0(自变量之间为正交)或rXZ = 1 (自变量之间没有discriminant validity)等假设。这些都是无法在回归分析中实现的。

回归模型与SEM模型之间更核心的区别在于前者是在变量层面检验自变量对因变量的解释程度、而后者则是在观察值的方差-协方差矩阵层面检验理论模型与实际数据之间的拟合程度。打个不完全恰当的比分,回归是西药,针对特定病症有强效,但不顾其它后果;而后者是中药,旨在整体和治本,但有时对特定病症并无速效。这种根本区别在本文讨论的自变量相关关系上也有一定影响,但这是一个大题目,需要很多基本概念和铺垫,否则难以讲清,所以不予展开,只是提醒大家,SEM的水很深,下水前要做足热身运动,而回归则是最好的热身运动。就如现在的中医学院都是先教西医原理、再进入中医的。

回到你最后那个问题:如何报告rXZ?一般说来,自变量之间的相关关系(如rXZ)是一种unanalyzed relationship(不作分析的关系)。这里的所谓“不作分析”指的不是统计分析、而是理论分析。如上所说,rXZ在回归中是不直接计算的,但在SEM和用回归做路径分析中均需要统计分析的。但是,除非有特定研究目的(如上述检验自变量之间的discriminant validity)之外,大多数理论并不规定自变量之间关系的强度、方向(谁影响谁)、性质(正或负相关)等,所以实际研究中往往只是简单地估算它们之间的相关关系而不进一步深究其关系的性质、方向、性质等。在写报告时,如果用图形表示实证模型的话,可以在图上标出相关系数的估计值;如无图形,可在附录或注释中用文字或表格报告一下;但在正文中则一般不必提及。

分类:统计, 论文写作 标签:,

如何确定两个调节变量之间的主次关系?

2010/03/06 2 条评论

>

SJ @ 2010-03-02:

祝老师您好!我是心理系的学生。在网上偶然逛到您的庄园,受益匪浅!非常感谢您的慷慨,跟大家分享您的所学所得。我最近在处理早前的一个数据,遇到困惑,不知道该怎么继续,想向您请教,先谢过。

我的数据涉及以下变量:一个自变量、一个因变量、四个假设的中介变量。另外人口统计学变量方面,考察了年龄(分成四个年龄组)和性别。我关注的是自变量如何通过中介变量影响因变量,以及这种影响是否存在年龄的发展差异。然而,我在做各个变量的相关时发现,性别跟好几个重要的变量都有显著的相关。因此我的困惑在于,我应该如何处理性别的问题。1.把性别作为调节变量,放到各个年龄组中来建立模型?2.还是每个年龄组都建立男生模型和女生模型?您觉得哪种方法更合适?具体又该怎么操作呢?

庄主 @ 2010-03-06:

谢谢与大家分享你的研究问题。这是一个相当复杂(其复杂程度应该远远超出你的预计,具体见下)的研究设计。我前天在我的课上介绍了你的问题,建议学生们来这里分享他们的看法。至今还没有人现身,也许是你的问题太难、也许是他们还没完成下周一交的作业。我先说一下解决方案的基本思路,希望他们能够接下去帮你解决方案的操作问题(同学们,这是你们给老师和学校挣面子的时候了)。

先整理一下你的问题所涉及的研究假设:

H1. 自变量X对因变量Y的直接影响(记为bYX)。

H2. X通过中介变量M1-M4对Y的间接影响(分别记为bY(M1-X)、bY(M2-X)、by(M3-X)和bY(M4-X))。

H3. 年龄A对直接影响bYX的调节作用(即A与X对Y的交互效应,记为bY(X*A))。

H4. 年龄A对间接影响bY(M1-X)等的调节作用(即A与X-M对Y的交互效应,分别记为bY((M1-X)*A)、bY((M2-X)*A)、       bY((M3-X)*A)和by((M4-X)*A)。注:因为X-M对Y是中介关系,所以A与它们的交互关系是一种被称为“moderated mediation“、即“被调节的中介关系”,相当复杂!)。

先在这里停一下。H1-H4可以用OLS回归来分析,但在SEM工具(如LISREL、AMOS等)中更方便。如用后者,需要把年龄当做组别,而将样本按年龄分成4组、通过比较组间的invariance来检验X对Y的直接和间接关系是否随着年龄的变化而不同(具体操作这里略过)。也就是说,moderated mediation关系,听起来很复杂,但在SEM中通过设置组间equality constraint的小技巧(或“小伎俩”?),很方便就能解决了。

好了,回到你最后的问题:如何检验性别S的影响?也就是检验以下假设:

H5. 性别S和年龄A对直接影响bYX的调节作用(即S、A与X对Y的交互效应,记为bY(X*A*S)或bY(X*S*A))。

H6. 性别S和年龄A对间接影响bY(M1-X)等的调节作用(即S、A与X-M对Y的交互效应,分别记为bY((M1-X)*A*S) 或      bY((M1-X)*S*A)等)。

你考虑了两种方案来检验H5和H6:一是将性别nested(嵌镶)到年龄中、二是将年龄嵌镶到性别中。表面上看,好像两者有根本区别,但实际上是一回事!性别和年龄是两个同等级别的调节变量,它们的联合影响是一种3rd-order interactions(三阶交互效应,也相当复杂),用公式来表述,如H5中的bY(X*A*S)或bY(X*S*A),前者是年龄嵌镶在性别中、后者是性别嵌镶在年龄中,但无论谁嵌镶到谁中去,bY(X*A*S)和bY(X*S*A)两者是完全同价等值的。如果用SEM来检验,也无论谁嵌镶到谁中,你总需要将样本分拆成8个组(4个年龄组X2个性别组)。当然,在解读结果时,你可以而且需要根据自己的理论框架来确定A和S之间谁主谁仆的次序。

最后,要说一下检验如此复杂模型的成本问题。如上所说,如果用SEM,需要8个组;基于每个组涉及5个自变量(X、M1-M4),按每个自变量需要20个案来计,你至少需要每组100个案,总样本800个案。当然,你的年龄组分布可能不均匀,所以总样本很可能要1000以上。如果不用SEM而用回归,可以不分组,但是变成了一个非线性模型,涉及了24对二阶交互关系和12对三阶交互关系,即使总样本有1000个案,也只少不多。样本数少了、会有什么后果?你的中介效应、调节效应和被调节的中介效应都有可能不显著。其中的最薄弱环节是中介效应(H2)。所以,建议你先将H2分成H2a-H2d四个分假设,分别检验A和S对各分假设的调节作用(= 4 X  (4 X 3 /2) X 2 = 48个组间比较,如果你想不通为什么会有48个组间比较,请详细演算一下),以简化模型。

总结:中介效应、调节效应和被调节中介效应在理论上都是很吸引人的模型,但在实证上即昂贵又难操作,需要事先有充分的思想和技术准备。

分类:统计 标签:, ,

如何理解SEM的八个参数矩阵与七种变量之间的对应关系?

2010/02/15 留下评论

>

s @ 2010-02-05:
 
曾看过你的帖子“LISREL的八个矩阵”,最近在学习用AMOS做SEM分析,不知两者有何关系?
 
庄主 @ 2010-02-15:
 
如我在上述帖子中说的,LISREL是用八个矩阵来设置SEM模型的。这些矩阵分别代表了SEM模型中七种变量的参数。在LISREL中,变量与参数之间的对应关系是比较明确、不易混淆的。如,大家知道,描述因子与其测量指标之间关系的参数叫做“因子负荷”,其中外生因子测量指标x的负荷矩阵是用Λ(x)来估算、内生因子测量指标y的负荷矩阵是用Λ(y)来估算的,两者不能放在一起(即外生因子无法与y相连而内生因子无法与x相连)。这种规定在大部分情况下是合理和必要的。(当然,少数情况下,研究者也许有特殊理由需要将x挂到内生因子上或y挂到外生因子上,就需要设定特殊的“All-y model”(全y模型)。这种额外步骤,虽然麻烦,但防止了初学者因不知情而乱点鸳鸯谱。)
 
AMOS是通过图像来设置模型的,用户不再需要与八个矩阵的希腊字母打交道,所设置的模型是“What you see is what you get”(WYSIWY),很容易上手、也避免了模型设置时的一些常见错误。但是,在这种“自由自在”的界面中,很容易犯一些LISRE里不会出现的错误。比如上面所说的,任意(或根据Modification Index的误导)将x挂到内生因子或将y挂到外生因子上去。这种模型或者无法identified、或者违反“误差项与自变量独立”的基本假定,因为AMOS以及其它SEM软件在估算模型的参数时,其实还是在背后使用上述矩阵。
 
为了帮助大家在用AMOS设置模型时避免设置不能或不该估算的参数,我在八大矩阵的基础上再做了一个表(见下),以显示八个参数矩阵与七种变量之间的关联与隔离:
 
8_Matrices_Table3
 
表三的7列和7行分别代表了SEM的七个变量(包括外生因子ξ、内生因子η、η的误差ζ、外生因子的测量指标x、内生因子的测量指标y、x的误差δ、y的误差ε),它们在列里担任的是自变量的角色、而在行里担任的是因变量的角色。
 
两种变量相交的格里如果出现一个希腊字母,就说明它们之间存在一个参数矩阵(在下图中用黑色线条来表示);而如果是个空格,就说明它们之间不能发生关系(在下图中用红线表示)。如第一列ξ与第一行ξ之间有个方差-协方差矩阵Φ(如下图中的φ12);第一列ξ与第二行η之间有个外生因子->内生因子的回归系数矩阵Γ(如下图中的γ11和γ22);第二列η与第一行ξ之间是空白(即图中η2到ξ1的错误红线),因为内生变量不能影响外生变量(AMOS是可以让你画这条线的,但这在逻辑上是错的);当然第二列η与第二列η之间是可以有一个内生因子->内生因子的回归系数矩阵Β(如图中的β12和β21);等等。
 
表中还有三个记为“I”的矩阵,它们不在八个矩阵之内,而是三个对角线为1、其余部分为0的Identity矩阵,用来定义三种误差项变量(ζ,δ和ε)系数的数学工具,而AMOS在处理误差项变量系数时则是很“智能”的,会在相应处自动为它们标出取值为"1”的回归系数(见下图)。
 
8_Matrices_Fig2_IllegalParameters
分类:统计 标签:,

LISREL的八个矩阵

2010/02/15 留下评论

>

(原版2007年5月19日,略有修改重发)

传说中的“八大军区联络图”终于出笼了:

8_Matrices_1e

上图看起来挺吓人的。别紧张,先定义一下。图中每个圆圈代表一个隐含因子、每个方块代表一个观测变量、每条直线或曲线代表一个参数(parameter,也叫系数)、跟在每条半封闭直线后面的是一个因子或变量的残差(error)。所谓“八大矩阵”,就是八种参数的集合。分别列在表一:

8_Matrices_table1

如表所示,其中前四个矩阵用于测量模型部分、后四个矩阵用于结构模型部分;每模型一部分又分别分为外生(即图一的左边)和内生(图一的右边)两边;每一模型部分的每一边,再分别分为关系参数和残差参数。即一个2 X 2 X 2的设计,十分严密。

上面的图和表中,都用到了希腊字母、而且大小写并用,实在是三难(难认、难读、难记,读音参见表二)。其实经典统计学中也用到一点希腊字母,其规则是:变量名用罗马字母(即英文)、参数用希腊字母(如回归系数叫BETA);总体变量和参数用大写、样本变量和参数估计值用小写。LISREL大体上沿用了这些规则。然而,由于SEM中的变量有观测的和隐含的之分,LISREL的创始人Joreskog决定沿用罗马字母表示观测变量、但用希腊字母表示隐含因子。其用意可嘉、但结果使得参数和隐含因子分享同一套符号而产生了很多困扰。(如果该老友用禅经字母来表示隐含因子、那该多爽啊。)

八大矩阵是LISREL的核心思想,也是其与AMOS、EQS等其它软件的主要不同。其缺点如上所说,概念太多、名字难念、令人望而生畏。优点嘛,则见仁见智。我用了近20年,觉得其好处主要有两个::一是便于区分外生因子(exogenous factors)与内生因子(endogenous factors)之间、隐含因子与观测变量之间、以及因子/变量的各种相关系数之间的差别;二是便于用户之间交流(包括写学术报告)时有一套确定而又简便的符号系统。

当然,是否值得仅仅为了这些好处而去重学一种外语(希腊语),则又是见仁见智了。我的看法,如果你用LISREL,那只能学;如果你用其它软件、但有志成为SEM的pro,那也要学一下(不然如果与主流沟通?);如果你用其它软件而无意成为SEM方法专家,不学也罢,有所失必有所得。

8_Matrices_Table2
分类:统计 标签:,