最佳总体疗效(BOR)的统计编程实现

2025-08-21

62 #有临来雅

 

 

肿瘤药物临床试验中,客观评估抗肿瘤疗效是评价药物有效性的关键环节。本文依据RECIST 1.1标准阐述最佳总体疗效(Best Overall Response,BOR)的相关概念及衍生原理,并分享统计编程人员在SAS和R语言实现过程中的解决方案。通过规范化的疗效评估方法和标准化的编程实践,为肿瘤药物的临床研发提供可靠的数据支持。

 

一、BOR的概念及分类

实体瘤疗效评估标准(Response Evaluation Criteria in Solid Tumors, RECIST)自2000年首次发布以来,已成为实体瘤临床试验疗效评估的国际规范。2009年修订的1.1版本针对大量影像数据和新技术进行了优化,为临床试验提供了量化、标准化的评估方法。基于病灶测量结果,RECIST 1.1定义了五类疗效状态:完全缓解(Complete Response,CR),部分缓解(Partial Response,PR),疾病稳定(Stable Disease,SD),疾病进展(Progressive Disease,PD)和无法评估(Not Evaluable,NE)。而BOR是从治疗开始直到疾病进展或复发期间记录的最佳疗效状态,是衡量试验药物抗肿瘤疗效的关键指标之一。BOR直接决定了客观缓解率(Objective Response Rate,ORR) 和疾病控制率(Disease Control Rate,DCR)等核心终点指标。

在肿瘤临床试验中,BOR的评估方法可分为以下两类:

• 非确认BOR:其基本衍生逻辑遵循CR>PR>SD>PD>NE的优先级顺序,取受试者所有疗效评估结果中的最佳应答。例如:某受试者疗效评估序列为PR→SD→SD→PD,则该受试者的非确认BOR为PR。该评估方法相对简单,不要求对缓解结果进行二次确认。

• 确认BOR(常见于以客观缓解率(ORR)为主要终点的临床试验)。虽然同样基于CR>PR>SD>PD>NE的优先级规则,但确认BOR的评估更为严谨,主要体现在对CR和PR的确认要求,确保疗效不是测量误差的结果:

  1. CR确认:首次评估为CR后,需后续连续评估仍为CR,且两次评估间隔不少于方案规定的最短时间(如:4周);

  2. PR确认:首次评估为PR后,需后续连续评估为CR或PR,且两次评估间隔不少于方案规定的最短时间(如:4周)。

需要注意的是,CR/PR的确认是一个多步骤的严谨过程,会根据不同的疗效评估结果序列产生不同的确认结果,上述确认逻辑仅为简化说明,方便读者快速理解,实际评估过程更为复杂,RECIST 1.1标准中通过专门表格(图1)详细描述了不同评估序列下的确认规则。

此外,无论是非确认BOR还是确认BOR,SD的确认标准均需满足方案中规定的最短持续时间(如:6-8周)。

图1 RECIST 1.1原文中的CR/PR确认逻辑表格

 

 

   二、BOR的SAS与R语言编程实现

在统计编程实践中,统计分析师/统计程序员通常基于SAS平台开展编程工作。本文将重点介绍在SAS 9.4环境下实现两种BOR的SAS编程示例。考虑到R语言在临床试验的统计编程工作中越来越广泛的应用以及其巨大的潜力,文章同时提供使用R语言实现BOR编程的代码示例及结果展示。以下程序只是用于演示,其逻辑和形式都不一定是最佳的。请读者根据各自项目的统计分析要求相应准备,也欢迎留言交流。

 

BOR的计算通常基于临床数据交换标准协会(Clinical Data Interchange Standards Consortium,CDISC)标准框架下的数据,具体而言:

• 数据来源:基础数据源于CDISC标准数据SDTM(Study Data Tabulation Model)中的RS(Response)数据集,该数据集记录了受试者每次肿瘤评估的客观疗效结果。

• 结果存储:衍生得到的BOR结果将按照CDISC ADaM(Analysis Data Model)标准,存储于ADRS(Response Analysis Dataset)数据集中,确保分析数据的标准化和可追溯         性。

非确认BOR的编程衍生逻辑:相较于确认BOR,非确认BOR的衍生逻辑较为简明,其核心算法如下:

1) 数值化赋值:对首次PD及之前的肿瘤疗效评估结果,依据CR>PR>SD>PD>NE的优先级顺序从大到小进行数值化赋值(注意:对于SD,仅当满足方案中规定的最短持续时间条件后才予以赋值);

2) 最优结果筛选:基于上述赋值结果,按受试者维度筛选出数值最大的疗效评估结果,作为该受试者的最终非确认BOR。

 

图2 基于SAS环境的非确认BOR编程逻辑的代码示例

 

图3 基于R语言环境的非确认BOR编程逻辑的代码示例

 

根据运行结果,示例中的受试者非确认BOR结果为PR(图4、图5):

 

图4 基于SAS环境的非确认BOR编程衍生示例结果,其中一次SD结果因为不满足6周持续时间而未被考虑到优先级排序中

 

图5 基于R语言环境的非确认BOR编程衍生示例结果

 

 

确认BOR的编程衍生逻辑:相对复杂,其核心处理流程如下:

1) 数据预处理:筛选首次PD及之前的疗效评估结果,按照受试者、疗效评估日期进行日期从小到大的排序,对每个受试者的排序结果赋值从1开始依次递增1的序列号(注:此步骤为后续数据转置做准备,具体实现可参考图6-图9的示例)。

 

图6 基于SAS环境的筛选疗效评估数据并根据日期顺序进行排序的代码示例

 

图7 基于R语言环境的筛选疗效评估数据并根据日期顺序进行排序的代码示例

 

图8 基于SAS环境的预处理完成后的疗效结果数据集

 

图9 基于R语言环境的预处理完成后的疗效结果数据集

 

2) 数据转置处理:对预处理完成后的数据集进行转置,分别转置疗效评估结果(图10、图11中的ovr变量)和疗效评估时间(图10、图11中的day变量)。进行转置处理的原因是从编程角度来说横向的疗效数据结构更便于CR/PR确认的逻辑实现。图10、图11为转置完成的数据集截图,其中带有相同编号的ovr变量和day变量表示同一次肿瘤疗效的评估结果和对应的评估时间:

 

图10 基于SAS环境的转置后的数据集,为了方便展示采用了截断的方式来呈现,实际结果中ovr变量和day变量都在同一个数据集内

 

图11 基于R语言环境的转置后的数据集

 

3) 标志变量生成:基于转置后的数据集,按照RECIST 1.1提供的确认BOR逻辑进行标志变量的编程衍生:

  • crfl = Y:当受试者满足RECIST 1.1确认CR标准时
  • prfl = Y:当受试者满足确认PR标准时
  • sdfl = Y:当受试者满足确认SD标准时
  • pdfl = Y:当受试者出现PD时
  • nefl = Y:当以上条件均不满足时

4) 最佳疗效判定:根据这五个变量的结果,遵循CR>PR>SD>PD>NE的优先级顺序,在多个标志变量为"Y"的情况下,选择优先级最高的疗效结果作为最终确认BOR。

图12-图15展示了编程逻辑的简要代码示例及结果数据集,根据运行结果,示例中的受试者同时满足确认PR和确认SD的条件,按照优先级该受试者的确认BOR结果为PR。

 

图12 基于SAS环境的确认BOR编程实现的代码示例

 

图13 基于R语言环境的确认BOR编程实现的代码示例,因代码较长仅截取确认CR/PR部分

 

图14 基于SAS环境的确认BOR编程衍生示例

 

图15 基于R语言环境的确认BOR编程衍生示例

 

 

三、总结

在实际临床研究项目中,BOR的编程实现需要考虑比前文示例更为复杂的真实世界场景,比如需要考虑新的抗肿瘤治疗时间对于BOR结果衍生的影响,或一些特殊疗效序列的处理(如CR-NE-CR、PR-SD-PR等),或两次连续疗效评估的时间间隔不满足方案规定时间的处理等,其处理方法可能因方案设计/申办方需求的不同而异,这些都需要考虑到BOR的衍生逻辑中。不同公司在实现BOR衍生时的编程处理可能会有所不同,但均严格遵循RECIST 1.1标准的核心概念与方法学要求,确保不同实现方案在科学性和合规性上的一致性。

在肿瘤药物临床试验的数据生态系统中,统计编程人员承担着关键的技术枢纽角色。我们不仅是实现数据分析的技术执行者,更是确保疗效评估数据质量的核心守护者。通过精准编程将RECIST标准转化为可执行算法,确保疗效评估结果的准确性和可靠性。随着肿瘤治疗领域的快速发展(如免疫治疗的兴起),相关评估标准也在持续演进(如iRECIST)。这对统计编程人员提出了持续学习的要求,需要及时更新知识库和工具库,以应对新的挑战。

 

参考文献:

[1]Eisenhauer EA, Therasse P, Bogaerts J, Schwartz LH, Sargent D, Ford R, Dancey J, Arbuck S, Gwyther S, Mooney M, Rubinstein L, Shankar L, Dodd L, Kaplan R, Lacombe D, Verweij J. New response evaluation criteria in solid tumours: revised RECIST guideline (version 1.1) Eur J Cancer. 2009;45:228–247. doi: 10.1016/j.ejca.2008.10.026.

 

 

撰写:何志豪

审核:章飞燕、张子豹