临床试验-肿瘤:从生存数据谈ADTTE的构建

临床试验-肿瘤:研究终点以及生存数据的介绍中谈到肿瘤临床试验终点对应的两类数据类型——率和生存数据。这篇文章从生存数据出发,介绍肿瘤试验中的ADTTE数据集的构建。

生存数据相关内容参考Statistical Methods for Survival Data Analysis; ADTTE相关内容参考ADaMIG v1.2以及The ADaM Basic Data Structure for Time-to-Event Analyses

欢迎关注,SAS茶谈,后台回复:ADTTE,获取相关文档。

1. 什么是生存数据?

生存数据可以广义地定义为到给定事件发生的时间 (the time to the occurrence of a given event),也叫做生存时间 (Survival time),这类数据也被称为Time-to-event。ADaM中的ADTTE数据集 (Time-to-Event Analysis Dataset) 就是用来保存生存数据。

这里的生存时间并不单指存活时间,给定的事件可以是疾病进展、特定疗法的疗效、疾病复发或死亡。因此,生存数据可以是无肿瘤时间、从治疗开始到疾病缓解的时间、研究开始到死亡的时间。生存数据可以包括总生存期、给定治疗的疗效,以及与疗效、生存和疾病进展相关的患者特征。

生存数据的相关研究,侧重于预测特定疗法疗效、患者存活或平均寿命的概率,比较试验对象的生存分布,以及确定相关风险因素。

当然,生存数据也不单单局限于生物医药领域,对应的方法也可应用于工业、商业与社会科学中。例如,电子设备的寿命(可靠性工程),重罪犯人的假释时间(犯罪学),首次婚姻的持续时间(社会学)。

这篇文章的介绍内容,是基于临床试验中的生存数据。

2. 生存数据的删失

医学研究中生存数据有一个非常显著的特点,在研究结束时,一些个体还没有出现所关注的事件

例如,在研究结束时某些病人处于存活或疾病缓解的状态,关注的死亡事件并没有出现,那么这些个体的确切的总生存期是不知道的。对应的数据观测称之为删失观测截尾观测

在研究过程中,某些病人还可能由于各种原因脱落而无法观测到所关注的事件发生,这些也被称为删失观测。

在大多数临床试验研究中,由于受经费和时间的限制,最终观察时点是固定的,无法无限延长。同时,根据医学伦理,受试者在试验中任何时候都有权退出试验。除此之外,还可能有其他原因导致未观察到目标事件。

所以,在肿瘤临床试验中,生存数据的删失是比较常见的。这类删失通常称为III型删失(有始无终),具体删失类型可以参考Statistical Methods for Survival Data Analysis (Page 15)。

这种情况下,个体确切的生存时间是不知道的,研究中会寻找一个删失时间 (censored time) 纳入分析。至于寻找一个什么样的时间作为删失时间,在项目的SAP中都会有明确的说明 (Censor Rule)

如果简单地把删失时间纳入分析,那结果就会偏保守(实际生存时间长于观察到的时间)。针对这种情况,统计学家发明了特定的统计方法来进行分析,即所谓的生存分析。

用于生存分析的生存数据由两个变量构成:一个是表示时间长短的数值型变量,一个是表示事件状态的分类变量(事件发生、事件删失)。这两个变量是ADTTE数据集的核心,数据集围绕这两个变量进行构建。

3. 肿瘤临床试验中的生存数据

前面文章提到,肿瘤临床试验常用的终点有两类:

  • Overall Survival(总生存期)
  • Endpoints Based on Tumor Assessments(基于肿瘤评估的终点)

OS是生存数据,其结局事件是死亡;而基于肿瘤评估的终点可能是分类数据,也可能是生存数据,都与肿瘤评估结果有关。

这里的肿瘤评估,通常是指肿瘤的影像学评估。不同类型肿瘤会有不同的评估标准,例如,之前介绍的实体瘤评估标准RECIST1.1,其最佳总体疗效 (BOR) 有5个评估结果:完全缓解 (CR)、部分缓解 (PR)、疾病稳定 (SD)、疾病进展 (PD)以及无法评估 (NE)。

临床试验-肿瘤:ADRS的构建中提到,ADRS数据集主要保存分类数据,分类数据包括BOR分类,以及根据BOR分类进一步衍生的其他分类数据,例如:

  • BOR的取值:CR、PR、SD、PD、NE
  • 是否达到客观缓解 (OR-CR、PR):Y、N
  • 是否疾病控制 (DC-CR、PR、SD):Y、N

以上评估结果的分类,可以作为第二类终点中生存数据的目标事件。这类生存数据举例如下:

  • DOR, Duration of Response
  • DOSD, Duration of Stable Disease
  • PFS, Progression-Free Survival
  • TTP, Time to Progression
  • TTR, Time to Response

对于这些终点,不同公司可能有自己的删失时间标准与考量 (Censor Rule),对应不同的终点变体,这里不再进一步探讨。

4. ADTTE的构建

ADTTE用于保存生存数据,大多数情况下其结构为BDS结构,即数据集会包含每个受试者每个分析参数的一条或多条记录。

4.1 ADTTE中的特殊变量

生存数据定义为到给定事件发生的时间 ,针对生存数据的特点,ADTTE数据集中定义了一些特殊的变量,用以描述生存数据。也就是说,ADTTE由常规的BDS数据集变量与这些特殊变量共同构成

ADaM IG中3.3.6节,对这些特殊变量有简短的介绍。

4.2 ADTTE中生存数据的呈现

属于生存数据的肿瘤终点,根据数据特点,会通过一系列变量进行呈现。

分析参数变量PARAMCDPARAM用于保存试验中的具体终点信息。

前文第2节提到,生存数据由两个变量构成:一个是表示时间长短的数值型变量 (AVAL),另一个是表示事件状态的分类变量 (CNSR)。在ADTTE中,这两个变量还有对应的描述变量CNSDTDSCEVENTDESC

下面会具体介绍TTE相关变量,相关说明参考The ADaM Basic Data Structure for Time-to-Event Analyses

4.2.1 PARAMCD / PARAM

在实际工作中,ADTTE分析参数的取值需参考各家公司标准以及各个项目SAP的说明。

常见的肿瘤生存数据终点如下:

  • PARAMCD = "OS" / PARAM = "Overall Survival"
  • PARAMCD = "DOR" / PARAM = "Duration of Response"
  • PARAMCD = "DOSD" / PARAM = "Duration of Stable Disease"
  • PARAMCD = "PFS" / PARAM = "Progression-Free Survival"
  • PARAMCD = "TTP" / PARAM = "Time to Progression"
  • PARAMCD = "TTR" / PARAM = "Time to Response"

考虑到时间有度量单位的区别,分析参数可能包含单位信息,例如:

  • PARAMCD = "OSD" / PARAM = "Overall Survival (Days)"
  • PARAMCD = "OSM" / PARAM = "Overall Survival (Months)"

各家公司对于肿瘤试验终点可能有自己的考量与标准,相关指标可能有相应的变体,分析参数可能包含变体信息,例如:

  • PARAMCD = "PFSV1D" / PARAM = "Progression-Free Survival Variant 1 (Days)"
  • PARAMCD = "PFSV1M" / PARAM = "Progression-Free Survival Variant 1 (Months)"
4.2.2 CNSR

变量CNSR用于说明删失是否发生。ADaM IG中,强烈建议使用CNSR = 0来表示删失未发生(即目标事件发生);CNSR = positive integers来表示删失发生(即目标事件未发生)。

通常变量CNSR取0和1两个值。IG中也有说明,对于不同原因造成的删失,CNSR可以取不同的正整数值,TTE分析文档中也有相关示例说明。不过,具体操作也要参考各家公司的内部标准。

4.2.3 EVNTDESC

变量EVNTDESC用于描述目标事件或造成删失的事件。

这一块可以参考TTE文档中的第1个例子:

举例中,目标事件为死亡。研究期间,观测到受试者1和5发生了目标事件,没有发生删失 (CNSR = 0),事件的描述信息为死亡 (EVNTDESC = "DEATH");对于其余受试者,并未观察到目标事件发生,即发生删失 (CNSR = 1),造成删失的事件(原因)保存在变量EVNTDESC中。

变量EVNTDESC通常有提前定义的CT取值。

4.2.4 STARTDT

生存数据中表示时间长短的数值型变量,是通过终点时间起点时间作差来获取。变量STARTDT用于记录起点时间,对于各个生存数据研究终点,SAP中会明确定义这个变量的取值,通常不会为空。

常见终点的STARTDT取值如下:

  • OS: Randomization date / First dose date
  • DOR: Response start date
  • DOSD: Stable disesse date
  • PFS: Randomization date / First dose date
  • TTP: Randomization date / First dose date
  • TTR: Randomization date / First dose date

对于随机化试验,有些起点时间选取随机化时间;对于非随机化试验,有些起点时间选取的是首次给药时间。

4.2.5 ADT

变量ADT用于保存计算时间长短的终点时间,这个变量的衍生会相对复杂一些。

当目标事件发生,即CNSR = 0时,ADT保存事件的发生时间;当目标事件未发生,即CNSR = 1时,ADT保存依据Censor Rule确定的删失时间。

对于事件删失的各种情况,各家公司或各个项目都会有确定删失时间的Censor Rule,SAP中会有详细说明,这里不再进一步探讨Censor Rule的具体内容。

我个人将删失分为简单删失与复杂删失

何为简单删失?如果造成删失的事件的开始时间,会作为删失时间,那么这类删失称为简单删失。这种情况下,不需要额外的变量对删失时间进行描述说明。

以TTE文档中的第1个例子进行说明。

目标事件为死亡,受试者2、3、4与6发生删失,按照提前定义的Censor Rule,ADT记录的时间为造成删失的事件的开始时间。

何为复杂删失?如果造成删失的事件的开始时间,不会作为删失时间,而另选取其他时间时,这类删失称为复杂删失。这种情况下,描述删失事件的EVNTDESC变量已无法描述删失时间,所以就需要额外的变量 (CNSDTDSC) 对删失时间进行描述说明。

4.2.6 CNSDTDSC

当复杂删失发生时,变量CNSDTDSC用于描述此时的删失时间。

以TTE文档中,第3个示例进行说明。

这个例子中,终点为PFS,对应2个终点事件:PD与Death。对于造成删失的每种原因(事件),进行了唯一的正整数编码。

按照既定的Censor Rule,PFS删失时间的并不是直接选取造成删失的事件的起始时间,而另取其他时间。这时,EVNTDESC变量已无法描述删失时间,需要CNSDTDSC变量来进行描述。

在实际项目中,考虑到内容的统一,对于简单删失,也会使用CNSDTDSC变量来描述删失时间。当未发生删失时 (CNSR = 0),变量CNSDTDSC值为空。

至于删失时间 (Censor Rule) 如何确定,这属于统计师工作的范畴,这里不再进一步讨论。

4.2.7 AVAL

当事件终点时间与起点时间都确定后,时间长短变量AVAL通过作差来获取。

AVAL变量的衍生需要注意时间的单位:

  • AVAL (month) = (ADT - STARTDT + 1) x 12 / 365.25
  • AVAL (Day) = ADT - STARTDT + 1
  • AVAL (hour) = (ADTM - STARTDTM) / 3600

具体衍生规则,以项目SAP中的说明为准。

4.2.8 SRCDOM / SRCVAR / SRCSEQ

这3个变量,用于追溯与分析变量相关的数据来源,通常用于描述变量ADT的来源。

在肿瘤临床试验中,生存数据所需要的终点时间的来源,一般是ADSL与ADRS中的记录值。在获取相关时间时,保留相关追溯性变量的信息。

ADSL为Subject-Level结构,对于一个受试者来讲,借助SRCDOM = "ADSL"SRCVAR = "XXX"就可以追溯到所用时间取值的来源。

ADRS为BDS结构,对于一个受试者来讲,需要借助SRCDOM = "ADRS"SRCSEQ = "XXX"

4.3 ADTTE的难点

ADTTE构建的难点在于终点时间的选取,进一步讲,在于发生删失时终点时间的选取

这个过程中,并不难获取受试者各类相关时间。关于具体删失时间的选取,程序虽不复杂,但很考验SAS Programmer对Censor Rule的理解,这也是ADTTE数据集的重点与难点所在。这一块需要读者仔细研读与理解SAP中的相关内容。

除此以外,有的公司还会构建中间数据集,用于衍生ADTTE。这个中间数据集,会提前抓取用于计算生存数据时间长短的各类时间。相当于将ADTTE的衍生拆分为两部分,过程更加清晰简明,易于操作。

以后会结合实例,对这一块内容进行单独讲解。

总结

这篇文章从生存数据的概念讲起,介绍了生存数据的删失,以及肿瘤临床试验中的各类生存数据。按照ADaM IG与TTE文档,介绍了ADTTE中生存数据的呈现。

ADTTE数据集包含常规的BDS结构变量,以及用于描述生存数据的特殊变量,具体变量衍生细节可以参考TTE文档。

希望这篇文章能够帮助读者进一步理解ADTTE数据集。

感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!
欢迎点赞、转发!

梳理不易,转载请注明出处 (by Jihai / SAS茶谈)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容