mcpField
P
pharmacoepidemiology

pharmacoepidemiology

github.com/awslabs数据与数据库6881 次安装4 周前更新
代码仓库

关于 pharmacoepidemiology

pharmacoepidemiology 是一项研究设计技能,用于从理赔数据、EHR 和登记数据等观察性资料估计药物的因果效应。它帮助研究者在编写代码前识别偏倚风险,并选择合理的设计与分析方法。

主要功能

  1. 01新使用者主动对照设计
  2. 02目标试验模拟
  3. 03倾向评分方法选择
  4. 04混杂与偏倚评估
  5. 05敏感性分析建议

适用场景

  1. 01为药物研究选择对照组
  2. 02检查队列中的不朽时间偏倚
  3. 03选择匹配、加权或分层方法
  4. 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 应按以下步骤回应:

  1. 明确因果问题——治疗是什么、对照是什么、结局是什么、研究人群是什么、时间范围是什么。
  2. 检查研究设计——是否为新使用者设计?对照是否为主动对照?时间零点是否一致?
  3. 识别偏倚风险——不死时间、适应证混杂、现使用者偏倚、时变混杂。
  4. 推荐倾向评分方法——根据研究背景选择匹配、IPTW 或分层。
  5. 指定敏感性分析——E-value、阴性对照、定量偏倚分析。

回复格式

  • 先给出直接建议或分类(≤3 句话)
  • 按以下顺序组织:建议 → 依据(引用具体标准/阈值)→ 注意事项
  • 比较内容使用表格;标准列表使用项目符号
  • 省略用户已了解的背景信息——用户已经提出了具体问题
  • 目标篇幅:200–400 词,除非用户要求详尽说明 这项技能中的决策树和框架仅供内部推理使用。运用它们得出结论,但不要在回复中复述。只呈现最终建议及其支持证据。

核心概念

1. 新使用者(初次使用者)设计

现代药物流行病学的基础。每项研究都应从这里开始。

规则:

  1. 索引日期 = 经过干净的洗脱期后,首次配发(或首次开具处方)研究药物的日期。
  2. 洗脱期:要求连续参保 180–365 天,且期间未配发研究药物。这可以排除现使用者,因为他们可能已经经历过早期事件或副作用。
  3. 排除现使用者。 在进入队列时已使用该药物的患者属于有偏倚的存活者人群——他们能够耐受该药物足够长时间,因而仍在使用。将他们纳入会引入易感者耗竭偏倚。
  4. 基线协变量应在索引日期之前测量。 索引日期之后的任何信息都不得纳入倾向评分模型。
  5. 随访从索引日期开始。 时间零点是开始治疗的时刻,而不是更早的资格判定日期。
为什么现患使用者很危险
问题机制
易感者耗竭早期出现不良事件的患者已经停药,因此不会出现在现患使用者队列中
基线未定义对现患使用者而言,“基线”测量的协变量实际上是在治疗后测量的
患病率调整既往用药时长各不相同,使队列成为不同暴露史的混合体
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)的概率。它将高维协变量空间简化为单一平衡评分。

估计
  1. 拟合逻辑回归模型:treatment ~ age + sex + comorbidities + prior_meds + ...
  2. 纳入所有索引日期前可预测治疗、结局或二者的协变量。不要纳入工具变量(只能预测治疗、不能预测结局的变量)——它们会增加方差,却不会减少偏倚。
  3. 检查重叠性:两组的 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. 混杂调整的协变量选择

将哪些变量纳入倾向评分或结局模型,是一项设计决策,而非由数据驱动的决策。选错会导致估计有偏或效率低下。

协变量纳入规则
  1. 纳入混杂因素——同时导致治疗和结局的变量。这些是主要关注对象。
  2. 纳入结局风险因素——可预测结局但不能预测治疗的变量。它们可以降低方差(提高精确度),而不会引入偏倚。
  3. 排除工具变量——可预测治疗但不能预测结局的变量。纳入这些变量会放大未测量混杂造成的偏倚,并增加方差。
  4. 排除中介变量——位于治疗与结局之间因果路径上的变量。调整这些变量会阻断你试图估计的部分效应。
  5. 排除碰撞变量——由治疗和结局(或它们的后代变量)共同导致的变量。对碰撞变量进行条件化会打开一条非因果路径并引入偏倚。
理赔数据中的典型协变量类别
类别示例测量窗口
人口统计特征年龄、性别、种族、地区索引日期当日
合并症Charlson/Elixhauser 评分、特定 ICD-10 代码索引日期前 365 天
合并用药同期用药类别(他汀类、降压药)索引日期前 180 天
医疗服务利用情况住院、急诊就诊、门诊就诊、不同处方医师数量索引日期前 365 天
疾病严重程度代理指标专科就诊次数、既往操作、实验室检查申请索引日期前 365 天
衰弱指标使用专业护理机构服务、家庭氧疗、轮椅理赔记录索引日期前 365 天
日历时间索引日期的年份/季度索引日期当日

**规则:**始终纳入医疗服务利用强度的衡量指标。与医疗系统互动更多的患者更有可能接受新药治疗,也更有可能被检测出结局——这是理赔数据中的一个主要混杂因素。

代理变量与健康使用者偏倚

理赔数据缺少生活方式(吸烟、BMI、运动、饮食)的直接测量指标。开始使用预防性药物(例如,他汀类药物、疫苗)的患者往往更健康,也更关注健康。这种健康使用者/健康依从者偏倚可能会让新药看起来具有保护作用,仅仅是因为使用者更健康。可通过以下方式减轻偏倚:

  • 将预防性医疗标记(流感疫苗接种、癌症筛查)作为协变量纳入。
  • 使用阴性对照结局检测残留的健康使用者偏倚。
  • 报告 E-value,以量化未测量的健康使用者混杂需要达到多强的程度。
7. 时变混杂与边际结构模型

当某个混杂因素同时满足以下条件时,标准回归会失效:

  • 受先前治疗影响(例如,药物会改变实验室检查值);并且
  • 能预测后续治疗和结局。

对这类混杂因素进行调整会阻断部分治疗效应(过度调整);不进行调整则会留下混杂。这就是治疗-混杂因素反馈问题。

解决方案:使用稳定化 IPTW 的边际结构模型(MSM)。

步骤:

  1. 在每个时间点,根据既往治疗和协变量历史,估计接受实际观察到的治疗的概率(权重的分母)。
  2. 仅根据既往治疗,估计接受实际观察到的治疗的概率(分子,即稳定化权重)。
  3. 稳定化权重 = 随时间累积相乘的(分子 / 分母)。
  4. 使用这些权重拟合加权结局模型(例如,加权汇总 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)并比较结果 **原因:**结果不一致表明模型敏感,结论不稳健

  • **错误:**未预先制定分析计划 **正确:**在数据分析前注册方案,或记录结局定义、亚组和模型选择 **原因:**事后选择会提高假阳性率

  • **错误:**未采用目标试验框架,就将观察性关联报告为因果关系 **正确:**明确将每项研究映射到假设的目标试验,以揭示隐藏的假设 **原因:**未映射的假设会导致任何统计方法都无法解决的结构性偏倚

参考文献

评论

支持 Markdown