🎯 目标试验模拟:先写想做的试验,再看数据够不够
它回答什么
目标试验模拟(target trial emulation,TTE;常被称为“目标实验模拟”)先明确假想随机试验,再用观察性数据尝试模拟协议。它是一套设计框架,PSM、IPW、g-formula 等是可能的估计工具。它不会让数据自动具备随机性,也不意味着所有研究都要做克隆。参见 Hernán 等的方法论文。
教学问题:对符合条件且既往未接受两方案的高血压患者,开始数字随访相较开始常规随访,12个月血压控制率如何变化?这只是设计示例,不代表真实干预效果。
先交付一张协议对应表
| 要素 | 目标试验 | 数据中的模拟 |
|---|---|---|
| 纳入标准 | 何人、何时符合资格 | 可观测病史、年龄、排除条件与回溯窗 |
| 策略 | 具体方案、剂量/频率、持续或开始策略 | 处方/服务记录对应的操作定义 |
| 分配 | 随机分配 | 基于基线混杂变量的条件可交换性假设 |
| 随访 | 统一起点、终止与删失规则 | time zero 与记录覆盖、死亡、失访 |
| 结局 | 事件定义、评估时点 | 编码、测量窗、复核与缺失处理 |
| 因果对比 | 开始策略或持续依从策略;风险差/风险比等 | 可识别的 estimand 和目标人群 |
| 分析 | ITT/依从策略分析及推断 | 标准化、IPW、纵向g方法与敏感性分析 |
关键检查:资格满足、策略分配与随访开始必须对齐。 不可根据随访后“坚持用药6个月”定义基线治疗组,再从最初入院开始计时,那会引入不死时间偏倚。
选择分析路线
- 基线开始策略:新使用者、主动对照通常更利于明确比较;洗脱期取决于数据与临床,不设通用固定天数。解释为“开始某策略”的类 ITT 对比时,说明观察数据没有真实随机分配。
- 随访中持续策略:若混杂变量随时间变化且受既往治疗影响,普通时间变化协变量回归可能不够,考虑边际结构模型、参数g-formula等。
- 宽限期/动态策略:同一个人初期可能兼容多个策略,可考虑 clone–censor–weight:克隆至兼容策略、偏离时人工删失、按删失机制加权。保留原始人ID处理克隆相关;不能直接把克隆当独立个体。
- 多个入组机会:可考虑序贯试验模拟;写明每次资格判断、重复贡献及个体层面的推断方式。
最低数据清单
需要个体ID、资格日期、既往病史与治疗、干预/对照开始日、基线混杂、结局发生日或固定时点结局、死亡/失访时间。若缺少开始日期、基线窗口或关键混杂,先说明不可识别之处;“样本很大”不能弥补时间顺序与变量缺口。更详细的数据约束示例见 EHR实施框架。
R:固定12个月结局的教学估计
以下先模拟完整随访数据,再估计 ATE。代码没有失访、竞争风险和宽限期;只演示基线 IPTW 的一个模块,不是完整 CCW。
set.seed(20261023)
n <- 2000
d <- data.frame(age=rnorm(n,65,8), severity=rnorm(n))
d$a <- rbinom(n,1,plogis(-.2+.02*(d$age-65)+.5*d$severity))
d$y <- rbinom(n,1,plogis(-1+.35*d$a+.3*d$severity+.01*(d$age-65)))
psfit <- glm(a~age+severity,binomial(),data=d)
d$ps <- predict(psfit,type="response")
stopifnot(all(d$ps>0 & d$ps<1))
p <- mean(d$a)
d$w <- ifelse(d$a==1,p/d$ps,(1-p)/(1-d$ps))
print(quantile(d$w,c(0,.01,.5,.99,1)))
print(with(d, tapply(ps,a,range)))
print(sum(d$w)^2/sum(d$w^2)) # 总体有效样本量摘要;也应分组检查
library(survey)
des <- svydesign(ids=~1,weights=~w,data=d)
fit <- svyglm(y~a,design=des,family=quasibinomial(link="identity"))
coef(fit)["a"]
confint(fit)["a",]
# 研究分析还需检查加权前后平衡、权重重叠,并按估计流程考虑bootstrap。
* 真实固定时点数据需先明确基线、完整随访和混杂变量
teffects ipw (y) (a age severity, logit), ate
tebalance summarize
如果用截尾权重,预先说明阈值并比较未截尾结果;截尾会改变估计表现,不能仅因显著性更好而选择。结局有删失时需适当处理删失;死亡作为竞争事件时,先界定目标风险,不能默认为普通失访。
输出与报告
保存协议对应表、患者流程图、time-zero时间图、变量字典、平衡图、权重诊断、主要绝对/相对效应、敏感性分析和代码版本。按 TARGET指南 透明报告:指南帮助说明设计,不替代可交换性、正值性和一致性等识别假设。
小心这几个坑 🐾
把“做了PSM”直接写成TTE;用未来信息决定基线入组;混用治疗起始日与入院日;把条件HR当固定时点风险比;对不同估计目标的敏感性模型只比较P值。
可复制请求
先为我的问题写目标试验—数据模拟对应表,逐项核对time zero和变量可得性。明确estimand后再选基线加权、纵向g方法或CCW;输出设计缺口与诊断,不预设数据能够识别目标因果效应。
普贤 · 社医卫管方法库 · 教学参数与代码接口需结合实际数据、软件版本和研究设计核对。