第十一章生存分析 在医学研究中有时候需要对病人的生存情况加以评价,例如:肺癌病人术后生存情况或 者是两种不同方案对肺癌病人治疗后的比较。从理论上说,在完全收集到所有病人因肺癌死 亡的确切时间后,可以用术后生存时间这个指标来描述病人的生存状况,并对不同的组别间 加以比较。但在实际随访过程中,由于失访、意外死亡等原因,部分研究对象不能随访到确 切的存活时间。所以,无法以生存时间直接进行统计分析,而需要采取一些特殊的统计方法, 接下来将对此进行详细介绍。 第一节基本概念 1.1生存时间、截尾 例11.1:某医师从2002年1月1日起对6名肺癌患者进行跟踪观察,记录其结局,随 访记录见表11.1 表1116例肺癌患者随访记录 研究号姓名术后开始随访时间终止随访时间 结局 生存天数 (2) (4) 1赵×× 00-01-16 00-09-01 失去联系 2钱 00-01-26 01-03-18局部复发死亡417 2345 01-12-25 车祸死亡 李× 00-02-19 02-10-01 研究终止 王× 00-03-07 00-11-11局部复发死亡249 00-03-20 02-01-24 远处转移死亡675 生存时间( survival time)是指从某起点事件( start point event)开始到被观测对象 出现终点事件( endpoint event)所经历的时间。如从疾病“确诊”到“死亡”;从“治疗 结束”到“复发”;某电子设备从“开始使用”到“出现故障”,等。由此可见,此处的“生 存”是一个广义的概念。根据研究目的不同,可以有不同的“起点时间”和“终点时间”。 生存时间的单位可以用年,月,周,日,甚至时,分,秒等表示。上表中的(6)即为生存时 间,有2种类型 (1).完全数据( complete data):是指被观测对象从观察起点至出现终点事件所经历 的时间。在例11.1中,如果终点事件被设为死于肺癌,那么417、249、675为完全数据 (2).截尾数据( censored data):是指在出现终点事件前,被观测对象的观测过程终 止了。由于被观测对象所提供的信息是“不完全的”,只知道他们的生存时间超过了截尾时 间。例11.1中,229+、689+、955为截尾数据 起点事件( start point event):指研究者根据研究目的开始关心某一事件的起点,如 上面所说的“确诊”、“治疗结束”“开始使用”等等。 终点事件( endpoint event):指研究者根据研究目的所关心的某一事件,如上面所说 的“死亡”、“复发”、“出现故障”等等。需要注意一点,不同的研究目的有不同的终点事件, 如果研究的是肿瘤的局部复发情况,那么死于肿瘤远处转移只能算做截尾,而不是终点事件。 截尾( censor),又称终检、删失,主要有3种情况:①失访:指失去联系,如信访未回 信,上门不见人,电话采访不答理或搬迁未留新地址等原因;②退出:指退出研究,如因其 他非此次研究疾病死亡,临时改变治疗方案而中途退出研究;③终止:指研究时限已到而终 止观察 1.2死亡概率、生存概率
1 第十一章 生存分析 在医学研究中有时候需要对病人的生存情况加以评价,例如:肺癌病人术后生存情况或 者是两种不同方案对肺癌病人治疗后的比较。从理论上说,在完全收集到所有病人因肺癌死 亡的确切时间后,可以用术后生存时间这个指标来描述病人的生存状况,并对不同的组别间 加以比较。但在实际随访过程中,由于失访、意外死亡等原因,部分研究对象不能随访到确 切的存活时间。所以,无法以生存时间直接进行统计分析,而需要采取一些特殊的统计方法, 接下来将对此进行详细介绍。 第一节 基本概念 1.1 生存时间、截尾 例 11.1:某医师从 2002 年 1 月 1 日起对6名肺癌患者进行跟踪观察,记录其结局,随 访记录见表 11.1: 表 11.1 6 例肺癌患者随访记录 研究号 (1) 姓名 (2) 术后开始随访时间 (3) 终止随访时间 (4) 结局 (5) 生存天数 (6) 1 赵×× 00-01-16 00-09-01 失去联系 229+ 2 钱×× 00-01-26 01-03-18 局部复发死亡 417 3 孙×× 00-02-05 01-12-25 车祸死亡 689+ 4 李×× 00-02-19 02-10-01 研究终止 955+ 5 王×× 00-03-07 00-11-11 局部复发死亡 249 6 刘×× 00-03-20 02-01-24 远处转移死亡 675 生存时间(survival time)是指从某起点事件(start point event)开始到被观测对象 出现终点事件(endpoint event)所经历的时间。如从疾病“确诊”到“死亡”;从“治疗 结束”到“复发”;某电子设备从“开始使用”到“出现故障”,等。由此可见,此处的“生 存”是一个广义的概念。根据研究目的不同,可以有不同的“起点时间”和“终点时间”。 生存时间的单位可以用年,月,周,日,甚至时,分,秒等表示。上表中的(6)即为生存时 间,有 2 种类型: (1).完全数据(complete data):是指被观测对象从观察起点至出现终点事件所经历 的时间。在例 11.1 中,如果终点事件被设为死于肺癌,那么 417、249、675 为完全数据。 (2).截尾数据(censored data):是指在出现终点事件前,被观测对象的观测过程终 止了。由于被观测对象所提供的信息是“不完全的”,只知道他们的生存时间超过了截尾时 间。例 11.1 中,229+、689+、955+为截尾数据。 起点事件(start point event):指研究者根据研究目的开始关心某一事件的起点,如 上面所说的“确诊”、“治疗结束”、“开始使用”等等。 终点事件(endpoint event):指研究者根据研究目的所关心的某一事件,如上面所说 的“死亡”、“复发”、“出现故障”等等。需要注意一点,不同的研究目的有不同的终点事件, 如果研究的是肿瘤的局部复发情况,那么死于肿瘤远处转移只能算做截尾,而不是终点事件。 截尾(censor),又称终检、删失,主要有 3 种情况:①失访:指失去联系,如信访未回 信,上门不见人,电话采访不答理或搬迁未留新地址等原因;②退出:指退出研究,如因其 他非此次研究疾病死亡,临时改变治疗方案而中途退出研究;③终止:指研究时限已到而终 止观察。 1.2 死亡概率、生存概率
死亡概率( mortality probability):记为q,是指在某段时间开始时存活的个体在该 段时间内死亡的可能性大小。若无截尾数据,死亡概率的估计公式为: 某人群某时段总死亡例数 (11.1) 该人群同时段期初观察例数 生存概率( survival probability):记为p,是指在某段时间开始时存活的个体至该 时间结束时仍存活的可能性大小。生存概率的公式为 某人群活过某时段例数 (11.2) 该人群同时段期初观察例数 由于生存分析中常存在截尾值,假定失访等截尾事件在观察时段的各个时间点等机会发生 的,故分母改用校正观察例数 校正观察例数=期初观察数-截尾例数 1.3生存率及标准误、生存曲线 生存率( survival rate):用S(tk)表示,是指病人经历t个单位时间后仍存活的概率 若无截尾数据,则 S(tk)=P(T≥tk) 过了t时刻仍存活的例数 (11.3) 观察开始时的总例数 其中t为病人的存活时间,但如果资料中含有截尾数据,分母必须按时段进行校正,此公式 则不再适用,此时生存率的计算公式应为 S(t)=P(T≥tk)=P1P2…Pk (11.4) 其中p1、P2、…、P表示不同时间段的生存概率,可以看出,生存率是多个时段生存概 率的累积,故生存率又称为累积生存概率( cumulative probability of survival)。 生存率标准误的计算公式为 SE(S()=S)∑9 (11.5) i=l p, n 例11.2:某医院对100名恶性肿瘤术后病人进行随访所获得的资料如表11.2: 表11.2某恶性肿瘤100例术后随访资料 术后期初观期内死期内截校正期初死亡生存t+1年生存率 年数察例数亡例数尾例数例数概率概率生存率标准误 d c n=n0-c/2 g=d/n p=l-g S(t+1) SE(S(t+1)) (5) (7) 10 0 0.10000.90000.90000.0300 0.16670.83330.75000.0433 0.22540.77460.58100.0501 0.24490 0 0.0520 31.5 0.44440. 0. 0.0484 10.5 0.66670.33330.08120.0390 (1)为组段,(2)为各组段期初观察例数,(3)、(4)分别为各组段内的死于该恶性肿 瘤例数和截尾例数,(5)为校正期初例数,(6)、(7)分别为各组段的死亡概率和生存概率 计算公式分别为(6)=(3)/(5)、(7)=1-(6),(8)为t+1年生存率,(9)为t+1年生存率的 标准误
2 死亡概率(mortality probability):记为 q,是指在某段时间开始时存活的个体在该 段时间内死亡的可能性大小。若无截尾数据,死亡概率的估计公式为: 该人群同时段期初观察例数 某人群某时段总死亡例数 q = (11.1) 生存概率(survival probability):记为 p,是指在某段时间开始时存活的个体至该 时间结束时仍存活的可能性大小。生存概率的公式为: 该人群同时段期初观察例数 某人群活过某时段例数 p = 1− q = (11.2) 由于生存分析中常存在截尾值,假定失访等截尾事件在观察时段的各个时间点等机会发生 的,故分母改用校正观察例数 校正观察例数=期初观察数 截尾例数 2 1 − 1.3 生存率及标准误、生存曲线 生存率(survival rate):用 S(tk)表示,是指病人经历 tk 个单位时间后仍存活的概率。 若无截尾数据,则 观察开始时的总例数 过了 k时刻仍存活的例数 k k t S(t ) = P(T t ) = (11.3) 其中 t 为病人的存活时间,但如果资料中含有截尾数据,分母必须按时段进行校正,此公式 则不再适用,此时生存率的计算公式应为 k k p p pk S(t ) = P(T t ) = 1 2 (11.4) 其中 1 p 、 2 p 、…、 k p 表示不同时间段的生存概率,可以看出,生存率是多个时段生存概 率的累积,故生存率又称为累积生存概率(cumulative probability of survival)。 生存率标准误的计算公式为 = = k i i i i k k p n q SE S t S t 1 ( ( )) ( ) (11.5) 例 11.2:某医院对 100 名恶性肿瘤术后病人进行随访所获得的资料如表 11.2: 表 11.2 某恶性肿瘤 100 例术后随访资料 术后 年数 t~ (1) 期初观 察例数 n0 (2) 期内死 亡例数 d (3) 期内截 尾例数 c (4) 校正期初 例数 nc=n0-c/2 (5) 死亡 概率 q=d/n (6) 生存 概率 p=1-q (7) t+1 年 生存率 S(t+1) (8) 生存率 标准误 SE(S(t+1)) (9) 0~ 100 10 0 100 0.1000 0.9000 0.9000 0.0300 1~ 90 15 0 90 0.1667 0.8333 0.7500 0.0433 2~ 75 16 8 71 0.2254 0.7746 0.5810 0.0501 3~ 51 12 4 49 0.2449 0.7551 0.4387 0.0520 4~ 35 14 7 31.5 0.4444 0.5556 0.2437 0.0484 5~ 14 7 7 10.5 0.6667 0.3333 0.0812 0.0390 (1)为组段,(2)为各组段期初观察例数,(3)、(4)分别为各组段内的死于该恶性肿 瘤例数和截尾例数,(5)为校正期初例数,(6)、(7)分别为各组段的死亡概率和生存概率, 计算公式分别为(6)=(3)/(5)、(7)=1-(6),(8)为 t+1 年生存率,(9)为 t+1 年生存率的 标准误
在本例中,q1=10/100,p=1-q=90/100,q2=15/90,p2=1-q2=75/90。 由式(11.4)求得2年生存率为S(2)=pp2=(90/100)×(75/90)=75/100=0.75 由式(11.3)求得2年生存率为S(2)=(100-10-15)/100=75/100=0.75 两式求得结果相同,但在继续计算S(3)、S(4)…时,由于式(11.3)不能对截尾数据 进行处理,故不再适用,只能以(11.4)进行计算 生存曲线( survival curve):以时间为横轴,生存率为纵轴,将各个时点的生存率连 接在一起的曲线图。 1.4中位生存期 中位生存期( Median survival time):又称为半数生存期,即当累积生存率为0.5时所 对应的生存时间,表示有且只有50%的个体可以活过这个时间。要注意中位生存期通常不等 于生存时间的中位数(除非在这个时间点之前没有删失值存在)。 第二节生存曲线估计 对于生存曲线的估计,我们介绍常用的2种方法: 1. Kaplan- meter法,又称乘积极限法( Product- Limit method,简称PL法),由 Kaplan-Meier在1958年提出,适用于样本量较小,难以将生存时间按组段划分,此时是利 用t时刻之前各时点上生存概率的乘积来估计在时刻t的生存率,不需要对被估计的资料 分布作任何假设。 例11.3:一组病人的生存时间(日)如下,用 Kaplan- Meier法估计其生存曲线(+代 表截尾)。 5,6+ 为便于说明,将计算过程和结果列在表11.3,其步骤为: (1).将所有生存时间按从小到大排列(t),包括完全和截尾生存时间。 (2).列出各期初暴露病例数(n),它是指在t时刻前仍存活的病例数。 (3).将各期内死亡例数(d)和截尾例数(c)分别写在第(3)、(4)列。 (4).计算各期的死亡概率q,q=d/n,截尾数不参加计算,结果见第(5)列。例如生存时 间为5天时,q=2/9=0.2222 (5).计算各期的生存概率p,p=1-q,例如生存时间为5天时,p=1-0.222=0.7778,计算 结果见第(6)列 (6).计算各t时刻的生存率S(t)。计算t时刻生存率时可以用小于和等于t时刻的各时 点生存概率的乘积得到,计算结果见第(7)列 表11.3 Kaplan- Meier法估计生存率计算表 存活时期初暴露期内死期内截死I 生存 生存 生存率 间(天)病例数亡例数尾例数概率 概率 标准误 g-d/n (S(t)) (1)(2)(3)(4)⑤5)(6)(7)(8) 10 0 0.10000.90000.90000.0949 9 0.22220.77780.70000.1449 0.00001.00000.70000.1449 0.83330.58330.1610 16 0 1.00000.58330.1610 0.25000.75000.43750.1747 0.33330.66670.29170.1 0.0000 1.00000.29170
3 在本例中,q1=10/100,p1=1-q1=90/100,q2=15/90,p2=1-q2=75/90。 由式(11.4)求得 2 年生存率为 S(2)= p1p2=(90/100)×(75/90) =75/100=0.75 由式(11.3)求得 2 年生存率为 S(2)=(100-10-15)/100=75/100=0.75 两式求得结果相同,但在继续计算 S(3)、S(4)…时,由于式(11.3)不能对截尾数据 进行处理,故不再适用,只能以(11.4)进行计算。 生存曲线(survival curve):以时间为横轴,生存率为纵轴,将各个时点的生存率连 接在一起的曲线图。 1.4 中位生存期 中位生存期(Median Survival Time):又称为半数生存期,即当累积生存率为 0.5 时所 对应的生存时间,表示有且只有 50%的个体可以活过这个时间。要注意中位生存期通常不等 于生存时间的中位数(除非在这个时间点之前没有删失值存在)。 第二节 生存曲线估计 对于生存曲线的估计,我们介绍常用的 2 种方法: 1.Kaplan-meier 法,又称乘积极限法(Product-Limit Method,简称 PL 法),由 Kaplan-Meier 在 1958 年提出,适用于样本量较小,难以将生存时间按组段划分,此时是利 用 tk 时刻之前各时点上生存概率的乘积来估计在时刻 tk 的生存率,不需要对被估计的资料 分布作任何假设。 例 11.3:一组病人的生存时间(日)如下,用 Kaplan-Meier 法估计其生存曲线(+代 表截尾)。 3, 5, 5, 6+, 8, 16+, 22, 30, 47+, 71 为便于说明,将计算过程和结果列在表 11.3,其步骤为: (1).将所有生存时间按从小到大排列(t),包括完全和截尾生存时间。 (2).列出各期初暴露病例数(n),它是指在 t 时刻前仍存活的病例数。 (3).将各期内死亡例数(d)和截尾例数(c)分别写在第(3)、(4)列。 (4).计算各期的死亡概率 q, q=d/n,截尾数不参加计算,结果见第(5)列。例如生存时 间为 5 天时,q=2/9=0.2222。 (5).计算各期的生存概率 p, p=1-q,例如生存时间为 5 天时,p=10.2222=0.7778,计算 结果见第(6)列。 (6).计算各 t 时刻的生存率 S(tk)。计算 tk 时刻生存率时可以用小于和等于 tk 时刻的各时 点生存概率的乘积得到,计算结果见第(7)列。 表 11.3 Kaplan-Meier 法估计生存率计算表 存活时 间(天) 期初暴露 病例数 期内死 亡例数 期内截 尾例数 死亡 概率 生存 概率 生存 率 生存率 标准误 t n d c q=d/n p=1-q S(tk) SE(S(tk)) (1) (2) (3) (4) (5) (6) (7) (8) 3 10 1 0 0.1000 0.9000 0.9000 0.0949 5 9 2 1 0.2222 0.7778 0.7000 0.1449 6 7 0 1 0.0000 1.0000 0.7000 0.1449 8 6 1 1 0.1667 0.8333 0.5833 0.1610 16 5 0 1 0.0000 1.0000 0.5833 0.1610 22 4 1 0 0.2500 0.7500 0.4375 0.1747 30 3 1 1 0.3333 0.6667 0.2917 0.1666 47 2 0 1 0.0000 1.0000 0.2917 0.1666
71 0 1.00000.00000.0000 用 Stata软件计算时,数据库结构如下 time I dead 16 0 Stata命令如下 stset time, failure(dead=1) 将该数据库定义为生存资料数据库 sts list 输出各时点生存 输出结果 Beg. Survivor T Total Fail Lost Function Err [95% Conf. Int] 3 10 0 0.90000.09490.47300.98 0.70000.1449 0.32870.8919 7 0.7000 0.1449 0.32870.8919 0.58330.16100.22980.8207 0 0.58330.1610 0.22980.820 0.43750.17470.11870.7256 3 0 0.29170.1666 0.0471 0.6085 0.29170.16660.04710.6085 0 0.0000 输出结果依次为时点、各时点的期初例数、死亡例数、截尾例数、生存函数(生存率) 及其标准误、生存率的95%可信区间。如果需要输出生存函数曲线图,接着输入命令: sts graph, title( Kaplan- Meier法对10名病人的生存率估计) 输出生存曲线 输出结果:
4 71 1 1 0 1.0000 0.0000 0.0000 . 用 Stata 软件计算时,数据库结构如下: time dead 1 3 1 2 5 1 3 5 1 4 6 0 5 8 1 6 16 0 7 22 1 8 30 1 9 47 0 10 71 1 Stata 命令如下: stset time, failure(dead=1) 将该数据库定义为生存资料数据库 sts list 输出各时点生存率 输出结果: Beg. Net Survivor Std. Time Total Fail Lost Function Error [95% Conf. Int.] ------------------------------------------------------------------------------- 3 10 1 0 0.9000 0.0949 0.4730 0.9853 5 9 2 0 0.7000 0.1449 0.3287 0.8919 6 7 0 1 0.7000 0.1449 0.3287 0.8919 8 6 1 0 0.5833 0.1610 0.2298 0.8207 16 5 0 1 0.5833 0.1610 0.2298 0.8207 22 4 1 0 0.4375 0.1747 0.1187 0.7256 30 3 1 0 0.2917 0.1666 0.0471 0.6085 47 2 0 1 0.2917 0.1666 0.0471 0.6085 71 1 1 0 0.0000 . . . ------------------------------------------------------------------------------- 输出结果依次为时点、各时点的期初例数、死亡例数、截尾例数、生存函数(生存率) 及其标准误、生存率的 95%可信区间。如果需要输出生存函数曲线图,接着输入命令: sts graph,title(Kaplan-Meier 法对 10 名病人的生存率估计) 输出生存曲线 输出结果:
Kaplan-Meier survival estimate 0.75 00 analysis time 图11.1 Kaplan- Meier法对10名病人的生存率估计 其中 title(选项要求输出图像的标注。 2.寿命表法(Life- Table method,简称LT法)是通过计数落入时间区间[t-,t)内的失 效和截尾的观察例数来估计该区间上的死亡概率,然后用该区间及其之前各区间上的生存概 率之积来估计S(t)。当样本量较大或者无法准确得知研究结果出现的时间时,可以将各研 究对象的生存时间按某个时间段(年、月等)进行分组计算其生存率。 对例11.2用寿命表法计算生存率,具体计算步骤前面已有叙述,这里主要介绍 stata 的用法。 数据库结构如下 dead 7 0 0 11 此时的数据库中有3个变量,time为生存时间(年),time=n表示该组患者在第n年初随访 到了但是在n+1年初没有随访到。dead是观察结局,dead=1表示死亡,dead=0表示截尾 num为各组频数。 Stata程序如下: use d: \data\ltablel 打开 Itable1数据文件 Itable time dead [ weight=nu 制作寿命表 输出结果 Std Interval Total Deaths Lost Survival Error [95% Conf. Int]
5 Kaplan-Meier survival estimate analysis time 0 20 40 60 80 0.00 0.25 0.50 0.75 1.00 图 11.1 Kaplan-Meier 法对 10 名病人的生存率估计 其中 title()选项要求输出图像的标注。 2.寿命表法(Life-Table Method,简称 LT 法)是通过计数落入时间区间[tk-1,tk)内的失 效和截尾的观察例数来估计该区间上的死亡概率,然后用该区间及其之前各区间上的生存概 率之积来估计 S(tk)。当样本量较大或者无法准确得知研究结果出现的时间时,可以将各研 究对象的生存时间按某个时间段(年、月等)进行分组计算其生存率。 对例 11.2 用寿命表法计算生存率,具体计算步骤前面已有叙述,这里主要介绍 stata 的用法。 数据库结构如下: time num dead 1 0 10 1 2 1 15 1 ┆ ┆ ┆ ┆ 6 5 7 1 7 0 0 0 ┆ ┆ ┆ ┆ 11 4 7 0 12 5 7 0 此时的数据库中有 3 个变量,time 为生存时间(年),time=n 表示该组患者在第 n 年初随访 到了但是在 n+1 年初没有随访到。dead 是观察结局,dead=1 表示死亡,dead=0 表示截尾。 num 为各组频数。 Stata 程序如下: use d:\data\ltable1 打开 ltable1 数据文件 ltable time dead [weight=num] 制作寿命表 输出结果: Beg. Std. Interval Total Deaths Lost Survival Error [95% Conf. Int.] -------------------------------------------------------------------------------
0 0.90000.0300 0.82210.9449 012345 05624 0.75000.04330.65290.8236 80.58100.05010.47650.6718 40.43870.05200.33540.5371 70.24370.0484 0.15570.3425 0.08120.03900.02600.1779 输出结果依次为各段生存时间起点与终点、期初人数、期内死亡人数、截尾值人数、生 存率、标准误及其相应的95%可信区间。要输出生存函数曲线图,只须在1 table命令后加 入 graph选项 l table time dead[ weight=num], graph nota noconf title(100例恶性肿瘤患者 术后生存率情况) gs56 0 图11.2100例恶性肿瘤患者术后生存曲线 本命令中, graph要求输出生存函数曲线: nota要求不输出寿命表; noconf要求在生存函 数曲线中不显示95%可信区间, title()则是给图形加上标注 如果获得资料中每一例患者都有自己的生存时间和随访结局,并且样本量较大时,也可 以用寿命表法进行计算,此时的 stata数据库结构为: time stata命令为 Itable time dead, interval(365) 以365天(1年)为组段制作寿命表 得到结果是一致的 3.两种方法的比较 ①.寿命表法适用于大样本或无法准确得知研究结果出现时间的资料, Kaplan- Meier 法主要用于小样本,也可以用于大样本 ②.寿命表法是按照指定的时段来分段,估计的是时间区间右端点上的生存率 Kaplan- Meier法是根据死亡时点分段,逐个估计死亡时点的生存率。 6
6 0 1 100 10 0 0.9000 0.0300 0.8221 0.9449 1 2 90 15 0 0.7500 0.0433 0.6529 0.8236 2 3 75 16 8 0.5810 0.0501 0.4765 0.6718 3 4 51 12 4 0.4387 0.0520 0.3354 0.5371 4 5 35 14 7 0.2437 0.0484 0.1557 0.3425 5 6 14 7 7 0.0812 0.0390 0.0260 0.1779 ------------------------------------------------------------------------------- 输出结果依次为各段生存时间起点与终点、期初人数、期内死亡人数、截尾值人数、生 存率、标准误及其相应的 95%可信区间。要输出生存函数曲线图,只须在 ltable 命令后加 入 graph 选项: ltable time dead [weight=num], graph notab noconf title (100 例恶性肿瘤患者 术后生存率情况) Proportion Surviving time 0 2 4 6 0 .5 1 图 11.2 100 例恶性肿瘤患者术后生存曲线 本命令中,graph 要求输出生存函数曲线;notab 要求不输出寿命表;noconf 要求在生存函 数曲线中不显示 95%可信区间,title()则是给图形加上标注。 如果获得资料中每一例患者都有自己的生存时间和随访结局,并且样本量较大时,也可 以用寿命表法进行计算,此时的 stata 数据库结构为: time dead ┆ ┆ ┆ stata 命令为: ltable time dead, interval(365) 以 365 天(1 年)为组段制作寿命表 得到结果是一致的。 3.两种方法的比较: ①.寿命表法适用于大样本或无法准确得知研究结果出现时间的资料,Kaplan-Meier 法主要用于小样本,也可以用于大样本。 ②.寿命表法是按照指定的时段来分段,估计的是时间区间右端点上的生存率; Kaplan-Meier 法是根据死亡时点分段,逐个估计死亡时点的生存率
③.寿命表法不能确切得知死亡时间,假定每个时间段中的“死亡”是呈均匀分布,生 存率为线性变化,故简单化以直线相连接; Kaplan- Meier法其生存曲线是左连续的阶梯型 曲线,间断点的纵坐标在下一阶处,当样本量较大及死亡时点较多时,阶梯形就不明显了。 4.中位生存期的估计 寿命表法由于默认组段内生存率的变化是均匀的,因此可以直接在生存曲线上进行内插 (图11.3a),如例11.2,3年生存率为0.5810,4年生存率为0.4387,当生存率为0.5000 时,中位生存时间(年)为05810-059×(4-3)+3=3.57 0.5810-0.4387 而在 Kaplan- Meier法中,由于估计的是时点生存率,生存曲线是阶梯形的,对中位生 存期的估计有两种观点:一种观点认为中位生存期为生存率降到0.5或以下的首个生存时 间,另一观点认为需要先将生存率为0.5两侧左端点连线再进行内插。例11.3在两种观点 下中位生存期分别为22天和16天(图11.3b)。 stata软件默认的中位生存期估计为前一种 观点,可通过 stum命令得到实现 3574 如 图11.3a寿命表法中位生存期估计图11.3 o Kaplan- Meier法中位生存期估计 第三节生存曲线的比较 这一节将介绍两组生存资料比较最常用的时序检验(log- rank test),无效假设H为 两条总体生存曲线相同。如果H成立,两组生存资料来自同一总体,用两组合并的资料估 计一条生存函数曲线,该生存函数在各时段中所计算的理论死亡人数与实际死亡人数相差不 会太大,否则拒绝无效假设,接受备择假设,认为各组总体生存曲线不同或不全相同。 例11.4:某医生收集23例晚期肺癌患者在接受化疗后的生存时间t(月),按接受治疗 方案的不同划分为2组(1为常规方案,2为新方案),问不同的治疗方案对其生存时间长短 的影响有无显著性差异。 常规方案组 33+466+7+89+1419 新方案组: 599+10+11111213+1718+19+2032+ 计算步骤: (1)建立假设 H:两总体生存函数曲线相同 H1:两总体生存函数曲线不同 a=005 (2)按时间排序 将两组未截尾的完全生存时间从小到大混合排序,见表11.4第(2)列 表114两组肺癌息者资料分析表 序号生存时间死亡数期初观察数理论死亡数实际数一死亡数
7 ③.寿命表法不能确切得知死亡时间,假定每个时间段中的“死亡”是呈均匀分布,生 存率为线性变化,故简单化以直线相连接;Kaplan-Meier 法其生存曲线是左连续的阶梯型 曲线,间断点的纵坐标在下一阶处,当样本量较大及死亡时点较多时,阶梯形就不明显了。 4.中位生存期的估计 寿命表法由于默认组段内生存率的变化是均匀的,因此可以直接在生存曲线上进行内插 (图 11.3a),如例 11.2,3 年生存率为 0.5810,4 年生存率为 0.4387,当生存率为 0.5000 时,中位生存时间(年)为 (4 3) 3 0.5810 0.4387 0.5810 0.5000 − + − − =3.57。 而在 Kaplan-Meier 法中,由于估计的是时点生存率,生存曲线是阶梯形的,对中位生 存期的估计有两种观点:一种观点认为中位生存期为生存率降到 0.5 或以下的首个生存时 间,另一观点认为需要先将生存率为 0.5 两侧左端点连线再进行内插。例 11.3 在两种观点 下中位生存期分别为 22 天和 16 天(图 11.3b)。stata 软件默认的中位生存期估计为前一种 观点,可通过 stsum 命令得到实现。 图 11.3a 寿命表法中位生存期估计 图 11.3b Kaplan-Meier 法中位生存期估计 第三节 生存曲线的比较 这一节将介绍两组生存资料比较最常用的时序检验(log-rank test),无效假设 H0 为 两条总体生存曲线相同。如果 H0 成立,两组生存资料来自同一总体,用两组合并的资料估 计一条生存函数曲线,该生存函数在各时段中所计算的理论死亡人数与实际死亡人数相差不 会太大,否则拒绝无效假设,接受备择假设,认为各组总体生存曲线不同或不全相同。 例 11.4:某医生收集 23 例晚期肺癌患者在接受化疗后的生存时间 t(月),按接受治疗 方案的不同划分为 2 组(1 为常规方案,2 为新方案),问不同的治疗方案对其生存时间长短 的影响有无显著性差异。 常规方案组: 3 3+ 4 6 6+ 7+ 8 9+ 14 19 新方案组: 5 9 9+ 10+ 11 11 12 13+ 17 18+ 19+ 20 32+ 计算步骤: (1)建立假设 H0:两总体生存函数曲线相同 H1:两总体生存函数曲线不同 = 0.05 (2)按时间排序 将两组未截尾的完全生存时间从小到大混合排序,见表 11.4 第(2)列 表 11.4 两组肺癌患者资料分析表 序号 生存时间 死亡数 期初观察数 理论死亡数 实际数-死亡数
(1) (3 (4)(5)(6)(7)(8) (9) 10) 345689 130.4350.5650.565-0.565 130.3810.6190.619-0.619 1011 130.3500.650-0.3500.350 0 120.3680.6320.632-0.632 5 4120.2500.7500.750-0.750 3 120.2000.800-0.2000.200 2 2 90.3641.636-0.3640.364 00010106 0.2860.7140.714-0.714 0.1670.833-0.1670.167 10130.2500.7500.7500.750 0 20.0001.0000.0000.000 合计 3.2729.7282.728-2.728 (3)将不同生存时间的死亡数按组别归入(3)、(4),期初观察数按组别归入(5)、(6), 计算时,先将两组每一生存时间t的资料列成一个2×2表的形式,见表(11.5), 表1152×2表形式 死亡 常规方案组 新方案组 然后按照四格表ⅹ2检验的方法计算理论死亡数。即 n, D (11.6) N 将不同生存时间的理论死亡数计算结果列在(7)(8)。常规方案组的理论死亡数合计是 3.272,新方案组的理论死亡数合计是9.728。全部实际死亡数与理论死亡数之差为: 01-E1=2.728 02-E2=-2.728 由结果可看出,两组的实际数与理论数之差值是一样的,只是符号相反。因此计算时,选择 任一组计算的结果就可以 对于两组生存率进行 Log rank检验,其统计量服从ⅹ2分布,计算公式为: E1)2 (11.7) Var(O-E) 其中 (O-E,)=∑ n,n2, DS ,i=1,2 (11.8) N(N,-1) 本例中,am(O1-E1)=2.260,故 2(2728)2 lar(O-E1)2.260
8 j tj d1j d2j n1j n2j e1j e2j d1j-e1j d2j-e2j (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 1 3 1 0 10 13 0.435 0.565 0.565 -0.565 2 4 1 0 8 13 0.381 0.619 0.619 -0.619 3 5 0 1 7 13 0.350 0.650 -0.350 0.350 4 6 1 0 7 12 0.368 0.632 0.632 -0.632 5 8 1 0 4 12 0.250 0.750 0.750 -0.750 6 9 0 1 3 12 0.200 0.800 -0.200 0.200 7 11 0 2 2 9 0.364 1.636 -0.364 0.364 8 12 0 1 2 7 0.222 0.778 -0.222 0.222 9 14 1 0 2 5 0.286 0.714 0.714 -0.714 10 17 0 1 1 5 0.167 0.833 -0.167 0.167 11 19 1 0 1 3 0.250 0.750 0.750 -0.750 12 20 0 1 0 2 0.000 1.000 0.000 0.000 合计 6 7 3.272 9.728 2.728 -2.728 (3)将不同生存时间的死亡数按组别归入(3)、(4),期初观察数按组别归入(5)、(6), 计算时,先将两组每一生存时间 tj 的资料列成一个 2×2 表的形式,见表(11.5), 表 11.5 2×2 表形式 死亡 生存 合 计 常规方案组 d1j n1j-d1j n1j 新方案组 d2j n2j-d2j n2j 合 计 Dj Sj Nj 然后按照四格表χ2 检验的方法计算理论死亡数。即 eij = j ij j N n D , i=1,2 (11.6) 将不同生存时间的理论死亡数计算结果列在(7)(8)。常规方案组的理论死亡数合计是 3.272,新方案组的理论死亡数合计是 9.728。全部实际死亡数与理论死亡数之差为: O1 - E1 = 2.728 O2 - E2 =-2.728 由结果可看出,两组的实际数与理论数之差值是一样的,只是符号相反。因此计算时,选择 任一组计算的结果就可以。 对于两组生存率进行 Log Rank 检验,其统计量服从χ2 分布,计算公式为: ( ) ( ) 2 2 i i i i Var O E O E x − − = , =1 (11.7) 其中 ( ) Var Oi − Ei = j j j − j j j j N N n n D S ( 1) 2 1 2 , i =1,2 (11.8) 本例中, ( ) Var Oi − Ei =2.260,故 χ2 = ( ) ( ) 2 i i i i Var O E O E − − = 2.260 (2.728) 2 = 3.29
式(11.7)的近似公式为 (O-E,)2 (11.9) E (6-3272)2(7-9.728) 本例中,x 3.272 9728=3.04,结果略有不同。 下面用 Stata软件进行计算 数据库结构 de 3常规方案组|1 常规方案组0 常规方案组0 新方案组1 20新方案组 2332新方案组0 Stata命令 use d: \data\km2 打开km2数据库 stset time, failure(dead) 定义为生存数据库 sts list, by(treat) 按组别输出不同时点生存率 sts test treat, logrank 对两总体生存率曲线进行 logrank检验 sts graph, by(treat) 按组别输出生存曲线 输出结果 failure d: Survivor Std Time Total Fail Lost Function Er [95% Conf. Int] 常规方案组 0.90000.0949 0.47300.9853 111010 0 0.78750.1340 0.38090.942 0.67500.15510.29060.882 0.67500.15 18680.1 0.7903 0.50630.18 0.25310.20190.01380.6438 0.0000 新方案组 11110 0.92310.0739 0.56640.9888 0.84620.10010.51220.9591 0.51220.9591
9 式(11.7)的近似公式为 = − = m i i i i E O E x 1 2 2 ( ) (11.9) 本例中, = − + − = 9.728 (7 9.728) 3.272 (6 3.272) 2 2 2 x 3.04,结果略有不同。 下面用 Stata 软件进行计算: 数据库结构: time treat dead 1 3 常规方案组 1 2 3 常规方案组 0 ┆ ┆ ┆ ┆ 9 9 常规方案组 0 10 9 新方案组 1 ┆ ┆ ┆ ┆ 22 20 新方案组 1 23 32 新方案组 0 Stata 命令: use d:\data\km2 打开 km2 数据库 stset time, failure(dead) 定义为生存数据库 sts list, by(treat) 按组别输出不同时点生存率 sts test treat, logrank 对两总体生存率曲线进行 logrank 检验 sts graph, by(treat) 按组别输出生存曲线 输出结果: failure _d: dead analysis time _t: time Beg. Net Survivor Std. Time Total Fail Lost Function Error [95% Conf. Int.] ----------------------------------------------------------------------------- 常规方案组 3 10 1 1 0.9000 0.0949 0.4730 0.9853 4 8 1 0 0.7875 0.1340 0.3809 0.9426 6 7 1 1 0.6750 0.1551 0.2906 0.8825 7 5 0 1 0.6750 0.1551 0.2906 0.8825 8 4 1 0 0.5063 0.1868 0.1396 0.7903 9 3 0 1 0.5063 0.1868 0.1396 0.7903 14 2 1 0 0.2531 0.2019 0.0138 0.6438 19 1 1 0 0.0000 . . . 新方案组 5 13 1 0 0.9231 0.0739 0.5664 0.9888 9 12 1 1 0.8462 0.1001 0.5122 0.9591 10 10 0 1 0.8462 0.1001 0.5122 0.9591
9 2 0.65810.14070.32000.8576 0 6 0.56410. 0.45130.1560 0.15490.712 0.45130.15600.15490.7121 0 0.45130.156 15490.7121 0.22560.17760.01510.5896 0 1 0.22560.17760.01510.5896 failure d: dead analysis time t: time ivor functi vents Events treat observed expected 常规方案组 新方案组 9.73 Total 3.29 Kaplan-Meiersurvival estimates, by treat 新方案组 常规方案组
10 11 9 2 0 0.6581 0.1407 0.3200 0.8576 12 7 1 0 0.5641 0.1488 0.2436 0.7928 13 6 0 1 0.5641 0.1488 0.2436 0.7928 17 5 1 0 0.4513 0.1560 0.1549 0.7121 18 4 0 1 0.4513 0.1560 0.1549 0.7121 19 3 0 1 0.4513 0.1560 0.1549 0.7121 20 2 1 0 0.2256 0.1776 0.0151 0.5896 32 1 0 1 0.2256 0.1776 0.0151 0.5896 ----------------------------------------------------------------------------- failure _d: dead analysis time _t: time Log-rank test for equality of survivor functions | Events Events treat | observed expected ------------+------------------------- 常规方案组 | 6 3.27 新方案组 | 7 9.73 ------------+------------------------- Total | 13 13.00 chi2(1) = 3.29 Pr>chi2 = 0.0696 Kaplan-Meier survival estimates, by treat analysis time 0 10 20 30 0.00 0.25 0.50 0.75 1.00 常规方案组 新方案组