关于 pharmacoepidemiology
pharmacoepidemiology 是一项研究设计技能,用于从理赔数据、EHR 和登记数据等观察性资料估计药物的因果效应。它帮助研究者在编写代码前识别偏倚风险,并选择合理的设计与分析方法。
主要功能
- 01新使用者主动对照设计
- 02目标试验模拟
- 03倾向评分方法选择
- 04混杂与偏倚评估
- 05敏感性分析建议
适用场景
- 01为药物研究选择对照组
- 02检查队列中的不朽时间偏倚
- 03选择匹配、加权或分层方法
- 04评估未测量混杂的影响
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ awslabs/ hcls-agent-skills --skill pharmacoepidemiology安装后在 Claude Code 中输入/pharmacoepidemiology确认已加载。
详细介绍
药物流行病学研究设计
概述
这项技能教会 Agent 如何 思考 药物流行病学研究设计——这门学科旨在利用非随机真实世界数据(理赔数据、EHR、登记数据)估计药物的因果效应。核心挑战在于混杂:接受药物 A 的患者与接受药物 B 的患者存在系统性差异,简单比较会把治疗效应与选择效应混为一谈。
设计完善的药物流行病学研究会通过三大支柱来应对这一问题:(1)采用新使用者主动对照设计,使时间零点保持一致,并减少适应证混杂;(2)采用倾向评分方法或目标试验模拟,平衡已测量的混杂因素;(3)开展敏感性分析,探查未测量混杂的影响。
在编写分析代码之前,可使用这项技能审查研究设计、识别偏倚来源,并引导用户开展站得住脚的因果推断。
用法
当用户遇到以下情况时,调用这项技能:
- 想用观察性数据估计药物对临床结局的影响。
- 询问如何为药物安全性或有效性研究选择对照组。
- 需要在倾向评分匹配、加权或分层之间做出选择。
- 描述的队列设计可能存在不死时间偏倚。
- 询问目标试验模拟,或如何将观察性数据映射到假设的 RCT。
- 存在时变治疗或混杂因素,需要边际结构模型。
- 想评估对未测量混杂的敏感性(E-value、阴性对照)。
- 正在审阅或批评已发表的药物流行病学研究。
Agent 应按以下步骤回应:
- 明确因果问题——治疗是什么、对照是什么、结局是什么、研究人群是什么、时间范围是什么。
- 检查研究设计——是否为新使用者设计?对照是否为主动对照?时间零点是否一致?
- 识别偏倚风险——不死时间、适应证混杂、现使用者偏倚、时变混杂。
- 推荐倾向评分方法——根据研究背景选择匹配、IPTW 或分层。
- 指定敏感性分析——E-value、阴性对照、定量偏倚分析。
回复格式
- 先给出直接建议或分类(≤3 句话)
- 按以下顺序组织:建议 → 依据(引用具体标准/阈值)→ 注意事项
- 比较内容使用表格;标准列表使用项目符号
- 省略用户已了解的背景信息——用户已经提出了具体问题
- 目标篇幅:200–400 词,除非用户要求详尽说明 这项技能中的决策树和框架仅供内部推理使用。运用它们得出结论,但不要在回复中复述。只呈现最终建议及其支持证据。
核心概念
1. 新使用者(初次使用者)设计
现代药物流行病学的基础。每项研究都应从这里开始。
规则:
- 索引日期 = 经过干净的洗脱期后,首次配发(或首次开具处方)研究药物的日期。
- 洗脱期:要求连续参保 180–365 天,且期间未配发研究药物。这可以排除现使用者,因为他们可能已经经历过早期事件或副作用。
- 排除现使用者。 在进入队列时已使用该药物的患者属于有偏倚的存活者人群——他们能够耐受该药物足够长时间,因而仍在使用。将他们纳入会引入易感者耗竭偏倚。
- 基线协变量应在索引日期之前测量。 索引日期之后的任何信息都不得纳入倾向评分模型。
- 随访从索引日期开始。 时间零点是开始治疗的时刻,而不是更早的资格判定日期。
为什么现患使用者很危险
| 问题 | 机制 |
|---|---|
| 易感者耗竭 | 早期出现不良事件的患者已经停药,因此不会出现在现患使用者队列中 |
| 基线未定义 | 对现患使用者而言,“基线”测量的协变量实际上是在治疗后测量的 |
| 患病率调整 | 既往用药时长各不相同,使队列成为不同暴露史的混合体 |
2. 活性对照设计
规则:比较药物 A 与药物 B,而不是比较药物 A 与未用药。
将接受治疗的患者与未接受治疗的患者进行比较,会引入严重的适应证混杂——患者接受某种药物的原因与其结局风险相关。采用活性对照(用于相同适应证的另一种药物)可以确保两组患者均有该适应证,从而减少这种偏倚。
决策树:选择对照药物
Start
│
├── Is there another drug for the same indication?
│ ├── Yes → Use it as the active comparator.
│ │ Prefer a drug with similar:
│ │ - Indication (same disease stage/severity)
│ │ - Channeling (similar patient profile)
│ │ - Time trends (used in the same era)
│ └── No → Consider:
│ - Non-pharmacologic standard of care
│ - Delayed/deferred treatment (with careful time-zero alignment)
│ - Document residual confounding by indication as a limitation.
│
├── Multiple candidate comparators available?
│ └── Prefer the one with the most clinical overlap.
│ Run the primary analysis with the best comparator;
│ use others in sensitivity analyses.
│
└── Is the comparator a drug from the same class?
├── Within-class comparison → smaller confounding, but smaller effect sizes.
└── Between-class comparison → larger confounding, but more clinically relevant contrast.
3. 目标试验模拟
将每项观察性研究映射到一个假设的随机试验中。该框架要求明确指定每个设计要素,并揭示隐藏的假设。
| 目标试验组成部分 | 在观察性数据中的具体设定 |
|---|---|
| 资格标准 | 仅使用索引日期之前的数据,在零时点(索引日期)应用纳入/排除标准 |
| 治疗策略 | 开始使用药物 A 与开始使用药物 B(新使用者设计) |
| 治疗分配 | 观察性分配——通过倾向评分或逆概率加权处理 |
| 随访开始时间 | 索引日期(=开始治疗)。两组必须相同 |
| 结局 | 与目标试验中的定义相同;在零时点之后确定 |
| 因果对比 | 意向治疗(无论依从性如何均继续随访)或按方案分析(在停药时删失/加权) |
| 分析计划 | 预先指定;如有可能,应进行注册 |
**关键规则:**如果任何组成部分无法清晰映射,该研究就存在任何统计方法都无法修正的结构性偏倚。最常见的问题是零时点未对齐(见下文的不死时间偏倚)。
4. 不死时间偏倚
不死时间是指从进入队列到开始治疗之间的一段时间,在此期间结局不可能发生(因为如果结局发生,患者就无法被归类为接受治疗)。错误归类这段时间会夸大治疗组的生存率。
产生原因:
- 队列入组时间由诊断确定,但治疗稍后才开始。对于治疗组,这段间隔是“不死”的——患者必须存活足够长的时间才能接受治疗。
- 比较“曾用药者”与“从未用药者”,却未对齐零时点。
解决方案:
| 方法 | 工作原理 | 适用情形 |
|---|---|---|
| 新使用者设计 | 零时点=开始治疗;不存在时间间隔 | 默认方法——从根本上避免该问题 |
| 里程碑分析 | 定义一个固定时间点(例如诊断后 90 天);在该时间点对暴露状态分类;从该时间点开始随访 | 治疗时间不一,且希望采用共同的时间起点时 |
| 时变暴露 | 在 Cox 模型中将治疗建模为时变协变量;治疗前的人时计为未暴露 | 治疗可在任何时间开始,且希望使用全部人时时 |
**规则:**如果研究比较“曾用药者”与“从未用药者”,且随访开始时间早于治疗开始时间,则存在不死时间偏倚。新使用者设计通过构建设计本身消除了该偏倚。
5. 倾向评分方法
倾向评分(PS)是在给定已测量基线协变量的条件下,接受治疗 A(相对于 B)的概率。它将高维协变量空间简化为单一平衡评分。
估计
- 拟合逻辑回归模型:
treatment ~ age + sex + comorbidities + prior_meds + ... - 纳入所有索引日期前可预测治疗、结局或二者的协变量。不要纳入工具变量(只能预测治疗、不能预测结局的变量)——它们会增加方差,却不会减少偏倚。
- 检查重叠性:两组的 PS 分布应有充分重叠。必要时,修剪或截断极端权重。
三种方法
| 方法 | 机制 | 优势 | 局限 |
|---|---|---|---|
| 匹配(1:1,卡钳) | 在卡钳范围内,为每位接受治疗的患者匹配一位最近的未接受治疗患者(通常为 logit-PS 标准差的 0.2 倍) | 直观;易于检查平衡;模拟 RCT | 未匹配的患者会被舍弃 → 样本量和普遍适用性降低 |
| IPTW(逆概率治疗加权) | 为每位患者赋予 1/PS(治疗组)或 1/(1−PS)(对照组)的权重,构建伪总体 | 使用所有患者;估计 ATE;灵活 | 极端权重会使估计不稳定;需要截断权重或使用稳定权重 |
| 分层 | 将 PS 划分为若干分位层(通常为 5–10 层);估计每层内的治疗效应,再汇总 | 简单;透明 | 各层内仍有残余混杂;精确度低于 IPTW |
决策树:选择哪种 PS 方法?
Start
│
├── Is sample size limited or matching feasible?
│ ├── Yes → 1:1 PS matching with caliper = 0.2 × SD(logit-PS).
│ │ Report number matched and unmatched.
│ └── No → Continue.
│
├── Do you need the full sample (e.g., rare outcome)?
│ ├── Yes → IPTW. Use stabilized weights. Truncate at 1st/99th percentile
│ │ if max weight > 10.
│ └── No → Continue.
│
├── Is the goal transparency and simplicity?
│ └── PS stratification (5–10 strata). Report stratum-specific effects.
│
└── Multiple analyses?
└── Use matching as primary, IPTW as sensitivity (or vice versa).
Concordant results strengthen the conclusion.
平衡诊断
PS 调整后,验证协变量平衡:
- 标准化均差(SMD):所有协变量的目标值均为 < 0.1。SMD = |治疗组均值 − 对照组均值| / √((s²_治疗组 + s²_对照组)/2)。
- 方差比:应介于 0.5 和 2.0 之间。
- 可视化:Love 图(调整前后 SMD 的点图)。
- 不要使用 p 值评估平衡——p 值会混淆平衡程度与样本量的影响。
**规则:**如果调整后任何协变量的 SMD > 0.1,则 PS 模型不充分。添加交互项、非线性项或其他协变量,然后重新估计。
6. 混杂调整的协变量选择
将哪些变量纳入倾向评分或结局模型,是一项设计决策,而非由数据驱动的决策。选错会导致估计有偏或效率低下。
协变量纳入规则
- 纳入混杂因素——同时导致治疗和结局的变量。这些是主要关注对象。
- 纳入结局风险因素——可预测结局但不能预测治疗的变量。它们可以降低方差(提高精确度),而不会引入偏倚。
- 排除工具变量——可预测治疗但不能预测结局的变量。纳入这些变量会放大未测量混杂造成的偏倚,并增加方差。
- 排除中介变量——位于治疗与结局之间因果路径上的变量。调整这些变量会阻断你试图估计的部分效应。
- 排除碰撞变量——由治疗和结局(或它们的后代变量)共同导致的变量。对碰撞变量进行条件化会打开一条非因果路径并引入偏倚。
理赔数据中的典型协变量类别
| 类别 | 示例 | 测量窗口 |
|---|---|---|
| 人口统计特征 | 年龄、性别、种族、地区 | 索引日期当日 |
| 合并症 | Charlson/Elixhauser 评分、特定 ICD-10 代码 | 索引日期前 365 天 |
| 合并用药 | 同期用药类别(他汀类、降压药) | 索引日期前 180 天 |
| 医疗服务利用情况 | 住院、急诊就诊、门诊就诊、不同处方医师数量 | 索引日期前 365 天 |
| 疾病严重程度代理指标 | 专科就诊次数、既往操作、实验室检查申请 | 索引日期前 365 天 |
| 衰弱指标 | 使用专业护理机构服务、家庭氧疗、轮椅理赔记录 | 索引日期前 365 天 |
| 日历时间 | 索引日期的年份/季度 | 索引日期当日 |
**规则:**始终纳入医疗服务利用强度的衡量指标。与医疗系统互动更多的患者更有可能接受新药治疗,也更有可能被检测出结局——这是理赔数据中的一个主要混杂因素。
代理变量与健康使用者偏倚
理赔数据缺少生活方式(吸烟、BMI、运动、饮食)的直接测量指标。开始使用预防性药物(例如,他汀类药物、疫苗)的患者往往更健康,也更关注健康。这种健康使用者/健康依从者偏倚可能会让新药看起来具有保护作用,仅仅是因为使用者更健康。可通过以下方式减轻偏倚:
- 将预防性医疗标记(流感疫苗接种、癌症筛查)作为协变量纳入。
- 使用阴性对照结局检测残留的健康使用者偏倚。
- 报告 E-value,以量化未测量的健康使用者混杂需要达到多强的程度。
7. 时变混杂与边际结构模型
当某个混杂因素同时满足以下条件时,标准回归会失效:
- 受先前治疗影响(例如,药物会改变实验室检查值);并且
- 能预测后续治疗和结局。
对这类混杂因素进行调整会阻断部分治疗效应(过度调整);不进行调整则会留下混杂。这就是治疗-混杂因素反馈问题。
解决方案:使用稳定化 IPTW 的边际结构模型(MSM)。
步骤:
- 在每个时间点,根据既往治疗和协变量历史,估计接受实际观察到的治疗的概率(权重的分母)。
- 仅根据既往治疗,估计接受实际观察到的治疗的概率(分子,即稳定化权重)。
- 稳定化权重 = 随时间累积相乘的(分子 / 分母)。
- 使用这些权重拟合加权结局模型(例如,加权汇总 logistic 回归或加权 Cox 模型)。
MSM 规则:
- 稳定化权重的均值应接近 1.0。若不是,则模型设定有误。
- 截断极端权重(例如,截断至第 1 和第 99 百分位数),并报告截断阈值的敏感性分析结果。
- 分母模型必须纳入所有时变混杂因素;分子模型仅纳入基线协变量和既往治疗。
- MSM 估计的是边际(总体平均)因果效应,而非条件因果效应。
8. 未测量混杂的敏感性分析
任何观察性研究都无法排除未测量混杂。应量化其潜在影响。
| 方法 | 作用 | 适用时机 |
|---|---|---|
| E-value | 报告未测量混杂因素需要与治疗和结局分别具有多强的关联(以风险比为尺度),才能解释掉观察到的效应 | 始终报告,并与主要结果一并呈现 |
| 阴性对照结局 | 已知不受治疗影响的结局;若关联不为零,则表明存在残留偏倚 | 纳入 3–5 个阴性对照;若它们显示出关联,则主要结果值得怀疑 |
| 阴性对照暴露 | 已知与结局无关的暴露;检验分析流程能否对其产生零结果 | 有助于验证研究设计 |
| 定量偏倚分析(QBA) | 根据设定的患病率和效应量,正式建模评估假设的未测量混杂因素所产生的影响 | 怀疑存在特定未测量混杂因素时(例如,理赔数据中的吸烟、BMI) |
规则: 每项药物流行病学研究至少应报告 E-value,并纳入至少一项阴性对照分析。
9. 关键设计决策汇总表
| 设计要素 | 推荐做法 | 警示信号 |
|---|---|---|
| 用户类型 | 仅纳入新发(事件)用户 | 未经说明便纳入既往使用者 |
| 对照组 | 活性对照组(适应症相同) | 以非使用者或一般人群作为对照组 |
| 时间零点 | 开始治疗日期 | 诊断日期,且治疗稍后才开始 |
| 洗脱期 | 180–365 天 | 未设置洗脱期或洗脱期 < 90 天 |
| 协变量 | 仅使用索引日前的协变量 | 在 PS 模型中使用索引日后的协变量 |
| PS 平衡 | 所有协变量的 SMD < 0.1 | 未报告平衡情况,或用 p 值代替 SMD |
| 随访 | 从索引日期开始 | 在治疗开始前就开始(不死时间偏倚) |
| 因果对比 | ITT 或符合方案分析(明确说明) | 未定义,或采用按实际治疗分析但未使用删失权重 |
| 敏感性分析 | E-value + 负向对照 | 未对未测量混杂进行敏感性分析 |
10. 观察性数据中的意向治疗与符合方案分析
| 对比 | 实施方式 | 偏倚风险 |
|---|---|---|
| ITT 类比分析 | 从索引日期开始随访,不论依从性或是否转换治疗 | 如果许多患者转换治疗或停止治疗,效应会被稀释 |
| 符合方案类比分析 | 在停止治疗或转换治疗时删失;使用 IPCW(删失逆概率权重)调整信息性删失 | 病情较重的患者停止治疗时,会出现信息性删失 |
**规则:**默认采用 ITT 类比分析,因为它可避免信息性删失。仅当临床问题明确关注持续治疗时,才使用符合方案类比分析,并始终应用 IPCW。
不应使用此技能的情况
- 用于替代预先指定的统计分析计划(需由生物统计学家签字确认)
- 未测量混杂是主要问题,且不存在负向对照
- 个体患者的风险获益决策(属于临床医学范畴,而非流行病学)
何时应向人类专家升级处理
- 研究结果将作为真实世界证据(RWE)提交给监管机构时
- E-value 表明未测量混杂可能足以解释全部效应时
- 目标试验方案需要临床专家参与确定入选标准时
常见错误
-
**错误:**将 prevalent users 纳入研究队列 **正确:**始终要求设置 180–365 天的洗脱期,并将研究对象限定为新启用治疗者 **原因:**易感者耗竭会使结果偏向保护效应
-
**错误:**将药物使用者与未使用者进行比较 **正确:**使用适应证相同的主动对照 **原因:**若没有主动对照,几乎不可能完全调整适应证混杂
-
**错误:**在治疗开始前就启动随访(不死时间偏倚) **正确:**采用新使用者设计(时间零点 = 治疗开始)或里程碑分析 **原因:**治疗组获得了“免费”的生存时间,从而夸大了表面上的获益
-
**错误:**在倾向评分模型中纳入索引日期后的协变量 **正确:**PS 模型仅纳入索引日期前测量的协变量 **原因:**索引日期后的变量可能是中介变量或碰撞变量,从而引入偏倚
-
**错误:**使用 p 值评估 PS 调整后的协变量平衡 **正确:**使用标准化均值差(SMD),阈值设为 < 0.1 **原因:**p 值取决于样本量;即使差异具有实际意义,大样本中也可能显示“平衡”
-
**错误:**忽略极端倾向评分权重 **正确:**将权重截断在第 1/99 百分位数,并报告对截断的敏感性分析结果 **原因:**单个权重为 500 的患者就可能主导整个分析
-
**错误:**在标准 Cox 模型中调整随时间变化的混杂因素 **正确:**当混杂因素受既往治疗影响时,使用带稳定化 IPTW 的边际结构模型 **原因:**存在治疗与混杂因素反馈时,标准调整会阻断部分因果路径
-
**错误:**省略对未测量混杂的敏感性分析 **正确:**始终报告 E 值,并至少进行一项负对照分析 **原因:**索赔数据缺少 BMI、吸烟情况、实验室指标和社会经济细节,这些因素可能造成混杂
-
**错误:**在未定义因果对比的情况下进行“按实际治疗”分析 **正确:**明确指定 ITT 或符合方案估计量,并在符合方案分析中应用删失权重 **原因:**估计量定义含糊会导致结果无法解读
-
**错误:**根据随访期间的累积剂量或“曾经使用”来定义暴露 **正确:**在时间零点定义暴露;不要以未来行为或生存为条件 **原因:**以未来为条件会引入选择偏倚
-
**错误:**忽略正值性假设 **正确:**检查 PS 重叠情况,并修剪其中某种治疗概率接近零的非重叠区域 **原因:**在不存在治疗变异的分层中,PS 方法会失效
-
**错误:**只使用一种 PS 方法而不进行敏感性分析 **正确:**至少运行两种方法(例如,匹配 + IPTW)并比较结果 **原因:**结果不一致表明模型敏感,结论不稳健
-
**错误:**未预先制定分析计划 **正确:**在数据分析前注册方案,或记录结局定义、亚组和模型选择 **原因:**事后选择会提高假阳性率
-
**错误:**未采用目标试验框架,就将观察性关联报告为因果关系 **正确:**明确将每项研究映射到假设的目标试验,以揭示隐藏的假设 **原因:**未映射的假设会导致任何统计方法都无法解决的结构性偏倚
参考文献
- Hernán MA, Robins JM.《因果推断:如果……会怎样》。Chapman & Hall/CRC 2020,https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/
- Hernán MA, Alonso A, Logan R 等。《将观察性研究按随机试验的方式进行分析:绝经后激素疗法与冠心病的应用》。Epidemiology 2008,https://doi.org/10.1097/EDE.0b013e3181875e61
- Lund JL, Richardson DB, Stürmer T。《药物流行病学中的主动对照、新使用者研究设计》。Epidemiology 2015,https://doi.org/10.1097/EDE.0000000000000231
- Suissa S。《药物流行病学中的不朽时间偏倚》。Am J Epidemiol 2008,https://doi.org/10.1093/aje/kwn138
- Robins JM, Hernán MA, Brumback B。《边际结构模型与流行病学中的因果推断》。Epidemiology 2000,https://doi.org/10.1097/00001648-200009000-00011
- VanderWeele TJ, Ding P。《观察性研究中的敏感性分析:引入 E 值》。Ann Intern Med 2017,https://doi.org/10.7326/M16-2607
- Austin PC。《倾向评分方法简介:降低观察性研究中混杂影响》。Multivariate Behav Res 2011,https://doi.org/10.1080/00273171.2011.568786
- Lipsitch M, Tchetgen Tchetgen E, Cohen T。《负对照:检测观察性研究中混杂与偏倚的工具》。Epidemiology 2010,https://doi.org/10.1097/EDE.0b013e3181d61eeb