首页 / 资讯中心 / 文章详情

临床试验估计目标与伴发事件处理策略:方案到敏感性分析

临床试验估计目标与伴发事件处理策略:方案到敏感性分析 ★ FEATURED ARTICLE
简介《ICH E9(R1)估计目标及敏感性分析蓝皮书》由DIA中国统计社区组织多位药企与机构专家撰写面向临床试验统计师、数据管理人员及药物研发从业者系统梳理估计目标框架在试验设计与分析中的落地方法。内容围绕估计目标五大属性、伴发事件处理策略、主估计方法、敏感性分析与补充分析展开并说明如何在试验方案和统计考量章节中清晰呈现书中还附有淋巴瘤CAR-T、哮喘多臂三期等案例便于读者理解从目的定义到结果解释的完整逻辑。资源为1个PDF文件压缩包约1.63MB目录涵盖概念、方案呈现与案例模块适合按章节查阅和团队讨论。已有2806人学习可作为临床试验方案撰写、统计审阅及监管沟通的实用参考尤其适合需要统一估计目标表述、评估结果稳健性的研究团队。1. 分析方法之争最终暴露的是定义问题估计目标为什么必须在方案阶段写死一份临床试验的统计分析做完结论却卡在评审环节双方争的往往是同一个问题你分析的那个数字到底在回答什么。某降糖药在上市申请阶段遇到过类似情况一方把补救治疗后的数据当缺失处理另一方坚持要用补救后的观测值表面上是缺失数据方法之争实质是双方对“治疗效应”的理解根本不同。ICH E9(R1) 给出的解法是把这个分歧前置在方案阶段就用结构化框架把估计目标写清楚再配主估计方法、敏感性分析和补充分析三层结果。这份估计目标与敏感性分析蓝皮书的价值就在这儿——它把指南条文翻译成了能直接照着写方案、写统计分析计划SAP的文档模板和十个适应症案例做临床试验统计的、准备注册沟通的、或者拿这个方向做毕设课设的都能从中拿到可用的结构。2. 结构化框架拆解五大属性、伴发事件判定与五种处理策略2.1 从试验目的到估计目标的三步推演ICH E9(R1) 的核心是一个三步走的推演链条蓝皮书把它总结得很直白先明确试验目的也就是你真正想回答的临床问题再据此定义估计目标最后才是选主估计方法和敏感性分析方法。这三步顺序不能乱。很多人习惯先看数据长什么样再倒推能做什么分析这在探索性研究里勉强能接受在确证性试验里就是埋雷。第一步要回答的是目标人群是谁、对照是什么、主要终点是什么、治疗意图是什么。只有这些定了第二步才有东西可写。第二步的产出是一段精确描述——不是“评估药物 A 相比 B 的疗效”这种废话而是“在某某人群中比较随机分配到 A 与 B 的两组受试者在某时间点某指标上的群体层面差异”。第三步才落到方法。主估计方法要能给出估计值、置信区间并完成假设检验而任何估计方法都依赖假设所以假设必须写进 SAP。敏感性分析则是针对这些假设的偏离检验主估计结论稳不稳。提示三步的产出物分别是一句话的临床问题、一段五属性的估计目标描述、一组主估计方法加敏感性分析的对应关系这三样在方案里要能一一对上对不上就是没写清。蓝皮书里反复强调一点估计目标不等于缺失数据问题。2010 年那份关于缺失数据的报告把估计目标带进了视野但后续讨论长期偏到缺失数据处理上导致不少人误以为估计目标就是“缺失值怎么填”。实际上缺失数据只是伴发事件处理策略落地时的一个技术环节范围窄得多。2.2 五大属性之间是怎么互相牵制的估计目标由五个属性共同定义目标人群、治疗处理、目标变量终点、伴发事件及其处理策略、群体层面汇总。前四个属性加上策略决定了你到底在估计什么第五个属性决定你用什么度量把它汇总出来比如均值差、风险比、比值比。这五个属性不是并列关系而是互相牵制。伴发事件一旦被纳入治疗的定义治疗属性就变了被纳入终点的定义变量属性就变了被用来界定人群人群属性就变了。举个肿瘤研究的例子无进展生存期PFS里“死亡”这个事件被算进了终点定义所以它不是缺失而是终点的一部分但如果研究的主要终点是“6 周期后的总体最佳响应”死亡导致这个响应无法测得那就属于影响变量存在的伴发事件处理策略要单独讨论。这个牵制关系在方案评审时是最容易被问住的地方。评审专家常问的一句是“你这个伴发事件处理策略改的是人群、治疗还是终点”答不上来说明五个属性没有真正想透。2.3 伴发事件的判定三条件与“不是方案违背”伴发事件的定义看起来简单——治疗开始后发生、影响与临床问题相关的观测结果的解释或存在、无法通过随机化消除其影响。但实际判定要同时满足三条时间上必须在治疗开始之后。既往接受过某种治疗不属于伴发事件因缺乏疗效或不良事件提前终止治疗属于。它影响患者的治疗比如治疗转组、启用补救治疗、加用禁用药物。它影响估计目标的其他属性包括目标变量的解释或存在、治疗的定义、人群的定义。第三条是最容易被忽略的。一次长期治疗中的单次漏服如果预期不影响对变量的解释那就只是方案违背不是伴发事件。这个区分很关键因为伴发事件是在治疗过程中自然发生的设计阶段就该预料到并写进方案它本身不是试验缺陷方案违背则是要尽量避免的执行偏差。两者混为一谈会直接把伴发事件处理策略写歪。还有一个实操上的点伴发事件必须定义得足够细。“提前终止治疗”是伴发事件但终止的原因可能是缺乏疗效、不良事件、患者搬家、合并用药超量不同原因对应不同策略。因缺乏疗效退出可以用复合策略把终点判为无应答因搬家退出更适合用假想策略假想这个人临床状态良好、没有提前退出。所以方案里要提前规划收集哪些支持性信息比如退出原因的结构化记录。2.4 五种处理策略与同一组数据的代码演示ICH E9(R1) 给了五种处理策略蓝皮书用同一个抽象例子把它们串起来某适应症群体比较试验治疗 A 与标准治疗 B 在 6 个治疗周期后的总体最佳响应率治疗过程中受试者可能在疾病进展前、6 周期内退出用药并启用下一线治疗——这个“启用下一线治疗”就是伴发事件。策略在回答什么临床问题伴发事件后的测量被改动的属性疗法策略整个治疗策略含后续治疗的效应照常收集并使用治疗定义假想策略假如不发生伴发事件时的“纯”效应不收集靠模型预测填补隐含假设复合策略把伴发事件本身视为不良结局不收集直接判定结局变量定义在治策略只关心伴发事件发生前的效应不收集变量定义主层策略潜在不会或会发生伴发事件的人群取决于试验设计人群定义五种策略落到代码上差异非常直观。下面这段 R 用同一份六人数据演示前四种策略各自怎么算出应答率# 五种伴发事件处理策略同一份数据四种可直接计算的估计目标 suppressPackageStartupMessages(library(dplyr)) dat - tibble::tibble( id 1:6, trt c(试验组,对照组,试验组,对照组,试验组,对照组), resp c(1, 0, 1, 0, 1, 1), # 6周期后实际观测到的应答(1缓解) pre_resp c(1, 0, 1, 0, 1, 0), # 伴发事件发生前末次评估的应答 next_line c(0, 0, 0, 1, 0, 1), # 是否在6周期内启用下一线治疗(伴发事件) death c(0, 0, 0, 0, 0, 0) # 是否死亡(本组无人死亡) ) res - dat %% mutate( # 疗法策略所有观测值照用伴发事件后的应答也计入 y_treatment resp, # 复合策略启用下一线治疗或死亡一律判为无应答 y_composite if_else(next_line 1 | death 1, 0, resp), # 在治策略截到伴发事件发生前取末次评估值 y_while if_else(next_line 1, pre_resp, resp) ) # 假想策略不能直接算先删去伴发事件后的观测留待按填补模型预测 to_impute - res %% filter(next_line 1) %% mutate(y_hypo NA_real_) # 实际项目中在此接入多重填补或 tipping point res %% group_by(trt) %% summarise( 疗法策略 mean(y_treatment), 复合策略 mean(y_composite), 在治策略 mean(y_while), .groups drop )这段代码里next_line是伴发事件的标记位pre_resp是在治策略要用的截尾值y_composite体现的是把事件写进终点定义这一步。三个y_*列的均值就是三个不同的估计值——同一批人、同一个终点、同一时点只因为策略不同结论就可能不同。假想策略为什么单独拎出来因为它不是简单改个赋值而是要明确一套填补模型和假设模型本身要写进 SAP而且通常要做敏感性分析来检验假设偏离的影响。主层策略在代码层面没有对应列因为它改的是人群定义——你得在入排标准或设计阶段就把“潜在不会启用下一线治疗”的人群框出来而不是事后从发生了事件的人里筛。蓝皮书特别提醒主层和亚组的区别就在这儿主层是基于潜在状态亚组是基于已发生的状态。注意五种策略没有优劣之分选哪个由临床问题决定。疗法策略关心的是策略整体效果假想策略关心药物本身的效应两者对应的监管沟通口径也不同。3. 写进方案文档估计目标章节的四段式写法与伴发事件汇总表3.1 估计目标章节的四段式写法蓝皮书第二章说得很清楚估计目标具体怎么呈现没有统一规定可以放在研究目标章节也可以单列一章。但从可执行角度一段完整的估计目标描述要覆盖四块内容缺一块评审就会追问。第一块是临床问题陈述用一句问句把问题问出来。第二块是五属性逐条定义。第三块是伴发事件及其处理策略说明每种事件为什么选这个策略。第四块是选择该估计目标的考量以及它和后续分析方法的衔接。给一个可以直接改的模板骨架主要关注的临床问题是在【目标人群】中不考虑因任何原因终止治疗、 不考虑是否启用补救治疗或改变背景治疗的情况下治疗【时长】后 通过【终点指标】评估的治疗差异是多少 估计目标定义 - 目标人群【人群描述】详见方案第 X 章入排标准。 - 终点【指标】在【时间点】较基线的变化。 - 治疗随机分配的治疗伴有或不伴有补救治疗或背景治疗改变疗法策略。 - 伴发事件及处理策略伴发事件一因任何原因终止治疗按疗法策略处理 伴发事件二启用补救治疗或改变背景治疗按疗法策略处理无其他伴发事件。 - 群体层面汇总两组间平均变化的差值。 选择该估计目标的考量【与临床问题的一致性、与监管沟通的结论等】。这个写法有个好处临床问题、五属性、策略、理由四块一眼能对上评审不需要在方案里翻来翻去找对应关系。如果试验有多个主要估计目标就按“主要估计目标 1、主要估计目标 2”依次写各自配一套主估计方法和敏感性分析不要合并成一段含糊的描述。多个估计目标共用同一批数据时还要注意主次。蓝皮书的原则是主估计方法加敏感性分析回答主要问题补充分析提供更全面的了解优先级最低通常不作为结论依据。3.2 伴发事件汇总表一张表交代全部策略方案的不同章节会分别提到伴发事件但分散描述很容易前后打架。蓝皮书的建议是单独给一张汇总表把所有估计目标、所有伴发事件、对应策略一次性列清楚。伴发事件主估计目标次要估计目标 1次要估计目标 2终止治疗疗法策略复合策略在治策略暂停用药疗法策略疗法策略疗法策略补救治疗假想策略疗法策略在治策略背景治疗改变疗法策略疗法策略疗法策略死亡假想策略复合策略在治策略这张表的读法是横向看同一个伴发事件在不同估计目标下策略不同说明它们回答的是不同的临床问题。主估计目标对补救治疗用假想策略是在问“不用补救药时的纯效应”次要估计目标 1 对补救治疗用疗法策略是在问“把补救治疗算进治疗策略后的整体效应”。两个问题都合理但必须说清哪个是主要的。纵向看则能发现策略的分布如果某个次要估计目标的所有事件都用疗法策略那它和主估计目标的差异其实只体现在个别事件上写 SAP 时要能指出这个差异点在哪儿否则敏感性分析会做得没有针对性。提示这张表要同时出现在方案和 SAP 里两边口径必须完全一致方案改一次表就同步改一次否则统计分析和方案对不上是最常见的退回原因。3.3 统计分析章节要跟着改的三处估计目标一改统计分析章节至少有三处必须联动。第一处是分析集定义。全分析集、安全性分析集各自包含哪些受试者、按随机分组还是实际治疗分组都要和估计目标的人群属性对齐。如果估计目标写的是“随机分配到某组的人群”分析集就不能按实际用药划分。第二处是缺失数据处理。蓝皮书强调针对不同伴发事件造成的缺失填补方法可能不同必须分开写清楚不能一句“采用多重填补”带过。比如因缺乏疗效退出的受试者按复合策略处理因搬家退出的按假想策略处理这两类缺失的机制假设不一样混在一起填补等于把两种估计目标搅在一起。第三处是敏感性分析。主估计方法写了什么假设敏感性分析就要针对哪些假设设计。这三处如果不联动方案读起来就是“估计目标一套、分析集一套、缺失处理又一套”评审很容易看出破绽。4. 主估计方法与敏感性分析两层假设与一次只动一个变量的稳健性设计4.1 主估计方法必须写清的两层假设任何主估计方法都依赖假设蓝皮书把它拆成两层统计模型本身的假设以及缺失数据处理的假设。第一层比如协方差分析假设组间基线效应一致、模型残差服从某分布第二层比如缺失数据是随机缺失还是完全随机缺失、填补模型包含哪些协变量、是否按治疗组分层填补。两层假设要分别写不能合并成“采用某某模型分析”一句话。写清假设的意义在于评审能据此判断你的结论在假设不成立时会不会翻车你的敏感性分析也有了明确靶子。一个常见的写法是先把主估计方法拆成“估计什么参数、用什么模型、模型依赖哪些假设、缺失数据按什么机制处理”四句每句对应一个可检验或可讨论的点。4.2 敏感性分析一次只动一个假设敏感性分析的定义是针对假设偏离和数据局限探索主估计方法统计推断的稳健性。关键限定词是“同一个估计目标”——它检验的是主估计方法稳不稳不是换一个估计目标重新分析。换了估计目标那是另一个分析不是敏感性分析。蓝皮书给了一条很实用的原则一次只动一个假设。同时改变统计模型假设和缺失数据假设结果出现差异时你根本说不清是哪个假设导致的这种分析做了等于没做。敏感性分析针对的假设改动内容预期观察分析一缺失机制把随机缺失改成完全随机缺失后重新填补结论方向是否翻转分析二填补模型协变量在填补模型中加入基线预后因素估计值偏移幅度分析三伴发事件判定对边界情形的伴发事件重新归类结论是否依赖个别判定分析四统计模型更换协变量调整策略效应估计是否稳定下面这段代码演示一种常见的敏感性分析骨架——针对假想策略下的填补值做 tipping point 扫描看结论在多大的偏移量下会翻转# 敏感性分析骨架对假想策略下的填补应答做 tipping point 扫描 # 参数 delta 表示未观测受试者的应答概率相对观测组均值的绝对偏移 tipping_point - function(dat, delta_grid seq(-0.4, 0.4, by 0.05)) { obs_rate - mean(dat$resp[dat$next_line 0]) # 未发生伴发事件者的观测应答率 purrr::map_dfr(delta_grid, function(d) { # 仅对发生伴发事件的受试者按偏移后的概率赋予假想应答 dat %% mutate( y_hypo if_else(next_line 1, as.numeric(obs_rate d 0.5), # 简化判定实际按模型预测 resp) ) %% group_by(trt) %% summarise(rate mean(y_hypo), .groups drop) %% tidyr::pivot_wider(names_from trt, values_from rate) %% mutate(delta d, diff 试验组 - 对照组) }) } # 找出组间差异符号发生改变时的 delta即结论翻转的临界点 tipping_point(dat)delta_grid是偏移量的扫描范围范围越宽越能覆盖极端情形obs_rate是从未发生伴发事件者估计的基准应答率diff是两组差值。实际项目里假想应答通常由多重填补或基于模型预测得到这里的二值判定是为了把逻辑跑通正式分析要换成完整的填补流程。这个骨架的价值在于它把“结论稳不稳”变成一个可以量化的临界点而不是凭感觉说“敏感性分析结果与主分析一致”。如果临界点落在临床上不可能出现的偏移范围内稳健性就有底气如果临界点很靠近零说明结论对假设极其敏感方案沟通时要主动说明。注意敏感性分析的数量不是越多越好。每个分析都要能对应一个明确的假设偏离凑数的分析反而会让评审觉得你没想清楚主估计方法依赖什么。4.3 补充分析的定位有优先级不抢戏补充分析是主估计方法和敏感性分析之外的分析用来更全面地了解治疗效应但在结果解释中的优先级最低。常见的补充分析包括亚组分析、不同分析集下的分析、其他时间点的分析等。优先级低不等于不重要关键是别拿补充分析去救主分析。主分析结论不显著靠某个亚组显著来支撑这种做法在评审里基本过不了。补充分析的正确用法是主分析结论成立补充分析说明它在哪些人群、哪些时点也成立或者解释效应的异质性来源。5. 避坑与排查五个最容易在方案评审时被问住的地方5.1 定义阶段的三个坑坑一把估计目标写成了终点清单。现象是方案里“估计目标”一节列了主要终点、次要终点、探索性终点各是什么但没有人群、治疗、伴发事件和汇总方式。原因是把估计目标理解成了“目标”两个字的字面意思。解决办法是套用四段式模板每个估计目标都必须五属性齐全少一个属性就不算定义完成。写完后自查一句这段话能不能让人在不看其他章节的情况下独立判断我在估计什么。坑二把伴发事件当成方案违背来管。现象是方案里把“启用补救治疗”写进方案违背清单然后在缺失数据处理里再提一次。原因是混淆了“需要避免的执行偏差”和“需要在设计中考虑的自然事件”。解决办法是先按三条件判定它是不是伴发事件是的话就进伴发事件汇总表并指定策略方案违背清单里只保留真正属于执行偏差的条目。这两类事件的记录字段、上报流程、分析处理都不一样混着管必然出问题。坑三假想策略的假想说了一半。现象是方案写“假想受试者未使用下一线治疗”但没说是哪种假想。原因是不清楚假想策略必须给出具体的临床情景。解决办法是把假想拆到可操作的程度假想“无法获得下一线治疗”和假想“临床状态良好无需使用”对应的填补人群和模型可能完全不同前者要参照未使用者的结局后者可能要参照疗效良好者的结局。说不清假想情景敏感性分析就没有靶子。5.2 实施与文档阶段的两个坑坑四伴发事件汇总表和正文口径不一致。现象是方案正文说补救治疗用假想策略汇总表里写的是疗法策略SAP 里又是第三种写法。原因是汇总表是后补的正文改过但表没同步。解决办法是把汇总表当作唯一权威来源正文和 SAP 里凡涉及策略的表述都从这张表引用任何一次修改都从表开始改再往下游同步。项目里我一般会把这张表放在方案和 SAP 的开头附近评审一翻就能看到。坑五敏感性分析一次改了多个假设。现象是敏感性分析结果和主分析差异很大但说不清是哪个假设导致的只能说“结果对假设敏感”。原因是一个分析里同时换了填补模型和统计模型。解决办法是按假设维度拆分成多个敏感性分析每个只动一个变量结果有差异时才能定位到具体假设。拆完之后如果分析数量太多就按假设的重要性排序保留最关键的几个在 SAP 里说明取舍理由。6. 验收与答辩用一张检查表把估计目标从头到尾过一遍方案写完到提交之间留出半小时按下面这张表逐项走一遍能挡掉大部分返工。检查项通过标准常见不通过表现临床问题一句话能问出来且是问句写成“评估某药的疗效”五属性每个主要估计目标都五属性齐全缺群体层面汇总伴发事件判定每条都满足三条件和方案违背分开把漏服也算伴发事件策略与理由每种策略都写了为什么选它只写策略不写理由汇总表一致性方案、SAP、正文三处口径一致表和正文对不上缺失处理不同伴发事件导致的缺失分开写一句“多重填补”带过敏感性分析一次只动一个假设有明确靶子同时改多个假设补充分析定位明确写出优先级低于主分析用补充分析救主结论走完表还不够最好再找一个没参与写方案的人只看估计目标那一节问他两个问题这个试验想回答什么如果受试者中途用了补救药你的分析怎么处理如果对方能在不翻其他章节的情况下答出来说明定义是清楚的如果他要追问“你说的补救药算不算在治疗里”那就是策略没写透。答辩场景下的技巧也类似。评审提问往往集中在伴发事件处理策略的选择依据上与其逐条背诵五种策略的定义不如准备一个本项目的具体场景某类受试者发生了某个事件用疗法策略会得到什么结论用假想策略会得到什么结论为什么最终选后者。把两种策略下的估计值差异摆出来比任何理论解释都有说服力。我自己的血泪经验是估计目标这一节写得再细只要汇总表和正文对不上评审第一眼就会抓住这个矛盾然后整份方案的可信度都要打折。从那以后我每次改方案都强制先改汇总表再由表往正文和 SAP 里同步最后拿检查表从头过一遍。这套动作花不了多少时间但能省掉后面好几轮来回。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站