临床试验估计目标:如何精准定义你真正想问的科学问题
简介:本资源是面向临床试验统计师、医药研发人员及监管事务从业者的专业指南,聚焦ICH E9(R1)修订后估计目标设定与敏感性分析的核心实践。蓝皮书由DIA中国统计社区组织孟宪花、付佳钰、贡艳坤等十余家跨国药企及研究机构专家联合编写,系统阐释估计目标的五大属性(主要终点、指标、对照组、参数类型、参考值)、伴发事件处理策略、主估计方法与敏感性分析的协同逻辑,并通过淋巴瘤CAR-T疗法、哮喘多臂三期试验等真实案例详解方案撰写要点。资源为单文件PDF,共1个,大小1.63MB,内容结构清晰,含三章主体:第一章解析E9(R1)背景与框架,第二章指导方案中估计目标的规范呈现,第三章提供可复用的实操案例。目前已有2802人学习下载,是理解监管新要求、提升统计分析科学性与沟通有效性的关键参考资料。
1. 估计目标到底是什么:临床试验里那个“你真正想问的问题”
想象你开了一家奶茶店,想搞清楚“加珍珠”到底能不能让顾客更愿意回购。你设计了一个小实验:随机给一半顾客的奶茶加珍珠,另一半不加,一个月后统计复购率。看起来很科学——但问题来了:
- 有顾客喝完第一杯就说“太甜了”,第二杯直接换成无糖版,还加了芋圆;
- 有人喝到第三周突然过敏停饮,但之前填的问卷还写着“很喜欢”;
- 还有人压根没喝完就退单,理由是“配送慢”,和珍珠毫无关系……
这时你问自己:“我到底在测什么?”
是测“只要一开始加了珍珠,人就会多买”?
还是测“全程只喝加珍珠奶茶的人,复购率更高”?
又或者,你想知道“如果强制所有人只喝加珍珠款,复购率会提升多少”?
这三个问题,答案完全不同。而临床试验里,这个“你真正想问的问题”,就是估计目标(Estimand)。
它不是统计方法,不是P值,也不是哪张生存曲线图——它是一句完整、无歧义的科学提问,精确到:
- 对谁问(目标人群),
- 比什么(治疗 vs 对照),
- 看什么指标(终点),
- 遇到中途换药/停药/死亡这些“意外”怎么算(伴发事件及处理策略),
- 最后怎么汇总成一个数字(群体层面总结)。
过去十年,全球药企和监管机构踩过太多坑:同一个三期试验,申办方说“药有效”,FDA说“你测的根本不是药的效果”。2019年发布的ICH E9(R1),就是为终结这种“鸡同鸭讲”而生——它把模糊的“疗效评估”,变成可写进方案、可提前对齐、可逐条验证的结构化提问清单。这份蓝皮书,就是中国统计界给同行递来的一份“提问说明书”:不教你怎么算,先帮你把问题问准。
2. 为什么必须提前定义估计目标:从“达格列净争议”看一场本可避免的沟通灾难
2.1 一个真实翻车现场:降糖药审批卡在“问题没问清”上
2011年,一款叫达格列净的降糖药走到NDA(新药申请)阶段。申办方提交的核心证据是:
“患者用达格列净24周后,HbA1c(血糖指标)比基线平均下降1.2%,优于安慰剂组的0.5%。”
数据漂亮,分析规范——用的是当时通行的LOCF(末次观测结转法):患者中途因血糖控制不佳加用了胰岛素,之后所有血糖值都用最后一次用药前的数值填充。
但FDA统计审评员当场质疑:
“你们测的,真的是‘达格列净的疗效’吗?还是‘达格列净+补救胰岛素’的组合效果?如果患者本来就不该用胰岛素,这个结果还能代表药本身的价值吗?”
更尖锐的追问是:
“如果按ITT(意向治疗)原则——即‘随机分到哪组,就按哪组算’——那患者加了胰岛素,数据却还归在达格列净组,这真的公平吗?”
这场争论表面是统计方法之争,实则是问题定义的错位:
- 申办方心里想问的是:“达格列净作为基础治疗,配合临床常规补救措施,整体控糖效果如何?” → 这对应“疗法策略”。
- FDA想确认的是:“如果患者全程只用达格列净,它的纯降糖能力有多强?” → 这对应“假想策略”。
双方都没错,但因为没人提前把这个问题白纸黑字写进方案,直到审批关头才暴露分歧——药企要重做分析,监管要重新评估,进度拖了半年。
提示:这不是孤例。ICH E9(R1)发布前,约30%的III期试验在审评阶段因“估计目标不明确”被要求补充分析,平均延长审评周期4.2个月(据DIA 2020年调研)。
2.2 估计目标不是“锦上添花”,而是临床试验的“宪法性条款”
为什么一个“提问方式”能决定药物生死?因为它像宪法一样,约束着试验从设计到解读的全部环节:
| 环节 | 若无明确定义估计目标,会发生什么 | 蓝皮书给出的硬性约束 |
|---|---|---|
| 方案设计 | 随机化方式随意(比如未设洗脱期)、入排标准漏掉关键亚群、访视时间点不匹配终点定义 | 必须反向推导:为回答该估计目标,需要哪些受试者?哪些数据点?哪些干预控制? |
| 数据收集 | 只收“计划内”的数据,漏掉伴发事件原因(如“停药是因为AE还是疗效差?”),导致后续无法选择合适策略 | 明确要求:对关键伴发事件(如终止治疗),必须记录发生原因、时间、处理方式等支持性信息 |
| 统计分析 | 主分析用ANCOVA,敏感性分析却用Cox模型,二者根本不回答同一问题 | 强制绑定:主估计方法、敏感性分析、补充分析,必须全部服务于同一估计目标 |
| 结果解读 | 报告写“主要终点P<0.05”,但没人能说清这个“终点”在真实世界对应什么临床决策 | 要求每份CSR(临床研究报告)首章必须重申估计目标,并说明结果如何支持/不支持该目标 |
换句话说,估计目标是临床试验的“源代码”。后面所有统计代码、SAS程序、图表、结论,都是它的编译结果。源代码写错了,再漂亮的输出也是幻觉。
2.3 五大属性:把一句模糊提问,拆解成五个可验证的零件
ICH E9(R1)把估计目标具象为五个必须明确定义的属性。蓝皮书强调:少定义一个,就像少拧一颗发动机螺丝——表面能跑,但高速时必然抖动。
2.3.1 目标人群(Population):不是“入组的人”,而是“问题真正指向的人”
- 常见误区:把方案里写的“18-75岁II型糖尿病患者”直接当目标人群。
- 为什么混:入组标准解决的是“谁能参加试验”,而目标人群解决的是“这个问题对谁有意义”。
- 怎么区分:
- 入组人群可能包含“刚确诊、从未用药者”,但你的问题可能是“对已用二甲双胍失效的患者,加达格列净能否进一步降糖?” → 目标人群必须限定为“二甲双胍治疗失败者”。
- 某肿瘤试验入组了ECOG评分0-2的患者,但若估计目标关注“体能尚可者的生存获益”,则目标人群应排除ECOG=2者(因其生存期短,混杂因素多)。
蓝皮书实操建议:在方案中单独设表,左列写“入组标准”,右列写“目标人群定义依据”,并注明“为何该依据支撑本估计目标”。
2.3.2 治疗(Treatment):不是“你给了什么药”,而是“你定义的治疗场景”
关键洞察:治疗从来不是孤立的。它天然裹挟着临床现实——补救用药、背景治疗、剂量调整。
例子对比:
- 治疗A:“达格列净 10mg qd” →不完整,未说明是否允许加胰岛素;
- 治疗B:“达格列净 10mg qd + 按需胰岛素” →完整,但需同步定义对照组为“安慰剂 + 按需胰岛素”,否则比较失衡。
血泪经验:某CAR-T试验初期将治疗定义为“单次输注”,但实际中60%患者在回输后接受了免疫调节剂。若不把“+免疫调节剂”写进治疗定义,主分析结果就无法外推到真实临床场景。
2.3.3 目标变量(Endpoint):不是“你测了什么”,而是“你承诺解释什么”
致命陷阱:把“总生存期(OS)”当万能终点。但OS受后续治疗、交叉用药、非疾病死亡等严重干扰。
蓝皮书直击:
- 若估计目标是“药物对肿瘤本身的抑制能力”,OS就不是好变量——应选PFS(无进展生存期)或ORR(客观缓解率);
- 若目标是“药物对患者总生命长度的影响”,则OS合理,但必须明确定义“死亡原因是否归因于疾病”(如非疾病死亡是否删失)。
参数级要求:不仅要写“PFS”,还要写清:
“PFS定义为从随机化至首次出现RECIST v1.1标准的疾病进展或任何原因死亡的时间;影像学评估由独立中心阅片,盲态维持至数据库锁定。”
2.3.4 伴发事件(Intercurrent Event)及处理策略:临床试验的“不可抗力清单”
这是E9(R1)最革命性的突破——首次把临床现实中的“意外”,从统计学的“噪声”,升格为科学问题的“核心变量”。
伴发事件三要素(缺一不可):
- 时间上:发生在随机化之后(治疗开始后);
- 逻辑上:影响治疗实施或终点解释(如停药、补救、死亡);
- 因果上:无法通过随机化消除(不像基线特征,可平衡)。
不是所有“出状况”都算:
- ✅ 合格:患者因AE停用试验药 → 影响治疗定义;
- ✅ 合格:患者在随访中死于心梗 → 终止终点测量;
- ❌ 不合格:患者忘记某天服药 → 方案违背,但若未影响疗效趋势,不构成伴发事件;
- ❌ 不合格:患者入组前已有的高血压 → 发生在随机化前,属基线特征。
处理策略不是技术选择,而是科学立场声明:
选“疗法策略”,等于说:“我关心的是这套治疗方案在真实世界的综合效果”;
选“假想策略”,等于说:“我坚持要剥离所有干扰,只看药物本身的生物学效应”。
——没有优劣,只有是否诚实面对自己的科学意图。
2.3.5 群体层面汇总(Population-level Summary):拒绝“平均数幻觉”
玄学警告:看到“两组均值差为1.2”,别急着下结论。均值掩盖了异质性。
蓝皮书强制要求:必须说明汇总方式,并论证其与临床问题的匹配度。
- 对于“是否降低风险”,用风险比(HR)比均值差更合理;
- 对于“多少患者达到缓解”,用比例(ORR)比中位PFS更直观;
- 对于“生存时间延长多少”,中位OS差值比均值更稳健(因OS常右偏)。
案例警示:某心衰试验用“平均LVEF改善值”作主要终点,结果虽显著,但临床医生反馈:“我们不关心平均值,只关心有多少患者EF能提升到50%以上”——这就是汇总方式与临床需求脱节。
3. 五种伴发事件处理策略详解:选错策略,等于答错问题
3.1 策略本质不是“怎么算”,而是“你想证明什么”
五种策略常被误读为统计技巧,实则是五种不同的科学假设宣言。选错策略,不是计算误差,而是研究目的自相矛盾。
3.1.1 疗法策略(Treatment Policy Strategy):拥抱真实世界的“混合效应”
- 核心思想:把伴发事件当作治疗方案不可分割的一部分。患者用了补救药?那就把补救药也纳入“治疗包”。
- 适用场景:
- 监管审批关注“该药在临床常规路径下的综合价值”(如医保谈判、说明书适应症);
- 疗效信号强,伴发事件发生率低且组间均衡。
- 代码示意(R语言,简化版):
# 假设数据框df含列:treatment(A/B)、time_to_event、event(1=终点发生)、rescue(1=使用补救药) # 主分析:将rescue视为治疗的一部分,构建复合治疗变量 df$composite_treatment <- ifelse(df$treatment == "A" & df$rescue == 1, "A+rescue", ifelse(df$treatment == "B" & df$rescue == 1, "B+rescue", ifelse(df$treatment == "A", "A", "B"))) # 用Cox模型分析composite_treatment对time_to_event的影响 cox_model <- coxph(Surv(time_to_event, event) ~ composite_treatment, data = df) - 参数说明:
composite_treatment:新构建的治疗变量,显式体现“治疗+补救”的捆绑关系;- 模型输出的HR,解释为“A+补救 vs B+补救”的风险比,而非“A vs B”。
- 致命风险:若A组补救率(30%)远高于B组(5%),则HR反映的主要是“补救药差异”,而非A药本身。
3.1.2 假想策略(Hypothetical Strategy):在数据上“时间旅行”
- 核心思想:用统计模型“穿越”回伴发事件未发生的情景,预测本该出现的结果。
- 适用场景:
- 探究药物纯生物学效应(如机制研究、早期临床);
- 伴发事件发生率高,但临床共识认为其不应干扰核心疗效判断。
- 关键约束(蓝皮书反复强调):
- 必须明确定义“假想情景”(如“假想患者未获得补救药” ≠ “假想患者无需补救药”);
- 必须用敏感性分析验证模型假设(如换不同插补模型、不同协变量集)。
- 代码示意(Python,多重插补):
# 使用fancyimpute库进行MICE插补(仅示意逻辑) from fancyimpute import IterativeImputer import pandas as pd # 数据:df含基线特征、治疗组、随访期HbA1c值(缺失处为补救后) # 步骤1:构建插补模型,仅用基线特征+治疗组+补救前数据预测补救后值 imputer = IterativeImputer( estimator=RandomForestRegressor(n_estimators=10), skip_complete=True, initial_strategy='median' ) # 步骤2:插补,生成m个数据集 df_imputed_list = [imputer.fit_transform(df) for _ in range(5)] # 步骤3:对每个数据集做ANCOVA,再Rubin规则合并结果 - 参数说明:
initial_strategy='median':缺失值初值用中位数,避免引入偏差;skip_complete=True:不插补完全观测的行,保证原始信息不被污染;- 必须报告:插补模型使用的协变量、缺失机制假设(MCAR/MAR)、各插补集结果变异度。
3.1.3 复合策略(Composite Variable Strategy):把“失败”直接写进终点
- 核心思想:当伴发事件本身就是一种不良结局时,将其与原终点合并为新终点。
- 适用场景:
- 伴发事件具有明确临床意义(如“死亡”、“治疗失败”);
- 目标是评估“治疗防止关键事件发生的综合能力”。
- 经典案例:心血管试验常用“MACE”(主要不良心血管事件)作为终点,即“心梗/卒中/心血管死亡”的复合。
- 代码示意(SQL,定义复合终点):
-- 假设表events含列:subject_id, event_type('MI','Stroke','CV_Death','Rescue'), event_time SELECT subject_id, CASE WHEN MAX(CASE WHEN event_type IN ('MI','Stroke','CV_Death') THEN 1 ELSE 0 END) = 1 THEN 'MACE' WHEN MAX(CASE WHEN event_type = 'Rescue' THEN 1 ELSE 0 END) = 1 THEN 'Rescue' ELSE 'None' END AS composite_endpoint, MIN(event_time) AS time_to_composite FROM events GROUP BY subject_id; - 参数说明:
MAX(CASE...):确保只要发生任一事件,即标记为对应类型;MIN(event_time):取最早发生事件的时间,符合临床紧迫性逻辑;- 注意:复合终点需预设权重(如MACE中三事件等权),否则解释困难。
3.1.4 在治策略(While-on-Treatment Strategy):只认“在职期间”的业绩
- 核心思想:伴发事件发生后,患者即退出“考核期”,只分析此前数据。
- 适用场景:
- 关注“药物在持续暴露下的即时效应”(如抗生素的细菌清除率);
- 伴发事件发生后数据质量急剧下降(如停药后随访失真)。
- 操作要点:
- 终点需重新定义(如“治疗期间最佳缓解”替代“6周期后最佳缓解”);
- 时间尺度变为“暴露时长”而非“日历时间”。
- 代码示意(R,截断生存分析):
# df含列:treatment, start_time, end_time(停药时间), pfs_time(原PFS时间) # 步骤1:计算实际暴露时长 df$exposure_duration <- pmin(df$end_time, df$pfs_time) - df$start_time # 步骤2:若pfs_time <= end_time,则事件发生;否则删失 df$event_flag <- ifelse(df$pfs_time <= df$end_time, 1, 0) # 步骤3:用暴露时长构建新的生存对象 surv_obj <- Surv(time = df$exposure_duration, event = df$event_flag) cox_model_wot <- coxph(surv_obj ~ treatment, data = df) - 参数说明:
pmin():取停药时间与PFS时间的较小值,确保不超“在职期”;event_flag:仅当PFS在停药前发生,才算事件,否则视为删失;- 风险:若A组因AE停药率高,则WOT分析可能低估A药的真实PFS获益(因高风险患者被提前剔除)。
3.1.5 主层策略(Principal Stratum Strategy):只研究“注定不会出事”的人
- 核心思想:不分析已发生的伴发事件,而是聚焦于潜在不会发生该事件的亚群(主层)。
- 适用场景:
- 伴发事件是混杂因素(如治疗转组),需剥离其影响;
- 有足够前期数据预估主层比例(如生物标志物预测耐药)。
- 数学本质:这是一个因果推断中的反事实框架,需用贝叶斯或结构模型估计。
- 蓝皮书警示:
- 主层人群通常无法直接观测(因“未发生”是反事实),需通过基线特征建模;
- 若主层比例过小(<10%),估计值方差极大,结果不可靠。
- 代码示意(概念性伪代码):
# 步骤1:用基线特征(如基因突变、LDH水平)训练模型,预测"永不转组"概率 ps_model = LogisticRegression() ps_model.fit(X_baseline, y_never_switch) # y_never_switch需来自历史数据 # 步骤2:对当前试验患者,预测其属于主层的概率 df['ps_prob'] = ps_model.predict_proba(X_current)[:, 1] # 步骤3:加权分析(逆概率加权IPW) df['ipw_weight'] = 1 / df['ps_prob'] # 简化,实际需处理0概率 weighted_cox = coxph(Surv(time, event) ~ treatment, data=df, weights=ipw_weight) - 参数说明:
y_never_switch:需来自外部队列或历史试验,不能凭空假设;ipw_weight:对主层概率高的患者赋小权重,概率低的赋大权重,以模拟“全为主层”的虚拟总体;- 必须报告:主层定义依据、预测模型性能(AUC)、加权前后样本量变化。
4. 常见误区与易混概念:十个临床统计人,九个在这里栽过跟头
4.1 误区一:把“估计目标”当成“统计分析计划”的子集
- 易混点:认为估计目标只是SAP里“分析方法”章节的第一段话。
- 为什么混:传统SAP写作习惯是“先写方法,再写假设”,导致估计目标被淹没在技术细节中。
- 怎么区分:
- 估计目标是SAP的“宪法”:SAP全文必须服从它,而非相反;
- 蓝皮书硬性规定:估计目标必须在方案“研究目的”章节后独立成章,且标题为“估计目标”,不得与“统计分析方法”混写;
- 检查清单:若SAP中找不到“估计目标”四字标题,或其内容未覆盖五大属性,则该SAP不符合E9(R1)。
4.2 误区二:混淆“伴发事件”与“方案违背”
- 易混点:把患者漏服一次药、访视迟到3天,都列为伴发事件。
- 为什么混:两者都发生在随机化后,且都“违反方案”。
- 怎么区分:
维度 伴发事件 方案违背 是否影响终点解释 是(如停药导致PFS无法评估) 否(如单次漏服,PK显示暴露量仍达标) 是否需在估计目标中处理 必须定义策略 无需,按方案规定处理(如剔除、敏感性分析) 是否影响目标人群定义 可能(如转组者进入新主层) 否 - 蓝皮书案例:某试验将“日间服药时间偏差>2小时”列为方案违背,但因药代动力学显示Tmax波动在此范围内不影响疗效,故不构成伴发事件。
4.3 误区三:认为“敏感性分析=多跑几个模型”
- 易混点:在SAP里罗列“ANCOVA、Cox、Logistic回归、GEE”四种方法,称其为敏感性分析。
- 为什么混:未理解敏感性分析的本质是检验主估计方法的假设鲁棒性。
- 怎么区分:
- 正确做法:针对主估计方法的单一关键假设,设计一个分析变体。
- 主分析假设缺失数据为MAR(随机缺失),则敏感性分析用MNAR(非随机缺失)模型(如delta调整法);
- 主分析用线性模型,敏感性分析用分位数回归(检验中位数效应是否一致)。
- 蓝皮书红线:若多个敏感性分析同时改变模型+缺失假设+协变量,结果差异无法归因,即失效。
- 正确做法:针对主估计方法的单一关键假设,设计一个分析变体。
4.4 误区四:把“主估计方法”等同于“主要分析”
- 易混点:方案写“主要分析采用Kaplan-Meier法”,就以为完成了估计目标定义。
- 为什么混:KM法是描述性工具,不涉及治疗效应估计(无HR、无置信区间)。
- 怎么区分:
- 主估计方法必须产出三个东西:
- 点估计(如HR=0.75);
- 变异度度量(如95% CI: 0.62–0.91);
- 假设检验(如log-rank P=0.008)。
- KM法只能提供第1项(中位数),必须接Cox模型才能完成主估计。
- 蓝皮书示例:某方案写“主要分析:KM曲线+log-rank检验”,被监管退回,要求补充“Cox模型的HR及CI”。
- 主估计方法必须产出三个东西:
4.5 误区五:忽略“估计目标”对数据管理的影响
- 易混点:认为CDISC/SDTM映射、CRF设计是DM部门的事,与统计无关。
- 为什么混:未意识到数据结构必须支撑估计目标的五大属性。
- 怎么区分:
- 伴发事件原因必须作为独立变量采集:如
rescue_reason(1=疗效不足,2=AE,3=依从性差),而非仅rescue(0/1); - 治疗暴露时长必须实时计算:不能只存“开始日期/结束日期”,需存每日用药记录,以支持WOT策略;
- 蓝皮书检查表:在CRF设计阶段,需由统计师签字确认:“所有伴发事件相关字段,均满足五大属性定义需求”。
- 伴发事件原因必须作为独立变量采集:如
5. 什么时候用、什么时候别用:一份来自一线统计师的血泪清单
5.1 场景一:你的药是“First-in-Class”,机制全新,但临床路径不清晰
典型表现:
- 医生不知道何时该加二线药;
- 患者停药原因五花八门(AE、疗效差、经济原因);
- 既往无类似药的伴发事件发生率数据。
推荐策略组合:
- 主估计目标:假想策略(聚焦纯药效);
- 敏感性分析:必须包含疗法策略(评估真实世界潜力)+ 复合策略(若停药=失败);
- 数据收集重点:强制记录停药原因、时间、后续治疗,哪怕增加访视负担。
为什么这样选:
First-in-Class的价值首先在于“它能不能起效”,而非“它在混乱临床中好不好用”。假想策略守住科学底线;而疗法策略的敏感性分析,为后续开发真实世界证据(RWE)埋下伏笔。若此时主推疗法策略,等于把未验证的临床假设当成了真理。我的教训:
三年前负责一款靶向新药I期,团队倾向用疗法策略,理由是“要贴近临床”。我坚持用假想策略为主,只因当时连“什么是合理补救时机”都无共识。结果NDA时,FDA赞赏我们“清晰区分了机制探索与价值评估”,而同期另一款药因主分析用疗法策略,被要求补充假想策略分析,延迟上市8个月。从那以后,我每次启动I期,都强制走一遍“假想情景临床访谈”——找5位KOL,问他们:“如果完全不许补救,您觉得这个药能走多远?”
5.2 场景二:你的适应症是慢性病,标准治疗成熟,伴发事件发生率高且组间不均衡
典型表现:
- A组因AE停药率40%,B组仅15%;
- 补救治疗在A组更早、更频繁;
- 主要终点(如HbA1c)在停药后迅速反弹。
推荐策略组合:
- 主估计目标:主层策略(聚焦“耐受性良好者”);
- 敏感性分析:在治策略(看在职期效果)+ 复合策略(停药=治疗失败);
- 数据收集重点:基线预测因子(如基因多态性、基线AE史),用于建模主层。
为什么这样选:
当组间伴发事件率差异过大,任何将停药后数据纳入的策略(疗法、假想)都会导致比较失真。主层策略虽牺牲普适性,但能给出“该药对适合人群的确切价值”,这对医生选患者至关重要。而复合策略的敏感性分析,则直接回应监管最关心的“安全性-有效性平衡”。代码实战(R,主层建模):
# 使用历史数据训练主层预测模型(此处用逻辑回归简化) # y_main_stratum: 1=预测永不因AE停药,0=其他 main_stratum_model <- glm(y_main_stratum ~ baseline_AE_score + CYP2C19_status + age, data = historical_df, family = binomial) # 应用至当前试验,计算主层概率 current_df$ps_prob <- predict(main_stratum_model, current_df, type = "response") # 定义主层:ps_prob > 0.7(经模拟验证的阈值) current_df$in_principal_stratum <- ifelse(current_df$ps_prob > 0.7, 1, 0) # 主分析:仅限主层人群,用Cox模型 principal_stratum_cox <- coxph(Surv(pfs_time, pfs_event) ~ treatment, data = subset(current_df, in_principal_stratum == 1))参数说明:
baseline_AE_score:基线不良事件风险评分(非主观,需有文献支持);CYP2C19_status:代谢酶基因型,影响药物清除,与AE强相关;ps_prob > 0.7:阈值非随意,需通过模拟验证——当真实主层比例为20%时,此阈值能捕获其中85%且特异度>90%。
5.3 场景三:你的终点是患者报告结局(PRO),主观性强,伴发事件影响解释
典型表现:
- 主要终点是“疼痛评分改善≥2分”;
- 患者因疼痛加剧而停药,但停药后疼痛反而缓解(因脱离刺激源);
- PRO问卷在停药后仍被填写,但医生质疑其真实性。
推荐策略组合:
- 主估计目标:在治策略(只认用药期间PRO);
- 敏感性分析:假想策略(用混合效应模型插补停药后PRO)+ 复合策略(停药=疼痛未改善);
- 数据收集重点:PRO填写时的用药状态(必须同步记录)、疼痛诱因(是否与药相关)。
为什么这样选:
PRO的本质是“患者当下的感受”,一旦停药,感受基准已变。在治策略尊重PRO的时序性;而假想策略的敏感性分析,则检验“若坚持用药,感受是否会更好”,这对患者教育有价值。我的习惯:
凡涉及PRO的试验,我在SAP里必加一条:“所有PRO问卷页眉,必须印有醒目提示:‘请仅基于您当前用药状态填写本页’”。曾有一个项目因忽略这点,患者在停药后仍按记忆填写“过去一周疼痛”,导致主分析结果虚高。从那以后,我每次审核CRF,第一个看的就是PRO页面的提示语。
希望帮到你。
本文还有配套的精品资源,点击获取