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を入力して読み込まれたか確認します。

詳細

薬剤疫学研究のデザイン

概要

このスキルでは、非ランダム化のリアルワールドデータ(保険請求データ、EHR、レジストリ)から薬剤の因果効果を推定する学問である、薬剤疫学研究のデザインについてエージェントが「考える」方法を学びます。中心的な課題は交絡です。薬剤 A を受ける患者と薬剤 B を受ける患者は系統的に異なるため、単純な比較では治療効果と選択効果が混同されます。

適切にデザインされた薬剤疫学研究では、次の 3 つの柱を通じてこの課題に対処します。(1)時間ゼロをそろえ、適応による交絡を減らす新規使用者・実薬対照デザイン、(2)測定された交絡因子のバランスを取る傾向スコア法またはターゲット試験エミュレーション、(3)未測定交絡の影響を検討する感度分析です。

このスキルを使って研究デザインを精査し、バイアスの原因を特定し、分析コードを書く前に、ユーザーが妥当な因果推論を行えるよう導いてください。

使用方法

ユーザーが次のような場合に、このスキルを呼び出してください。

  • 観察データを用いて、薬剤が臨床転帰に及ぼす効果を推定したい。
  • 薬剤の安全性または有効性の研究で、比較群の選び方を尋ねている。
  • 傾向スコアマッチング、重み付け、層別化のいずれを選ぶべきか判断する必要がある。
  • 不死時間バイアスを含む可能性のあるコホートデザインについて説明している。
  • ターゲット試験エミュレーション、または観察データを仮想的な RCT に対応付ける方法について尋ねている。
  • 時間依存治療または時間依存交絡因子があり、周辺構造モデルが必要である。
  • 未測定交絡に対する感度を評価したい(E-value、ネガティブコントロール)。
  • 公表済みの薬剤疫学研究をレビューまたは批評している。

エージェントは次のように応答してください。

  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 の開始 vs 薬剤 B の開始(新規使用者設計)
治療割り当て観察に基づく割り当て — 傾向スコアまたは IP 重み付けで処理
追跡開始インデックス日(=治療開始日)。両群で同一でなければなりません
アウトカムターゲットトライアルと同じ定義とし、時点ゼロ以降に確認
因果効果の比較割り付けどおりの解析(遵守状況にかかわらず追跡)またはプロトコル遵守解析(中止時に打ち切り/重み付け)
解析計画事前に規定し、可能であれば登録

重要な原則: いずれかの構成要素を適切に対応づけられない場合、その研究には構造的なバイアスがあり、どのような統計手法でも修正できません。最もよくある失敗は、時点ゼロの不整合です(下記の不死時間バイアスを参照)。

4. 不死時間バイアス

不死時間とは、コホートへの組み入れから治療開始までの期間であり、この間はアウトカムが発生し得ません(アウトカムが発生すると、患者を治療群に分類できなくなるためです)。この期間を誤分類すると、治療群の生存率が過大評価されます。

発生する仕組み:

  • 診断によってコホートへの組み入れを定義する一方で、治療は後から開始されます。この間は治療群にとって「不死」の期間です。治療を受けるには、患者は治療開始まで生存していなければならないためです。
  • 時点ゼロをそろえずに「治療経験あり」と「治療経験なし」を比較します。

解決策:

方法仕組み使用する場面
新規使用者設計時点ゼロを治療開始とし、期間のずれをなくします標準の方法です。問題を根本的に防ぎます
ランドマーク解析固定時点(例:診断後 90 日)を定め、その時点で曝露状況を分類し、そこから追跡を開始します治療開始時期にばらつきがあり、共通の起点を設けたい場合
時間依存曝露Cox モデルで治療を時間依存共変量としてモデル化し、治療開始前の人時間を非曝露として扱います治療を任意の時点で開始でき、すべての人時間を利用したい場合

原則: 追跡を治療開始前の時点から始めて「治療経験あり」と「治療経験なし」を比較する研究では、不死時間バイアスが生じています。新規使用者設計では、設計上このバイアスを排除できます。

5. 傾向スコア法

傾向スコア(PS)とは、測定されたベースライン共変量を条件として、治療 A(対 B)を受ける確率です。高次元の共変量空間を、単一のバランススコアに集約します。

推定
  1. ロジスティック回帰を当てはめます:treatment ~ age + sex + comorbidities + prior_meds + ...
  2. 治療、アウトカム、またはその両方を予測する、インデックス日前の共変量をすべて含めます。操作変数(治療は予測するものの、アウトカムは予測しない変数)は含めないでください。バイアスを減らさずに分散を増加させます。
  3. オーバーラップを確認します。両群のPS分布が大幅に重なっている必要があります。必要に応じて、極端な重みをトリミングまたは切り詰めます。
3つのアプローチ
手法仕組み長所限界
マッチング(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 = |平均_treated − 平均_comparator| / √((s²_treated + s²_comparator)/2)。
  • 分散比:0.5~2.0の範囲に収まる必要があります。
  • 視覚的な確認:ラブプロット(調整前後のSMDを示すドットプロット)。
  • バランスの評価にp値を使用しないでください。バランスとサンプルサイズを混同するためです。

**ルール:**調整後にSMDが0.1を超える共変量が1つでもある場合、PSモデルは不十分です。交互作用、非線形項、または追加の共変量を加えて再推定してください。

6. 交絡調整のための共変量選択

傾向スコアまたはアウトカムモデルに含める変数は、データ駆動型ではなく、設計上の判断事項です。選択を誤ると、推定値にバイアスが生じるか、効率が低下します。

共変量を含める際のルール
  1. 交絡因子を含める — 治療とアウトカムの両方を引き起こす変数です。これらが主な対象です。
  2. アウトカムのリスク因子を含める — 治療は予測せず、アウトカムを予測する変数です。バイアスを生じさせずに分散を減らし、精度を高めます。
  3. 操作変数を除外する — 治療は予測するものの、アウトカムは予測しない変数です。これらを含めると、未測定交絡によるバイアスが増幅され、分散も大きくなります。
  4. 媒介変数を除外する — 治療とアウトカムの間の因果経路上にある変数です。調整すると、推定対象の効果の一部が遮断されます。
  5. コライダーを除外する — 治療とアウトカムの両方(またはそれらの子孫)によって生じる変数です。コライダーで条件付けると、因果関係のない経路が開き、バイアスが生じます。
請求データにおける一般的な共変量カテゴリ
カテゴリ例測定期間
人口統計情報年齢、性別、人種、地域インデックス日
併存疾患Charlson/Elixhauserスコア、特定のICD-10コードインデックス日前365日
併用薬併用薬剤クラス(スタチン、降圧薬)インデックス日前180日
医療利用入院、ED受診、外来受診、処方医の数インデックス日前365日
疾患重症度の代理指標専門医の受診回数、過去の処置、検査オーダーインデックス日前365日
フレイル指標熟練看護施設の利用、在宅酸素、車椅子の請求インデックス日前365日
暦時間インデックス日の年/四半期インデックス日

**ルール:**医療利用の強度を必ず測定してください。医療システムを頻繁に利用する患者は、新薬を処方される可能性も、アウトカムが検出される可能性も高いため、これは請求データにおける主要な交絡因子です。

代理変数と健康なユーザー・バイアス

請求データには、ライフスタイル(喫煙、BMI、運動、食事)の直接的な指標がありません。予防薬(例:スタチン、ワクチン)を開始する患者は、より健康で、健康への意識も高い傾向があります。この健康なユーザー/健康な服薬遵守者バイアスにより、新薬のユーザーのほうが健康であるだけなのに、薬に保護効果があるように見えることがあります。次の方法で軽減します。

  • 予防医療の指標(インフルエンザ予防接種、がん検診)を共変量として含めます。
  • ネガティブコントロールアウトカムを使用して、残存する健康なユーザー・バイアスを検出します。
  • 未測定の健康なユーザー交絡にどの程度の強さが必要かを定量化するため、E-valueを報告します。
7. 時間依存交絡と周辺構造モデル

標準的な回帰分析は、交絡因子が次の両方に該当する場合、うまく機能しません。

  • 以前の治療の影響を受ける(例:薬剤によって検査値が変化する)、かつ
  • 将来の治療とアウトカムの予測因子である。

このような交絡因子を調整すると、治療効果の一部を遮断してしまい(過剰調整)、調整しなければ交絡が残ります。これは治療と交絡因子のフィードバックの問題です。

解決策:安定化IPTWを用いた周辺構造モデル(MSM)。

手順:

  1. 各時点で、過去の治療と共変量の履歴を条件として、観察された治療を受ける確率を推定します(重みの分母)。
  2. 過去の治療のみを条件として、観察された治療を受ける確率を推定します(分子、つまり安定化重み)。
  3. 安定化重み = 時間の経過に伴う(分子/分母)の累積積。
  4. これらの重みを用いて、重み付きアウトカムモデル(例:重み付きプール・ロジスティック回帰、または重み付きCoxモデル)を適合させます。

MSMのルール:

  • 安定化重みの平均は1.0付近になる必要があります。そうでない場合、モデルの特定に誤りがあります。
  • 極端な重みは打ち切り(例:1パーセンタイルと99パーセンタイル)し、打ち切りの閾値に対する感度を報告します。
  • 分母モデルにはすべての時間依存交絡因子を含める必要があります。分子モデルにはベースライン共変量と過去の治療のみを含めます。
  • MSMは周辺的な(集団平均の)因果効果を推定するものであり、条件付きの効果ではありません。
8. 未測定交絡に対する感度分析

観察研究では、未測定交絡を完全に否定することはできません。その潜在的な影響を定量化してください。

方法その内容使用する場面
E-value観察された効果を説明できなくするために、未測定交絡因子が治療とアウトカムの両方に対して必要とする最小の関連の強さ(リスク比スケール)を報告します常に使用します。主要な結果とともに報告してください
ネガティブコントロールアウトカム治療の影響を受けないことが分かっているアウトカムです。帰無でない関連は、バイアスが残っていることを示します3~5件のネガティブコントロールを含めます。関連が示された場合、主要な結果は疑わしいと考えられます
ネガティブコントロール曝露アウトカムと無関係であることが分かっている曝露です。分析パイプラインがこれらに対して帰無結果を出すかを検証します研究デザインの検証に有用です
定量的バイアス分析(QBA)有病割合と効果量を指定したうえで、仮定した未測定交絡因子の影響を形式的にモデル化します特定の未測定交絡因子(例:請求データにおける喫煙、BMI)が疑われる場合

ルール: すべての薬剤疫学研究では、最低限E-valueを報告し、少なくとも1つのネガティブコントロール分析を含める必要があります。

9. 主要な設計判断のまとめ表
設計要素推奨されるアプローチ危険信号
ユーザーの種類新規(インシデント)ユーザーのみ正当な理由なく有病者を含めている
比較対象アクティブコンパレーター(同じ適応症)非ユーザーまたは一般集団を比較対象にしている
時点ゼロ治療開始日診断日を起点とし、治療開始が後になっている
ウォッシュアウト期間180~365日ウォッシュアウト期間がない、または90日未満
共変量インデックス日より前のもののみPSモデルにインデックス日以降の共変量を含めている
PSのバランスすべての共変量でSMD < 0.1バランスが報告されていない、またはSMDの代わりにp値を使用している
追跡期間インデックス日から開始治療前から開始している(不死時間)
因果コントラストITTまたはプロトコル準拠(明示する)定義されていない、または打ち切り重み付けなしで治療実施ベースの解析をしている
感度分析E値+ネガティブコントロール未測定交絡に対する感度分析がない
10. 観察データにおけるITTとプロトコル準拠解析の比較
コントラスト実装バイアス上の懸念
ITT類似解析アドヒアランスや治療切り替えの有無にかかわらず、インデックス日から追跡する多くの患者が治療を切り替えたり中止したりすると、効果が希釈される
プロトコル準拠類似解析治療中止または切り替え時に打ち切り、情報のある打ち切りを調整するためIPCW(打ち切り確率の逆数による重み付け)を使用するより重症の患者が治療を中止する場合、情報のある打ち切りが生じる

ルール: 情報のある打ち切りを避けられるため、ITT類似解析をデフォルトとします。プロトコル準拠類似解析は、臨床的な問いが治療の継続に特に関する場合にのみ使用し、必ずIPCWを適用してください。

このスキルを使用しない場合

  • 事前に規定された統計解析計画の代替(生物統計学者の承認が必要です)
  • 未測定交絡が主な懸念であり、ネガティブコントロールが存在しない場合
  • 個々の患者のリスクとベネフィットに関する判断(疫学ではなく臨床医学です)

人間の専門家へのエスカレーションが必要な場合

  • 研究結果をRWEとして規制当局に提出する場合
  • E値から、未測定交絡が効果全体を説明し得ることが示唆される場合
  • ターゲットトライアルのプロトコルで、適格基準に関する臨床的な意見が必要な場合

よくある間違い

  • 誤り: 研究コホートに既存ユーザーを含める 正しい対応: 常に180~365日のウォッシュアウト期間を設け、新規開始者に限定します 理由: 感受性の高い患者の枯渇により、保護効果がある方向にバイアスが生じます

  • 誤り: 薬剤使用者と非使用者を比較する 正しい対応: 同じ適応症に対するアクティブコンパレーターを使用します 理由: アクティブコンパレーターなしでは、適応による交絡を完全に調整することはほぼ不可能です

  • 誤り: 治療開始前から追跡を開始する(不死時間) 正しい対応: 新規ユーザーデザイン(時間ゼロ=治療開始)またはランドマーク解析を使用します 理由: 治療群には「無料」の生存時間が加わり、見かけ上の有益性が過大評価されます

  • 誤り: 傾向スコアモデルにインデックス日以降の共変量を含める 正しい対応: PSモデルにはインデックス日より前に測定された共変量のみを含めます 理由: インデックス日以降の変数は媒介変数またはコライダーである可能性があり、バイアスを生じさせます

  • 誤り: PS調整後の共変量バランスの評価にp値を使用する 正しい対応: 標準化平均差(SMD)を使用し、閾値を< 0.1とします 理由: p値はサンプルサイズに依存するため、大規模サンプルでは意味のある差があっても「バランスが取れている」と示されることがあります

  • 誤り: 極端な傾向スコアの重みを無視する 正しい対応: 重みを1パーセンタイル/99パーセンタイルで打ち切り、打ち切りに対する感度を報告します 理由: 重みが500の患者1人だけで、解析全体が左右されることがあります

  • 誤り: 時間依存性交絡因子を標準的なCoxモデルで調整する 正しい対応: 交絡因子が過去の治療の影響を受ける場合は、安定化IPTWを用いた周辺構造モデルを使用します 理由: 治療と交絡因子の間にフィードバックがある場合、標準的な調整では因果経路の一部が遮断されます

  • 誤り: 未測定交絡に対する感度分析を省略する 正しい対応: 必ずE値を報告し、少なくとも1つのネガティブコントロール解析を実施します 理由: 請求データには、結果を交絡させる可能性があるBMI、喫煙、検査値、社会経済的な詳細が含まれていません

  • 誤り: 因果コントラストを定義せずに「as-treated」解析を行う 正しい対応: ITTまたはper-protocolの推定対象を明示し、per-protocolでは打ち切り重みを適用します 理由: 推定対象が曖昧だと、結果を解釈できなくなります

  • 誤り: 追跡期間中の累積投与量または「使用経験あり」に基づいて曝露を定義する 正しい対応: 時間ゼロで曝露を定義し、将来の行動や生存を条件にしないでください 理由: 将来を条件にすると、選択バイアスが生じます

  • 誤り: ポジティビティ仮定を無視する 正しい対応: PSの重なりを確認し、一方の治療の確率がほぼゼロとなる重なりのない領域を除外します 理由: 治療の変動がない層では、PS法は機能しません

  • 誤り: 単一のPS手法を感度分析なしで使用する 正しい対応: 少なくとも2つのアプローチ(例:マッチング+IPTW)を実施し、結果を比較します 理由: 結果が一致しない場合は、モデルの感度が高く、結論が不安定であることを示します

  • 誤り: 解析計画を事前に規定しない 正しい対応: データ解析前に、プロトコルを登録するか、アウトカムの定義、サブグループ、モデルの選択を文書化します 理由: 事後的な選択により、偽陽性率が上昇します

  • 誤り: ターゲットトライアルの枠組みなしに、観察された関連を因果関係として報告する 正しい対応: 隠れた仮定を明らかにするため、すべての研究を仮想的なターゲットトライアルに明示的に対応付けます 理由: 対応付けられていない仮定は、どの統計手法でも修正できない構造的バイアスにつながります

参考文献

コメント