而设置的命令。换句话说,当时间信息被编排为许多变量时,比较好的策略是先 对数据进行转置,然后将变量作为记录来进行处理。在一些为了满足特别需要的 处理工作时,还要使用 AGGREGATE(意为汇总)和 TABLE(意为列表) MATCH FILES(意为匹配文件)等命令,使文件与表格有针对性地做匹配合并 或“分散”( disaggregating)。在后面的例子中,我们将示范所有这些命令的应 用 二、明确时间信息数据的处理 1.例1:对第一·类数据(需计算各风险期长度)的改造 表13-5 例1输入数据 c01134354753:275430771017922 002225142773579410 0032402317941 004245232752176313 005123143781231791031791231 主:本书所附磁盘提供此ASl数据.文件名为EX1.D 例1数据结构及所需完成的改造工作: *此数据基本结构为一个案例条记录前六个变量是不随时间变化的,用来 表示被调查者在调查时的基本情况,包括:ID、SEX、A(E、RACE、EIU 丶 UMSPELL(分别为调查序号、性别、年龄、种族、受教育程度、某一事件 的记录数目):后面是随时间而变的变量,分别用来表示事件发生的年、月 日。每一个被调查者被给予一个惟一性的调查序号。所以每一序号代表着 个人。从本例各被调查者的数据可以看出,他们的随时间变化的变量的数目 有所不同。比如,第一个样本有四个事件开始时间,即75-3-12,754.30,7 10)-1和79-2-2 我们的工作是要将此以样本案例为分析单位口径的原始数据改造为以每一次 事件为分析单位口径的工作数据。在输出中,所有不随时间变化的变量都要 附加到每一个工作数据的案例中去。1980年1月1日,即调查日期,将作为 截点。这样,最后一个日期至截点之间的时间间隔实际上是一个删截工作案 例(删截的定义请参见第十二章)。在每一个工作案例中还要加上一个新的变 量 EVENT(意为事件,同上章示例中的变量EⅤENT)来标志本工作案例中 事件是否发生。 428
【请特别注意:在后面所有的程序命令中的行号仅服务于注释的需要,在买 际指令中不能放入! 表13-6 改造例1原始数据的程序命令 1 INPUT PROGRAM 3 DATA LIST FILE='C:\EHA SPSS\EX1. DAT 4 /ID 1-3 SEX 5 AGE 7-8 RACE 10 EDU 12 NUMSPELL 14 #X1TO#X24(1x,8(3F3.0)) LEAVE工 D TO NUMSPELI 9 VECTOR V=#X1 TO #X24 10 LOOP #I-1 To 24 BY 3 11 COMPUTE DI=YRMODA(V(#I),V(#I+1),V(#I+2)) 12 COMPUTE D2=YRMODA(V(#I+3),V(#I+4),V(#I+5)) 13 COMPUTE DURA=D2-D1 4 END CASE 5 END LOOP IF MISSING(V(#I+3) 17ENDI、 PUT PROGRAM 19 COMPUTE EVENT=l 20 IF (SYSMIS(DURA)) EVENT=O 21 IF (SYSMIS(DURA))DURA=YRMODA(80,1,1)-D1 22 LIST VAR=ID TO NUMSPELL DURA EVENT 24 SAVE OUTF-LE='C: \EHA SPSS \EXI. SAV 注:本书所跗磁盘提供此SS程序.文件名为EX1!.SS 例1程序命令注释 第Ⅰ行命令 INPUT PROGRAM.标志开始输入数据的定义和改造数据的命 令这一命令用在这里是因为我们要从所读的不定长的每条记录中建立一个 或多个工作数据文件的案例 x第3行 DATA IⅠST命令指示从原始数据文件中读取数据记录,并提供原始文 件名称及所在位置(磁盘驱动器和子目录) ←第↓行继续上述命令,说明毎条原始记录中前14位数分别按固定长度格式读 入6个变量,其中第14位是变量 NUMSPELL(意为发生次数) 第5行仍是上述命令的延续部分,表示后面将定义24个同样格式的SPSS内 部使用的暂用变量( scratch variables),它们在读入时是每3个变量一组(分 别用来表示年、月、日)、每个变量为3位数字(即3F3.0)。那么24个同格 式变量实际可以恰好包含8个日期。24这个数量是事先决定的,它必须是3
的倍数(因为3个一组同格式地读入),而且这个倍数还必须大于或等于事 件发生次数,即本例中变量 NUMSPELL在样本中的最大值。在变量之前加# 符号表示此变量是运行中的暂用变量,当运行结束后自行消失。定义这些变 量为暂用变量的目的是为了运行结果更加简洁、清楚。 第7行的命令LEAⅤE是指示将原记录从ID至 NUMSPELL的所有固定变量 的值赋予要产生的新工作数据的案例。换句话说,这一命令是强制固定变量 附加到每个新建案例中去,即表示事件每次发生的新案例都保留原始记录中 的背景资料数据。 x第9行命令 VECTOR定义向量v由24个同组格式的变量值构成。 第10行命令LOOP制定循环语句,从1至24以步长为3执行循环的工作 即逢1、4、7、10、13、16、19、22时完成同样的工作。这一语句实际上是 与第5行中定义的同组格式是一致的,即前面定义三个变量一组地读入,这 里定义三个变量一组地完成数据转换。 第11行命令( OMPUTE要求计算前一个日期Dl的值,通过日期函数YR MODA将日期换算为天数(即该日期距离格里历启用的第一天1582年10月 14日之间的天数)。 第12行要求计算后一个日期D2的值。注意此处所用的数处于向量V中的位 置都分别比第11行中所用数在向量中的位置差3位 *第13行通过后一个日期值减去前一个日期值得到两次事件发生之间的间隔天 κ第14行命令 END CASE是根据每个输入记录(即样本案例)制作多个事件 发生的工作数据案例时,用来表示一个新案例结束。 第15行命令 END LOOP IF MISSING使在循环中分组读入向量值时如遇到缺 失值即结束该循环操作。这是为了在原输入记录中的事件变量已转换完毕时 停止计算口期之间的间隔。这时对应每个ID序号的新案例数应当与其NUM SPELL的值相同。 第17行命令 END INPUT PROGRAM对应前面第一行 INPUT PROGRAM命 令,表示该输入程序结束。 第19行命令( OMPUTE定义每个案例给新变量 EVENT赋值1。1表示未删 截的状况。 第20行命令指示如果当变量DURA为缺失值时要将新案例的变量 EVENT赋 值0,没有计算间隔的新案例是因为没有再发生新的事件,因此这个新案例是 删截案例。用EⅤENT=0表示被删截状况 430
¥第21行命令在不能计算两次事件之间间隔的情况下将DURA定义为前一次 事件发生日期与调查日期(1980年1月1日)之间的间隔。注意这一间隔表 示在观察期限中事件没有发生,模型的参数估计将用到这一信息。 第22行命令LIST要求列出所有新工作案例,并通过指定变量名决定了输出 新案例的格式。输出变量有从原输入记录中保留下来的I至 NUMSPELL六 个固定变量,还有在数据变换中新计算的变量DURA和 EVENT。当这一命 令被执行后,SPSS数据表中会显示新数据。同时,LIST命令使SPSS在 OUTPUT窗口列出输出工作数据,以便我们检查数据处理是否正确。 第24行SAVE命令储存刚刚获得的资料于一个新文件中。这类似于通常我们 选择SPSS主菜单中FLE栏目中的 SAVE AS命令并给予一个新文件名,另 存为一个SPSs的系统数据文件,以方便以后再次使用。 表13-7 例1输出数据 ID SEX AGE RACE EDU NUMSPELL DURA EVENT 34 49.00 1.00 3333 885 34455 111122222 222 55554433344 44442212233 489.00 333.00 766.00 266.00 275.00 406.00 1389.00 2.例2:对第一类数据(各风险期长度已知)的改造 例2数据结构及所需完成的改造工作: 在例1中,随时间变化的变量的输入数据是以年、月、日形式编排的。要 是事件间隔长度事先已经计算好了,直接作为输入数据,那么进行数据转 换的命令就会简单得多。这时我们需要用到命令 REPEATING DATA。 在下面的例子中,我们假设已经有了一个包括每段间隔长度以及该间隔中 是否发生事件虛拟变量的原始数据文件。比如,样本中第一个案例的第 段间隔是以事件发生作为终点的。那么标志事件是否发生的虚拟变量 EVENT=1,且第一段间隔长度为49天。其第二段间隔长度是885天
也是因为事件发生,所以 EVENT=1。第三段间隔持续489天,且 EVENT=1。第四段间隔共持续了333天,但是不是以事件发生为终结 的,所以这一持续期是删截的,于是EⅤENT=0。命令 REPEATING DATA可以反复完成与例1中同样的任务,但是只需要少数几条命令就能 奏效。一般,在各条记录不等长的输入数据中应该有一个表明每条记录有 多少段持续期的变量。本例中每条记录的第14列就是这样一个变量,我 们将其变量名定为 NUMSPELL。比如第一个案例中共有四段持续期,这 在 NUMSPELL值上有所显示。 表13-8 例2的输入数据 c01134354491885148913330 00222514276612660 003242312750 004245232406113890 005123143304161 注:本书所附磁盘提供此ASC数据,文件名为EN2tAI 表1-9 例2的程序命令 1 INPUT PROGRAM 3 DATA LIST FILE='C: \EHA SPSS\EX2. DAT /ID 1-3 SEX 5 AGE 7-8 RACE 10 EDU 12 NUMSPELL 14 5 REPEATING DATA STARTS=16 /OCCURS=NUMSPELL /LENGTH=7 7 /DATA=DURA 1-4 EVENT 6 9 END INPUT PROGRAM 10 11 LIST VAR=ALL 注:本书所附磁盘提供此SIS程序,文件名为EX2.SFS 例2的程序命令注释 第1行,输入程序仍然以命令 INPUT PR(XRAM开始。 兴第3行命令定义输入文件的所在位置及文件名称。注意第3行中的命令未结 束,因此没有句号。 第4行命令是第3行命令的继续,定义了6个不随时间变化的变量,测量该 案例在调查时的基本情况。 432