临床试验:生存分析 (1) - Kaplan-Meier估计介绍了生存数据的非参数描述方法——Kaplan-Meier估计。这篇文章介绍,两组生存数据的比较的非参数方法——Log-rank检验,第4节有相关SAS程序分享。
生存数据的分析包括,生存过程的描述、生存过程的比较以及影响因素的分析,这篇文章属于生存过程的比较。相应的统计分析方法分为参数方法和非参数方法。参数方法需要对生存分布、微积分有一定的了解,学习门槛会比较高。在临床研究和流行病学的刊物上,大多数研究工作都是使用非参数方法。
文章主要参考以下2本书籍:
- Statistical Methods for Survival Data Analysis (ELISA T. LEE),
- Clinical Statistics: Introducing Clinical Trials, Survival Analysis, and Longitudinal Data Analysis (Olga Korosteleva)。
欢迎关注,SAS茶谈,后台回复:SA,获取相关资料。
1. 生存函数
生存函数用 S(t) 表示,定义为个体存活时间长于 t 的概率,其为 t 的函数。
生存函数 S(t) 是 t 的不增函数,在时间为0时,生存的概率为1;在时间趋向于无穷时,生存概率为0。
对于产生生存数据的两组不同干预,有效性的比较等价于两组生存数据的生存函数是否有统计学差异。在含有删失数据的情况下,最常用的检验方法是非参数检验——Log-rank检验。
2. Log-Rank检验
2.1 超几何分布 (Hypergeometric Distribution)
超几何分布是一种离散概率分布,可以用来描述不放回抽样的事件发生的概率。
假设一个盒子里有N个球,其中红球有m个,白球有N-m个。如果从盒子里抽取n个球,其中抽到 x 个红球的概率为:
超几何分布的期望与方差如下:
数学期望描述了一个随机变量在某种概率分布下的平均值, 对于一个离散型的随机变量,其数学期望为每一可能取值与其概率之积的求和:
超几何分布的期望值很符合直观印象,在这个盒子中,红球占比为, 抽取n个球,预期得到的红球数为。
2.2 中心极限定理 (Central Limit Theorem, CLT)
中心极限定理是概率论和统计学中的一个基本定理,它说明在某些条件下,大量独立同分布的随机变量的和或均值会渐进服从正态分布,即使这些随机变量本身并不服从正态分布。
假设一个盒子里有100个球,其中红球有10个,白球有90个。如果从盒子里不放回地抽取20次,记录抽中红球的个数;以上步骤重复100次,计算抽中红球个数的均值;以上过程重复1000次,得到1000个均值,画出均值的直方图。
SAS模拟程序如下:
/*Hypergeometric distribution*/
**Create dummy datasets;
data dummy;
call streaminit(20240621);
do trial = 1 to 1000;
sum = 0;
do num = 1 to 100;
outcome = rand("hyper", 100, 10, 20);
sum + outcome;
end;
mean = sum/100;
output;
end;
run;
**Histogram of the mean;
proc sgplot data=dummy;
histogram mean / binwidth=0.05;
density mean / type=normal;
title "Means distribution of samples from Hypergeometric distribution by Jihai";
run;
均值直方图如下:
从直方图可以看出,这些均值的分布趋向于正态分布。通过这个例子,我们可以理解中心极限定理的核心思想:无论原始数据的分布形状如何,当我们取大量样本并计算它们的均值时,这些均值的分布会渐进服从正态分布。
该试验中,抽中红球的次数服从超几何分布,关于其他随机变量分布的中心极限定理的模拟,可以参考这篇文章:SAS编程:中心极限定理的模拟。
2.3 Log-rank检验
临床试验中,为了比较两组试验的疗效,会将受试者随机分配到2个试验组。如果试验收集的是生存数据,两组试验组疗效是否有差异,可以转化为两组生存数据的生存函数是否有统计学差异。双侧假设检验如下:
生存数据最常用的检验为Log-rank检验。为了构建 Log-rank 统计量,假设有2个试验组,每组有若干个受试者,记录每个受试者的生存时间以及事件是否发生。
将所有受试者的生存时间按升序排列,,这些时间点是时间发生的时间点,在每一个时间点,数据可以汇总为一个的表格:
这里的和为时点两试验组的死亡人数,和为时点两试验组处于风险的人数,。
零假设为两组数据生存函数没有统计学差异,即受试者状态与试验分组无关。如果表格中的边际总数固定不变,即时点时,两试验组处于风险中的人数确定 (, ),两试验组总死亡数 ()、总存活数()确定,则该表中的四个格子的取值可由的值决定,即确定的情况下,其他三个格子的值也是确定的。
在零假设成立的条件下,服从超几何分布,总人群数为(即时点下处于风险中的两试验组总人数), 感兴趣的试验组人群数为,发生样本数为, 取值为 0到。
服从超几何分布的的期望与方差如下:
对所有时点的求和,并构建统计量:
由中心极限定理可知,渐进服从正态分布,可以证明的期望和方差如下:
对统计量进行标准化,构建Log-rank 检验统计量,近似服从标准正态分布; 近似服从自由度为1的卡方分布。
统计量的分布确定后,就可以进行统计推断了,下面用实例进行讲解。
3. 生存数据实例
以下是参考资料中的实例,这是个戒烟的临床试验,有两个试验分组,收集的数据为戒烟时间,代表删失。
事件发生的时点4个,2.0, 3.4, 4.1, 4.3, 对应各时点统计量计算如下:
最后,统计量与方差如下:
在双侧检验下,可以算出当前Log-rank检验统计量取得当前值或更加极端值的概率。
统计量 ,近似服从标准正态分布, ;统计量,近似服从自由度为1的卡方分布,。
因此,在5%的显著性水平下,不拒绝原假设,可以认为两组用药疗效并没有显著性差异。
关于正态分布、卡方分布随机变量取更加极端值的概率的计算,可以参考以下代码:
data prob;
prob_norm =2 * probnorm(-0.2847);
prob_chi = 1 - probchi(0.081, 1);
run;
关于随机变量概率分布的介绍可以参考以下文章:医学统计:随机变量的概率分布、概率计算的SAS实现。
4. Log-rank检验的SAS程序
以上实例数据输入到SAS数据集,按照ADTTE IG 建议,以数值1表示数据删失,数值0表示数据未删失。
data dt;
input duration status group @@;
datalines;
3.4 0 1 3.6 1 1 4.1 0 1 4.9 1 1 5.8 1 1
2.0 0 2 3.7 1 2 4.3 0 2 4.9 1 2
;
run;
过程步Proc Lifetest
进行Log-rank检验,需要指定删失状态的变量值, 以及使用strata
指定分组变量。
proc lifetest data = dt method = km;
strata group;
time duration* status(1);
run;
SAS默认输出卡方检验形式下的Log-rank检验结果:
5. 总结
这篇文章介绍了,生存分析中的Log-rank检验,在事件发生的时间节点上,事件发生数服从超几何分布,根据中心极限定理,对所有时点发生数进行求和,构建服从标准正态分布(或自由度为1的卡方分布) 的Log-rank检验统计量,对两组生存数据进行统计推断。最后,分享了进行Log-rank检验的SAS程序。
感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!
梳理不易,转载请注明出处 (by Jihai / SAS茶谈)
网友评论