杜会学系列教村 第十二章 事件史分析 本章将对事件史分析的基本概念和模型进行非技术性的介绍。具体地说,首 先我们将讨论什么是事件历史分析。然后介绍几种广泛使用的事件历史分析的模 型,特别要着重介绍的是离散时间的kgit模型和Oox比例风险模型( Cox pro portional hazards model)。我们将用1988年中国千分之二生育节育抽样调查的数 据来示范如何使用这两种模型,并在本章后面强调一些应该注意的问题。本章的 附录中提供了使用SPSS软件数据处理和估计的步骤。 什么是事件史分析 近年来,事件史分析方法在社会科学研究领域中越来越流行。使用这种方法 的研究论文发表得越来越多,并且介绍事件史分析技术的社会科学方法的教材也 越来越多,由此大大提高了这种方法的普及程度。首先,事件史分析有很多特点 优于传统的统计分析方法,如OLS方法(常规最小二乘法方法,即 ordinary least uare approach)。其次,社会科学研究人员能够得到越米越多的事件史类型的数 据资料
根据山口( Yamaguchi)的定义①,事件历史分析是研究“事件发生的方式 和相关因素”。社会学家和人口学家研究的许多问题都可以被认为是一些事件 结婚,同居,离婚,出生,死亡,迁移,求职和升迁。事件历史分析的主要目的 是研究某一事件发生的方式和它的决定因素。我们也会经常饶有兴趣地研究不同 事件之间的联系及先后顺序。比如说,一些研究者会对同居与离婚之间的关系进 行研究。由于通常在事件史类型数据中包含着相关事件的明确时间顺序,因此事 件的因果关系就能够被确定地揭示出来。 但是,事件历史分析技术绝不仅仅局限于社会科学。事实上,这些技术早已 在生物医学研究和工程研究中(如检测产品)得到发展和运用,只不过叫法有所 不同而已。在生物医学研究领域(例如一位癌症患者能活多久),人们把它称为 生存分析”。类似地,在工程研究领域(例如研究一个灯泡的寿命,或一个弹簧 在不同压力作用下能够经历多长时间不折断),人们通常用“失败的统计分析 ( statistical failure analysis)这一术语。尽管所用术语不同,但从统计分析的角度 看.其实质是相同的。 1.传统OLS回归模型的局限性 很大程度上讲,事件历史分析在许多方面都优越于人们所熟悉的回归模型。 让我们首先来看一个例子,研究初婚发生的时间。根据传统的回归方法,研究这 一-问题时要估算下列回归模型 初婚年龄=f(教育程度,性别,经济收入,……)+c 这从本质上讲是把初婚年龄作为某些特征如教育程度、性别、经济收人和其他- 些因素的函数。这里“e”代表误差项( errors),通常被假定为正态分布 其实这种模型有许多问题。第一个问题是,那些尚未结婚的人不能被纳入这 模型,因此这部分人的信息就被浪费了。而这种情况可以纳入事件史分析模 型,它们被称之为刪截( censoring),即指删截了那些尚未发生所研究事件的人。 传统OLS回归方法的另外一个更为严重问题是,如果当结过婚的人与未结 婚的人之间存在着系统性差别,那么OLS回归的估计就会存在偏差。比如,如 果结婚的人都比未结婚的人有更好的经济状况,那么我们估计的经济状况方面如 工资或收入的影响就是有偏的。 ①参见 Yamaguchi,Kan,191 Event History analysis, Applied Social Science Research Methods series Volume 28. Newbury Park, CA: Sage Publications. Inc
上述模型往往还把当前同居的人当作未婚的人。这是值得推敲的。在西方社 会如美国,同居现象极为普遍。比如,美国从1980年到1984年之间结婚的人中 有40%有过婚前同居的经历。①并且,同居现象在90年代更为流行了。因此, 将同居与未婚(单身)相提并论是不对的。在事件史分析框架中,这一问题可以 归结为竟争风险模型。不过由于本章篇幅所限,不讨论竞争风险模型的建立。 OS回归的另一个问题是,不能很好地处理随着时间变化的解释变量 (time- varying explanatory variables)。假定我们根据个人收入来衡量一个人的经济 能力,有人也许在26岁时一年挣1万美元,而在30岁时年薪为2万美元,也许 正在这时他才准备结婚(或者有财力去结婚)。在OLS框架中,也许解决这个问 题的一个方法是建立许多收入变量,以衡量一个人在不同年龄上的不同收入。但 是,每个人旳初婚时间是不同的,因此婚后的个人收入对于研究结婚年龄没有意 义。正如我们所看到的,即使仅有一个随时间变化的解释变量,事情也会变得非 常复杂。 总而言之,在传统的OLS回归框架中,对于随时间变化的解释变量并没有 一个很好的解决办法 因此,事件史分析的一个优点就在于它可以令人满意地解决这两个问题,即 删截和随时间变化的解释变量的问题 2.事件史分析概述 如果读者对于生命表技术比较熟悉的话,那么从生命表的角度来考虑,会有 助于对事件历史分析的理解。事实上生命表技术与事件历史分析之间有着内在的 联系。而两者之间的联系可以从考克斯( David cox)关于比例风险模型的论文 题目中看出◎,其论文题目为“回归模型与生命表”。在生命表中,我们的兴趣 是考察一个在阶段初始活着的人生存到某一年龄的概率。①在一定假设条件下, Cherlin, Andrew. 1991. Marriage, Divorce, Remarriage. Revised and enlarge d ed i on.Cambridge, Harvard University Press e. Namboodiri, Krishnan and C M. Suchindran 1987 Life Table Tcchniques and Their ③参见Cox, David r.1972.“ Regression Models and Lifc tables." Journal of roval s tical Sxicty B34: 187--220 a L Namboodiri, Krishnan. 1991. Demographic Analysis: A Stochastic Approach. New York: Academic Press. Inc
最后能推导出年龄别生存(或死亡)的概率。如果我们把年龄看成自变量,那么 生存(或死亡)就是因变量。生命表分析的一个局限在于很难包括许多自变量 主要是因为计算工作太复杂。例如,如果要硏究在控制教育变量的条件下,死亡 概率如何随职业而变化,那么计算工作将会非常令人厌倦。 生命表方法主要是在事件(如死亡)发生的确切时间不详、只知道在一定间 隔(如一岁年龄间隔)内事件发生(如死亡)的数量和不发生的数量(如生存 时才使用的方法。①而通常在事件史分析框架中要解决的却是某一事件的实际发 生时间,比如结婚的时间和开始参加工作的时间等等 与生命表分析类似,事件史分析也专门研究年龄、性别和其他一些理论推导 的有关变量如何对生存(或经历某一事件)的概率产生影响。但是,事件史分析 可以根据需要轻而易举地包含许多自变量。在事件史分析中这些自变量被称之为 协变量( covariates) 在详细讨论事件历史分析模型之前,我们先来介绍一些基本概念。一个重要 的概念是风险集( risk set),它表示一批在不同时点上经历某一事件风险的人 例如,在研究初婚年龄时,1997年的风险集是指当年年龄在15岁及15岁以上 未婚的人。通常情况下,我们对年龄组进行一些限制,因为我们认为年龄在15 岁以下的少儿不应该包括在结婚的风险集中。 第二个概念是离散时间与连续时间。这涉及到时间的单位。如果时间单位很 大,就可以称为离散时间。如果时间单位小,则称之为连续时间。实际操作中通 常的原则是当时间单位为一年或更长的话,就将其作为离散时间对待。如果单位 是月、星期或甚至更小的单位如日或小时,我们就把它作为连续时间来对待 旦决定了是离散时间或是连续时间,我们就可以运用相应的离散或连续时间模型 了 第三个重要的概念是持续期(spel)l。持续期指从开始观察的时点到事件发 生的时点之间、或是到尚未经历事件的人被删截的时点之间的间隔。例如,如果 位已婚女子婚后经过很长时间才初育,我们可以说这位女子有很长持续期(在 结婚与生育之间的长时间间隔)。相反,如果一位女子在婚后头10个月就生育 那么她的持续期就短(或短的生育间隔)。 最后一个重要概念是风险率( hazard rate)。对于离散时间模型,风险率可以 解释为在特定时间某一特定的人发生某一事件的概率,当然前提是这个特定的人 nL Kalbfleisch, John D) and Ross L. Prentice. 1980. Statistical Analysis of Fail Data. New York: John Wiley sons
在那个时间有可能经历这一事件(属于风险集)。对于连续时间模型,风险率可 以解释为每一件事发生的瞬时概率密度。 3.删截的类型 如前所述,事件史分析的一个优点是在于它能够处理删截。尽管我们已经介 绍了删截的主要概念是指那些在观察结束时事件尚未发生的案例,但是实际上删 截的概念十分复杂。删截可以分成两大类:右删截和左删截。如果用T代表随 机变量,我们可用下面的方式来定义右删截和左删截。当我们只知道T是大于 某一常数C而不知道大多少时,我们就定义这一关于T的观察是右删截。注意, 这就是说我们不知道T的实际发生时点。与此相反,当我们只知道T小于某 常数C而不知道小多少的时候,我们定义这一关于T的观察是左删截。同样 这意味着我们也不知道T的实际发生时点。右删截的典型例子是关于初次性交 发生时间的调查。如果我们在1997年举行一次高校学生调查,询问他们第一次 性交的时间时,肯定有很多人还从未有过这种经历。那么,这些案例观察属于右 删截,因为我们知道T>C(C即调查时间,T>C代表事件发生于观察结束以 后)。 右删截在社会科学研究中极为普遍。实际上,我们还可以进而区分不同类型 的右删截。比如经常提到有第一类和第二类删截。上述例子就属于第一类删截, 即在调查时案例尚未经历所研究的事件。第二类删截的情况是指,在持续观察中 我们已经获得预定数量的案例经历了所研究的事件,观察就结束了。比如,我们 要研究敬老院中人口的死亡,并且研究设计要求观察要进行到全部住院老人的 50%死亡。对于这一特定研究设计(这种情况在社会科学中不太普遍),那些在 观察终止时尚且生存的案例就属于第二类删截。考克斯(Cox)和奥克斯 ( Oakes)认为第二类删截是“在工业寿命检测中经济实惠的一种有用技术”。 另外一种删截机制(右删截)可能发生于随机删截。当案例的删截时间是个 随机变量时,就会发生随机删截。其实,第一类删截就是随机删截的一种特殊情 况。许多人都知道,在美国著名的几所大学的社会学系中攻读博士学位的学生中 有许多人在中途就退出了。随机删截意味着在某一时间t被删截的一个案例并 不提供这一案例取得博士学位时间的任何信息。要是研究生退出博士学位项目 人们总是认为他们没有能力完成博土学位学习,我们就不能认为这些学生是随机 ①参见Cox, David r. and David Oakes.1984. Analysis of Survival Data. New Yor rk: Cha man and Hall, p5 389
删截。① 关于右删截就介绍这些,下面我们讨论左删截。左删截的一个典型例子是关 于艾滋病的研究。我们假设一个研究项目要研究艾滋病人的死亡时间,然而一些 艾滋病人在研究开始以前就死亡了,我们只知道他们已经死亡了,但并不知道他 们什么时候死亡的。这就是左删截的一种情况。又比如在一个关于新婚妇女生育 率的研究中,我们知道某个妇女在研究开始以前就生了孩子,但又不知道具体是 什么时候生的。另外,还有可能发生部分左删截观察( partially left censored ob servation)的问题。比方说,在对新婚妇女怀孕情况的研究中,我们得知一个妇 女在研究阶段中怀了孕,但不知道她什么时候结的婚(即风险期开始时点)。这 就是说,我们知道一个案例有事件发生但不知道这个案例从什么时候开始经历此 事件(怀孕)的风险。这种情况也被称为“未知开端的间隔( uninitialized inter val)”g 另一个问题是如何把握各种不同类型的删截情况。读者现在应该了解删截的 复杂性了。但是从实际研究的角度来看,我们在社会科学分析中最经常遇到的是 右删截,并且大多数还是第一类右删截,这些情况可以很容易地采用统计估计来 解决。例如,考虑到右删截经常意味着在统计估计(最大似然估计或部分似然估 计)中,我们需要弄清删截的观察案例对于似然函数有什么作用。这通常在右删 截的情况下能徹到。但是,在左删截发生的情况下,我们通常需要制定某些假设 条件。处理左删截的大多数方法都有一些局限性,并且常常不是理想的解决方 法。有时,没有一个好软件能完成估计,所以研究人员还得自己编写估计程序。 对于初学者来说,了解右删截就可以解决大多数社会科学的实际问题了。特别是 当读者能够学会像SPSS、SAS和 STATA这样的流行于社会科学研究的计算机 软件中的一种时,所要做的就是在模型中定义在哪些变量上用哪些数值表示删截 案例。 4.一些统计关系 为了对不同风险模型的统计讨论作准备,我们先要以统计形式介绍一些重要 函数,并揭示它们之间的关系。这些函数包括:风险函数( hazard function)、生 D JA Allison, Paul. not dated(n d). Lecture Notes on Event History Analysis. Deparment of Sociology, University of Pe )tJE Allison, Paul. not dated(n d). Lecture Notes on Event History Analysis. Deparment of Sociology, University of pennsylvania 390
存函数( survival function)、概率密度函数( probability density function)、分布函 数( distribution function)。了解并熟悉这些函数可以帮助我们理解本章介绍的事 件史分析,并有利于将来更深入的学习。 具有概率论基础知识的大部分读者熟悉密度函数(用f(t)表示)和分布函数 (用F(t)表示)。我们将f(t)解释为在时点t上的概率密度,将F(t)解释为在时 点t之前事件发生的概率。我们现在介绍风险函数和生存函数。 T是用来表示事件发生时间的随机变量。然后我们定义 P(t,s)=Pr(t<T<sT≥t) 为当事件尚未发生时其将于时点t和时点s之间发生的概率 风险函数(或风险率)定义为,当s趋近于t时P(t,s)/(s-t)的商的极 限,即 h(t)=lim P(t, s 生存函数S(t)定义为事件发生于时点t以后的概率。 我们可以从数学上说明这四个概念——即风险函数、生存函数、概率密度函 数和分布函数(又称累积分布函数,即 cumulative distribution function)是等价 的 这就是说,要是我们知道这四个函数中的一个,就可以推导出其他所有函 数。然而所有的事件史分析的统计模型都倾向于使用风险函数h(t)而不用其他 的函数,这是因为其使用上的方便和易于解释。一旦我们开始介绍各种统计模 型,读者就会明白这一点。 下面几个公式十分有用。根据概率论,我们有: F(t)=Pr(Tst)= f(y)dy=[f(y)dy 注意,在事件史分析模型中,随机变量T只能取非负值。此外,如果 F(t)可求导,那么F(t)的一阶导数就等于f(t)。而且根据定义我们有: S(t)=1-F(t),h(t) f(t)f(t) 按照概率论,后一个公式就是一个事件在时间t之前不发生而在时间t发生 的条件概率。其他公式的解释不太明显,但它们都可以进行数学推导 f(t)=h(t)exp,-fh(y)dy], F(t)=1-exp[-n(y)dy 让我们用一个简单的例子来熟悉一下上面的有关公式。假设随机变量T有 指数分布,我们就可以知道 391
其中b是一常数。那么,累积分布函数F(t)为 F(t)=If(y)dy=expl 由此,我们还能推导S(t): S(t)=1-F(t)=exp\、b 最后,我们还可以推导出风险函数h(t): f(o b b 通过推导我们得以知道,指数分布的风险函数在所有时间t上是一个常数。 后面,我们还会涉及这种分布。 5.估计生存函数的 Kaplan-Meyer方法 在操作分析时,最好先检查一下根据实际数据计算的分布形态,然后再决定 拟合哪种理论分布类型。要是我们的目的是为数据寻找一种模型,事先检查生存 分布及其图形可以给我们一些选择分布模型的根据。 Kaplan-Meyer方法经常被用来估计并画出估计的生存函数。这是一种非参 数方法,就是说它用不着对理论分布作出任何假设。用t1<12<…<tn代表n 个案例的生存时间,然后用 Kaplan-meyer法对其生存函数s(t)的估计如下 s(t)=∏ r≤tn1-r+1 其中r从所有正整数中取那些t≤t的且t,为无删截的。当所有观察都无删 截,r的值就是连续的整数列,否则r的取值就不是连续的。 用一个简单例子①来说明如何应用这一方法。我们有10名肿瘤患者的康复 情况的资料。有6名患者在不同时间上(分别为3、6.5、6.5、10、12、15个 月)旧病复发;1名患者在8.4个月以后失去了联系;还有3名患者在研究结束 时仍处于康复之中(其康复期已经分别为4、5.7和10个月)。用 Kaplan-Meyer 方法估计生存函数的方法如下面计算表(表12-1)所示。 ①参见Mlr,R.G.1981. Survival Analysis. New York, Wiley 392
下面介绍以SPSs软件取得生存函数的 Kaplan- Meyer估计的操作步骤。实际 上,这个关于康复期的例子中,有两个变量。第一个便是每个案例的康复期,可 以定义其变量名为 REMISSN。另一个变量是标志案例康复期是否有删截,给定 变量名为 EVENT。疾病复发是要研究的事件,于是尚在康复期中的案例和失去 联系的案例都属于删截案例,即计算表中打上“+”号的案例应赋值0,表示事 件没有发生,而没有 号的案例应赋值1,表示疾病复发的。 表12-1 Kaplan-Meyer生存函数估计计算表 康复期序号 r(n-r)/(n-r+1) 生存比例 9/10 9/10=.900 4+ 6/7 (910)×(67)=.771 6.5 (9/10)×(67)x(5/6)=.643 8.4 6 3/4 (9/10)×(67)×(5/6)×(3/4)=.482 10.0 12.0 1/2 (9/10)×(67)×(56)×(34)×(1/2)=,241 0 0 表中康复期数据中注“+”号者为删截的观察案例 采用0.643作为保守性的估计 主:夲书所附磁盘提供这套数据的 SPSS系统数据文件,文件名为T121.SMV 在读入数据之后,激活“ Statistics”并选择¨ Survival'”。在“ Surviva!”功能 部分,再继续选择“ Kaplan- Mever"',然后我们必须做两项设定:“Time”(时间) 和¨ Status¨(状况)。时间指至事仵发生时的持续期间、或至删截时的期间.对 于上例来说,时间即定义为康复期 REMISSN。状况是关于删截案例的另一种表 达形式。虚拟变量F\ENT标志是否旧病复发,将变量 EVENT用光标拉至 Status”方框之下,并点击 Define event键打开对话窗口,在 Single value-栏 中指定事件发生(即未删截)的编码为1。输出生存表和生存时间平均值、中位 数是SPSS的默认状态,如需要输出生存函数图,还需点击窗口右下角的 Options 键,打开输出选项窗口,并在 Plots一栏选择 Survival然后,点击 Continue返 393
回。现在,进行 Kaplan-Meyer估计的准备就做好了,只要点击“OK”命令,估 计过程就开始了。 SPSS软件的默认状态将产生生存比例表,它能表示在每一时点的生存比例 并能输出平均生存时间和中位生存时间,本例的这两个统计值分别为10.1和 10.0。要是观察案例数很少(如少于100),产生生存比例表就没有问题。但是 如果有大量的观察案例,一般不再计算生存表(将 Options窗口中 Statistics栏目 中的 Survival table一项的“×”取消),只输出 Kaplan-Meyer法估计的生存时 间平均值和生存函数图。因为其生存表的计算相当繁琐,其结果也将长得难以把 握 下面是SPSS输出的本例生存比例计算表(见表12-2)。随后的图12-1是 使用SPSS软件画出的 Kaplan- Meyer法生存函数估计的图形。图中的线即生存曲 线。并请注意,其估计的生存时间中位数大约为10个月。 表12—2 SPSS输出的生存比例计算表 Survival analysis for REMISSN Cumulative Number Ti Status urvival Error Events 3.0 yes 9000 0949 1 5.7 345 6.5 1679 8.4 6789 10,0 4821 1877 9876543210 12,0 yes 2411 1946 15.0 0000 0000 Number of Cases: 10 Censored (40.00%) Events:6 Survival Time Standard Error 95% Confidence Interval Mean 10.1 13.1) Median 10.0 2.6 (5.0,15.0) 394