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有所不同。如果你需要知道后者,可以根据协方差分析的结果手工计算,当然更省事的方法是放到回归分析里去计算。