档案

Posts Tagged ‘名目变量’

是否应该使用生存分析?

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/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有中介效应。这种看法是错的。

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

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原则来展开的)。当然,你可以同时用两种或多种方法分别分析一下,看看各种结果之间有多大差别?那种方法的结果看上去更合常理?

如何确定名目变量交互项的参照组是什么?

2009/11/15 留下评论

台灣吳同學 @ 2009-11-13:

老師您好,我是台灣的學生,對您的統計解釋相當有興趣。最近我遇到了一個問題,我嘗試把他說清楚,希望您可以幫我解惑。

在我的logit model裡頭,有兩個類別變數,分別為性別與教育程度。其中,性別是男女二分變數(男=1,女=0),而教育程度則分為低,中,高三類(中=0).我的依變數是收入,分為低與高兩種(低=0).假設,我想探討性別與教育程度的交互作用(性別X教育程度),我的交互作用項只能把1.男X低教育和2.男X高教育放入模型中,請問我的交互作用項在這時候的參照類是什麼?是1.男X中教育? 還是2.女X中教育?

另外,也想知道要如何解讀交互作用項B和EXP(B)的意義。希望您能看得懂我的問題,謝謝!

庄主 @ 2009-11-15:

吴同学,从统计上来说你的问题并不难,但要解释清楚却简短不了,而且有点绕弯弯(所以提醒读者随手做些推算验证,以免绕不出来)。我把这类问题叫做technically simple but practical not trivial (技术上很容易但操作上不简单),往往会被人疏忽或轻视,所以不容易找到答案。如你问的,实质上是一个“如何解读回归分析中交互项的系数?”的问题,对此我已写过好几个帖子(如“如何在回归分析中检验和解读交互影响?”)。但是,你由于下面谈到的若干误解而对这个问题产生困惑,也许已问过其他人或查过其它参考文献,但却不得而知。

我觉得你的困惑可能有三个来源混合而成:第一,你的因变量(dependent variable)不是收入本身、而是高收入与低收入之比例的对数,但无论你根据什么理由来如此构建因变量,你的问题与因变量性质无关,也就是说交互项的对照组问题在包括OLS、GLS、Logit、Probit、Logistic等等所有回归分析中是一样的。所以有关如何解读回归分析交互影响的文献(包括我自己的有关帖子)都是直接相关的。

第二,你的两个自变量都是nominal scale (名目变量) 而不是更常见的interval scale (等距变量),而且你用了dummy coding(哑变量编码)方法,但你对这种编码的原理了解不够(很多人都有同样问题),所以无法将如何解读定距变量交互影响的文献转换成你的答案。

第三,也许是最重要的,是你将交互影响等同于main effects(主效应)影响了。此话怎讲?你知道一个名目自变量转换成哑变量之后,其回归系数描述的是该哑变量取值为1的“研究组”与取值为0的“对照组”之间在因变量Y的平均值上的差别。这种理解完全正确。但是,你将其推广到对交互项系数的理解上去了,所以会问该系数是跟哪个对照组在比较?

为了有助其他读者理解你的问题,我用以下公式来表述你的回归模型:

Y = b0 + b1M + b2H + b3L + b4MH + b5ML                         (1)

其中,Y是因变量的平均值(注意:为了写作方便,本文没有按惯例在Y上加一横杆来代表平均值),M是性别(因为Male=1,所以命名为M),H是高教育程度(High),L是低教育程度(Low),MH是你说的“男X高教育”的交互项,ML是“男X低教育”的交互项。b0是在性别和教育两个变量中同时担任对照组(即同时取值为0)的FM(女性中等教育)组的均值,b1是男女差别(即性别的主效应,注意:这句话在有交互影响条件下有问题的,见后面的简单讨论)、b2是高教育与中教育的差别(高教育主效应,注意:这句话在有交互影响条件下也是有问题的,见后面的简单讨论)、b3是低教育与中教育的差别(低教育主效应)、b4是性别与高教育的交互影响、b5是性别与低教育的交互影响。

上面这段话中,大都分都是常识,唯一需要加以讨论的是什么叫做“性别与高(或低)教育的交互影响”。以b4为例,它反映的是“性别对高等-中等教育程度之间差别的影响”、或倒过来说,是“高教育对男女之间差别的影响”(这两种说法是等价的)。也就是说,b4描述的是高和中教育组之间的差别大小、在男性和女性之间是否相同;或者,男女之差的差别大小在高和中两组之间是否相同。这个意思,中文里说确实有点绕弯弯,用英文表述则相当清楚: b4 indicates whether the difference between the highly-educated and moderately educated groups is constant (uniform, equivalent, invariant, etc.) for men and women, respectively; or whether the difference between men and women is constant (…) for highly educated and moderately educated people, respectively. 

这是问题的核心:主效应系数(b1-b3)反映的是组间差别,所以有研究组和对照组;但是交互项系数(b4-b5)反映的是组间差别的差别(difference between diffrences between groups, or difference between group-differences),所以没有主效应系数意义上的对照组。也就是说,b4或b5反映的不是两个组之间是否有差别,而是两个组间差别之间是否有差别,所以不需要有、也不可能只有一个对照组。

问题解决了吗?应该还没有。我希望大家能够记住两句话:一、交互项系数反映的是交互影响而不是组间差别(即“交互影响不等于组间差别”);二、组间差别又是与(显著的)交互影响直接有关的。为了说明第二句话,我们来看看在交互项显著的条件下组间差别是如何计算的。我们可以根据模型1,写出计算你的六个组(= 2个性别组 x 3个教育组)的平均值Y的公式:(请大家拿出纸和笔来,将0和1值分别代入模型1,以复核实下述公式。光看不练,也许越看越迷糊。)

男高(MH): YMH=b0 + b1x1 + b2x1 + b3x0 + b4x1x1 + b5x1x0 = b0 + b1 + b2 + b4 (2)
男中(MM): YMM=b0 + b1x1 + b2x0 + b3x0 + b4x1x0 + b5x1x0 = b0 + b1 (3)
男低(ML): YML=b0 + b1x1 + b2x0 + b3x1 + b4x1x0 + b5x1x1 = b0 + b1 + b3 + b5 (4)
女高(FH): YFH=b0 + b1x0 + b2x1 + b3x0 + b4x0x1 + b5x0x0 = b0 + b2 (5)
女中(FM): YFM=b0 + b1x0 + b2x0 + b3x0 + b4x0x0 + b5x0x0 = b0 (6)
女低(FL): YFL=b0 + b1x0 + b2x0 + b3x1 + b4x0x0 + b5x0x1 = b0 + b3 (7)

模型2-7告诉我们如何计算六个组的平均值。为了便于计算它们之间的差别(更重要的是洞察它们之间的结构性关系),我们将模型2-7按以下方式重新安排一下:

表一、性别与教育程度交叉组的回归系数比较

 

M(男性)

F(女性)

H(高教育)

b0 + b1 + b2 + b4   (2)

b0 + b2       (5)

M(中教育)

b0 + b1                 (3)

b0              (6)

L(低教育)

b0 + b1 + b3 + b5   (4)

b0 + b3       (7)

根据表一,我们可以很轻松地(目测)算出各组的差别。基于共有六组,共有 6 x 5 / 2 = 15对组组比较,我们用以下的矩阵形式来表示,以省些空间:

表二、组间差别之计算方法

 

MH

MM

ML

FH

FM

MM

b2+b4

ML

b2+b4–b3-b5

-b3-b5

FH

b1+b4

b1–b2

b1+b3+b5-b2

FM

b1+b2+b4

b1

b1+b3+b5

b2

FL

b1+b2+b4-b3

b1-b3

b1+b5

b2-b3

-b3

注:所有组间差别均由column group – row group(列标题中的组减去行标题中的组)构成。如MH-MM = b2+b4。如果想求行组减列组,只需将表二中所有系数的符号相反即可。

由表二可知,只有三对组间差别是直接由回归系数告知的 (MM – FM = b1, FH – FM = b2, FM – FL = –b3;注意,这里的b1只反映中等教育程度上男女之间的差别、而不是所有教育程度上的男女差别;b2和b3只反映女性中不同教育程度的差别、而不是所有人中不同教育程度的差别,这就是我前面提到的对主效应系数的一般解释“在有交互影响条件下有问题的”的原因),而且三者均只涉及主效应系数。另有两对组间差别是由两个主效应系数的组合而成 (MM – FL = b1 – b3, FH – FL = b2 – b3)。其它10对组间差别均涉及主效应和交互项系数的组合。其中尤其是MH – MM的差别,需要同时用到b4和b5两个交互项系数。

这个练习说明什么?既说明交互项系数不等于组间差别、又说明(大部分)组间差别与交互项系数有关系。具体说来,这种“关系”,是附加在主效应系数的基础上产生的,也就是说交互项系数是对一对主效应关系的adjustment(调整)。其调整程度(微调或巨调)则有b4或b5取值决定。

现在,问题解决了吗?也许有些读者还是有点迷糊,觉得名目变量交互分析好麻烦。对的,这就是我一开始说的“技术上容易操作上难”的道理。推而广之,凡涉及名目变量的多元分析(如loglinear modeling、multinomial logistic regression、等等),没有一样不是技术上容易操作上难的。大家要有充分的心理准备。

在本例中,将问题变得相对简单(或容易?)一些的一种方法是不用哑变量编码、而用effects coding(效应编码?)或 contrast coding(配对编码?)。前者用+1定义研究组、-1定义对照组;后者则按一定的限定条件(恕不赘言)来设定任意两组或两集合组(如本例中高教育对中低教育)的比较。由两个效应编码变量构成的交互项反映了在该两个变量上取值为+1的研究组与所有组的(未加权)均值(虽然不一定等于样本均值、但接近“平均”的意思)之差别(如在本例中,可以是男性高教程度与样本“平均”的差别);由两个配对编码变量构成的交互项则反映了被特定配对的两组或两集合组之间的差别(在这种条件下,交互项系数可以等于组间差别了)。当然,这两种编码(尤其是后者)比哑变量编码在操作上复杂很多、但好处是解读时简单。如果有意学习(或者经常要做)名目变量多元分析的读者,应该花时间分别学一下。(当然,必须说明,不够使用哪种编码方法,交互项的显著性结果是完全一样的。它们的差别只存在于SPSS或其它统计程序输出结果中的系数值,而不同的系数值都是可以互相换算的。)

结束前,为完整起见,需要说明,这里虽然只讨论两个名目变量之间的交互项,其原则可以直接推广到三个或更多个名目变量之间的交互项。

最后,你问如何解读“交互作用項B和EXP(B)”,上面已经讨论了b4-b5的解读。Exp(b)的解读与其相仿,唯一区别在于后者的临界点为1而前者为0,如Exp(b4) > 1或Exp(b5) > 1 反映教育程度的差别在男性中大于女性;相反,如Exp(b4) < 1或Exp(b5) < 1则反映教育程度的差别在男性中小于女性。