学系列教韦 第十三章 使用SPSS软件对事件史 原始数据进行预处理 在第十二章中,我们对事件史分析的基本概念和模型作了介绍。 但在事件史分析的实际操作中,研究人员常常发现数据预处理是一项很麻烦 的工作。在应用其他分析方法时,输入的数据资料都往往已经具备相当标准化的 格式,无需再进行处理。与此相比,应用事件史分析的实际数据格式却往往因不 同的调查、不同的专题而有数据格式方面的很大差别。当然,研究人员可以使用 些编程语言如C、 FORTRAN、 PASCAL等程序将原始数据加工为他们所需要 的格式,但是这项工作往往需要研究人员具有这些编程语言的专门知识,有时甚 至需要专业程序员才能完成这项工作。所以,我们经常遇到这种情况,应用事件 史分析方法的研究人员并不太了解编程工作,他们希望能用比较熟悉的统计软件 的命令将实际拥有的数据改造为一定的格式。 本章的目的就是介绍如何应用SPss统计软件包中的编程语言来完成十分复 杂的数据格式加工的工作。我们将主要讨论在事件史分析中经常遇到的两个方面 的数据处理问题:一个是如何计算生存持续期;另一个是如何将调查数据由以案 例为单位的格式改变为以一定时间为单位的格式。本章将用五个例子来示范运用 sPSs编程进行数据处理的技术。理解和掌握这五个例子将会十分有助于那些准 备应用SPSS软件编程来进行数据处理的研究人员。同时,这些例子对于那些熟
识SAs和BM的用户也会有所启发 下面,我们的讨论将从不同输入数据的类型及相应的编程语言开始 输人数据类型 事件史数据有时也称为生命时间( lifetime)、生存时间( survival time)或失败时 间( failure time)。总的来说,它们都是关于某一事件是否发生和何时发生的信息。 如果这一事件在研究者结束观察时还没有发生,我们就说这一案例被删截了(cm red)。几乎所有的事件史数据都是与时间相连的。当事件的自变量随时间过程 而发生变化,我们称其为随时间变化( time-varying)或“动态变量”与此相对, 在常规横贯研究中使用的大多数据在不同时间上是固定不变的(tin-fixe),或称 之为¨静态变量¨”它们或者是个人或葉体在某一时点上的静态状况、或者是在时 间过程中固定不变的情况。纵贯数据可以取自不同的来源但是固定案例的追踪 调查和时点调查屮询问历史回顾问题是较为常见的纵贯数据来源。 随时间变化的信息可以按两种形式记录于资料之中,它们或者是按¨记录¨ ( record)进行排列(在资料中以行的形式出现),或者是按“变量”( variable) 进行排列(在资料中以列的形式岀现):棖据硏究设计的需要,每个案例的时间 (或变量)的记录数量既可以是相等的,也叮以是不相等的。我们可用下亩一些 例子来说明输入数据在格式类型方面的不同之处。 1.用变量编排时间信息,时间变量的个数随案例而变化 表13-1数据来自生育率调查,事件定义为仕育。 表13-1 固定变量 随时间变化的变量 A(正FDUC(EB 每个孩子的出生H 42 651201 680l0 70020)9 )02 600 790303 820530) 850416 注:I为案例编码;N(正为在调查时的年龄:EDLC为教育程度;这些均为背景资料变量:后面是 每个孩子的出生日期.每组数据共6位数,每2位数依次分别表示年、月、日由各案例所生 ∫女数量不同,因此其数据长度是不同的。如第·个案例生育过次,第一次在1%65年12月1 第二次在968年1月1.第三次在190年2月9日。而第¨个案例只生育过·个孩子 出生目期为1985年3月12日 424
2.用个数相等的时间变量编排时间信息并以编码标志事件发生 表13—2数据中的事件定义为工作单位变换 表13-2 固定变量 随时间变化的变量 ID AGE SEX EDU M1 M2 M3 M. M58M59M60 0 0 0 6003823 0 0 :每一个调査对象在五年期间按月进行是否发生变换Ⅰ作单位的事件记录。用6个虚拟编码变量 (M)来表示事件在每个月当中是否发生,如发生则赋值1,没有发生则赋值O 3.用记录编排的时间信息、时间记录不等量 表13--3数据中的事件定义为安置儿童的居所变化 l3-3 固定变量 随时间变化的变量 l1)SEYA( F. RACE… FUNDS 850I0l 002 881023 02 890204 02 890)905 880305 6(0 注:N正—孩∫第次送往亲戚家或幼儿园时的年龄:D)AIE—送往居所的开始臼期 LIVARK—居住安排;FU、I一居住安排的资金来源 4.用记录编排时间信息、等量的时间变量 表13-4数据中的事件定义为生理试验观察
13-4 固定变量 随时间变化的变量 B TREAT SYMPTOM 444 001 3332 232 2222 3 002 002 f00 600 3333 23223332323 600 2 注:在四个时点对对象进行观察:Bl、B2、B3等是一套关于背景情况的变量;TKEI是对于试验处 置的测量(比如用药量); SYMPTOM是疾病症状的测量 注意,表13—2和表13—4数据中,当时间变量(或记录数量)相等时,数 据中变量(或记录)的位置通常是有意义的,它们隐含地注明了某一个特殊的时 点。这与表13—-1和表13-3数据中不等量的变量或记录编排是完全不同的。当 时间信息的数量在各个案例中不同时,时间通常明确地通过事件发生的年、月、 日所标注。在后面的例子中,我们会看到对这两种类型资料的SPSS编程命令也 将不同。因此,我们在本章中将前一种数据格式称为“隐含的时间信息”,而对 后一种数据格式称为“明确的时间信息”。 另外,我们对于“案例”( cases)的概念也需要进一步加以区分和明确。在 诸如线性回归、方差分析等静态的常规分析方法中,调查样本的案例自然与分析 单位( Units of Analysis)一致。然而对于事件史分析而言,由于时间的引入, 参见巴比( Earl babbie)所著 The Practice of Social Research, Seventh edition Wadsworth Publishing Company,1995:巴比在该书中指出,尽管在社会科学研究中个人常常 是分析单位,但组群、组织、社会制品( social artifacts)如图书、歌曲、科研发现也可以是分 析单位,并且他指出结婚、离婚、事故、劫机等事件属于社会制品的范围
分析单位不再像上述常规方法那样简单地等同于案例。因此,调查的样本规模与 要进行分析的数据规模之间存在着区别。很多事件史分析都不是在个人案例为分 析单位的水平上进行的,而是在一种时间单位如持续期(spel)的基础上进行 的。于是,当一个样本案例多次发生某一事件时就包含多个持续期的信息。比 如,例1中的第一个案例生育过三个孩子,就意味着她将提供多个需要分析的持 续期。在离散时间模型中,分析数据的案例是由风险集及其时间间隔两者所共同 决定的,它的分析单位可以是人年或人月( person-year or person- month)。很明 显,在事件史分析中,分析案例的总量远远大于样本规模。正因为如此,我们将 在本章中特别区分这两个概念。读者在后面的例子中将会看到,将数据从样本案 例为口径的格式转换为一套新的以时间单位为口径的工作数据( working data set),往往是一项必不可少而又难度颇大的工作。 在处理事件史数据时的一个关键问题是在隐含时间或明确时间信息的基础上 计算出每个持续期的时间长度。在SPSS、SAS和BMDP软件中拟合风险模型时 都需要两个方面的信息来作为因变量的输入,即持续期的长度和一个用来标志删 截状况的虚拟变量 SPSS软件本身提供了强大的数据转换功能.它既可以完成将以样本案例为 口径的数据改变为以持续期为口径的工作数据,又可以完成计算持续期长度的工 作,并且SPSS的编程工作相对来说比较简单高效。 应用srsS软件处理事件史数据时,仅仅使用内部输入程序中的DATA LIST命令或其他读入或混合系统数据文件的命令是远远不够的。我们常常还需 要使用 INPUT PR(XRAM命令程序,并在其中使用DOIF、LXP、 VECTOR END CASE或 REPEATING DATA等命令来完成资料的输入。当我们需要在读 入新的案例时仍然保留某些变量的前一个案例相应值的时候,命令 LEAVE极为 有用。命令 DO REPEAT可以使很多变量完成一些同样的基本转换。对于明确 时间信息,使用 YRMODA函数(即年月日函数,计算某个日期距1582年10月 14日所经历的天数)可直接计算出各个日期之间的时间间隔长度。然而,对于 隐含的时间信息,可以应用命令(OUNT(意为计数)加上函数MAX与MIN (即最大值与最小值)于系统变量 S CASENUM(即输入数据时系统自动生成的 内部变量,此变量可标志案例的序号,但增加或删除案例后,此系统变量会相应 发生变化),来计算持续期长度。总的来说,当时间信息编排为记录时,数据改 造比较容易。对于这种类型的数据,常常使用LAG函数(lag意为时差)加上 DOIF语句来强制对一个样本案例进行改造。FLIP命令(意为转置)可以用来 轻易地对行和列的数据进行转置,这样我们就可以应用那些本来是用于改造记录