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往往是唯一的选择。

No comments: