💡 この記事でわかること
  • Gatekeeping法とは何か(基本概念と目的)
  • Serial・Parallel・Tree の3タイプの違いと使い分け
  • FWERを強い意味で制御しながら検出力を高く保つ仕組み
  • gMCPパッケージを使ったRによる実装方法(コード+出力結果付き)
  • 規制申請(FDA・EMA・PMDA)における実務上のポイント

はじめに

前回の記事では、複数エンドポイントを検定する際に生じる Disjunctive Power(いずれか1つでも有意になる確率)と、多重性による第一種過誤率(FWER)の増大について詳しく解説しました(Disjunctive Power(いずれか1つでも有意になる確率)とその多重性)。

FWERを制御する手法として、Bonferroni 補正や Holm 法を前回は紹介しましたが、これらは「全仮説を同列に扱う」シンプルな手法です。一方、実際の臨床試験では「主要評価項目で有効性を確認できた場合のみ、副次評価項目を検証する」という優先順位付きの仮説構造が大半を占めます。

Gatekeeping 法は、このような階層的な仮説構造を活かしつつ FWERを強い意味で制御する多重性調整手法です。単純な Bonferroni 補正より高い検出力を保てる点が大きな強みです。

本記事では、Gatekeeping 法の概念・3つの主なタイプ・R と SAS による実装方法・実務上の注意点を体系的に解説します。

Gatekeeping法とは

Gatekeeping法では、複数の仮説を仮説族(Family)に分け、優先度の高い仮説族を「ゲート」として設定します。先行する仮説族で有意性が確認されない限り、後続の仮説族の検定には進めません。 \[ \text{If } \forall j,\; H_{1j} \text{ is not rejected} \quad \Rightarrow \quad \text{Do not test } F_2, F_3, \dots, F_m \]

ここで \(F_k\) は第 \(k\) 番目の仮説族を意味します。各仮説族内では Bonferroni 法・Holm 法などの多重性調整を適用して FWER を制御します。

💡 ポイント
Gatekeeping 法はグラフィカルアプローチ(Graphical Approach)の一種として捉えることができます。仮説間の重みと遷移規則を有向グラフで表現することで、複雑な仮説構造を視覚的に管理できます。グラフィカルアプローチの詳細については臨床試験における多重比較法 ― グラフィカルアプローチの魅力と実践もご参照ください。

主なタイプと使い分け

仮説族の進行条件の設定方法によって主に3つのタイプがあります。

Serial Gatekeeping(直列型)

進行条件:前段の仮説族がすべて有意である場合のみ、次の仮説族へ進む。

典型例は「主要評価項目(F1)→ 主要副次評価項目(F2)」という最も厳格なゲート構造で、自分の経験でも最もよく見られるパターンです。

Parallel Gatekeeping(並列型)

進行条件:前段の仮説族の少なくとも1つが有意であれば次に進む。

複数の主要評価項目のいずれかが有意になれば副次評価項目の検定に進める構造で、前回記事で扱った Disjunctive Power の考え方と相性が良いタイプです。

Tree Gatekeeping(樹形型)

進行条件:仮説間の関係をツリー構造で表現し、各分岐ごとに進行条件を設定。

最も柔軟性が高く、複数のサブグループや用量群を含む複雑な試験デザインに対応できます。

タイプ進行条件特徴主な適用例
Serial全て有意厳格・シンプル主要EP → 副次EP
Parallel少なくとも1つ有意柔軟・検出力高め複数主要EP → 副次EP
Tree分岐ごとに設定複雑・高い柔軟性複数用量群・サブグループ

RとSASによる実装

Rによる実装(gMCPパッケージ)

Rでは gMCP パッケージを用いてGatekeeping法をグラフィカルアプローチとして実装できます。以下では Serial Gatekeeping と Parallel Gatekeeping の2ケースを実装します。

ケース1:Serial Gatekeeping(直列型)

主要評価項目H1(OS)→ 主要副次評価項目H2(PFS)→ 副次評価項目H3(ORR)という順序で検定します。

# install.packages("gMCP")
library(gMCP)

# Serial Gatekeeping の設定
# H1: OS(全生存期間)
# H2: PFS(無増悪生存期間)
# H3: ORR(客観的奏効率)

# 遷移行列の定義(H1 → H2 → H3 の直列構造)
m_serial <- rbind(
  H1 = c(0, 1, 0),
  H2 = c(0, 0, 1),
  H3 = c(0, 0, 0)
)

# 初期ウェイト(全ての重みをH1に割り当て)
g_serial <- new("graphMCP",
                m = m_serial,
                weights = c(H1 = 1, H2 = 0, H3 = 0))

# 観測されたp値
pvalues_s <- c(H1 = 0.020, H2 = 0.035, H3 = 0.060)

# Gatekeeping法の適用(α = 0.05)
result_serial <- gMCP(g_serial, pvalues_s, alpha = 0.05)
print(result_serial)

出力結果

  Hypothesis Adjusted.p-value Significant
1         H1           0.0200        TRUE
2         H2           0.0350        TRUE
3         H3           0.0600       FALSE
📝 解釈
H1(OS、p=0.020)と H2(PFS、p=0.035)はともに α=0.05 を下回り棄却されています。H3(ORR、p=0.060)は H2 が棄却されたため検定対象となりましたが、p値が 0.060 と α=0.05 を超えており棄却されませんでした。Serial Gatekeeping では各仮説の調整p値は元のp値と同一になります。これは連鎖的な棄却構造によって FWER が自然に制御されているためです。

ケース2:Parallel Gatekeeping(並列型)

2つの主要評価項目(H1a・H1b)のいずれかが有意であれば副次評価項目H2を検定できる構造です。

# Parallel Gatekeeping の設定
# H1a: OS in Population A
# H1b: OS in Population B
# H2:  PFS(H1a または H1b が有意なら検定可能)

# 遷移行列(H1a と H1b が等しい重みで H2 へ遷移)
m_parallel <- rbind(
  H1a = c(0, 0, 1),
  H1b = c(0, 0, 1),
  H2  = c(0, 0, 0)
)

g_parallel <- new("graphMCP",
                  m = m_parallel,
                  weights = c(H1a = 0.5, H1b = 0.5, H2 = 0))

# 観測されたp値
pvalues_p <- c(H1a = 0.030, H1b = 0.080, H2 = 0.040)

result_parallel <- gMCP(g_parallel, pvalues_p, alpha = 0.05)
print(result_parallel)

出力結果

  Hypothesis Adjusted.p-value Significant
1        H1a           0.0600       FALSE
2        H1b           0.1600       FALSE
3         H2               NA          NA
⚠️ 注意
Parallel Gatekeeping では初期ウェイトが H1a・H1b に均等配分(各 0.5)されるため、Bonferroni 補正相当の調整p値(0.030 × 2 = 0.060、0.080 × 2 = 0.160)が算出されます。H1a・H1b ともに棄却されなかったため、H2 は NA(未検定)となっています。主要評価項目のいずれも有意とならず、副次評価項目の検定には進めないという結果です。

SASによる実装

SASでは Serial Gatekeeping を以下のように実装できます。

/* Serial Gatekeeping の実装(SAS) */
/* 仮説設定: H1 → H2 → H3 */

data pvalues;
  input hypothesis $ pvalue;
  datalines;
H1 0.020
H2 0.035
H3 0.060
;
run;

data result;
  set pvalues;
  retain prev_rejected 1 alpha 0.05;

  if prev_rejected = 1 and pvalue <= alpha then do;
    rejected = "Yes";
    prev_rejected = 1;
  end;
  else do;
    rejected = "No";
    prev_rejected = 0;
  end;

  drop prev_rejected alpha;
run;

proc print data=result noobs;
  title "Serial Gatekeeping の結果";
run;

出力結果

Serial Gatekeeping の結果

hypothesis    pvalue    rejected
H1            0.020     Yes
H2            0.035     Yes
H3            0.060     No
📝 解釈
prev_rejected フラグにより、前の仮説が棄却された場合のみ次の仮説を検定する直列型の動作を実現しています。R の gMCP による結果と一致し、H1・H2 は棄却、H3 は非棄却となります。より複雑な Gatekeeping 構造には SAS の %GraphTest マクロも利用できます。

実務でのポイント

🔑 実務でのポイント
  • 試験計画時に仮説構造を確定する:Gatekeeping 法は SAP(統計解析計画書)への事前定義が必須。試験開始後の変更は規制当局から認められない可能性があります
  • 規制当局との事前相談を推奨:FDA・EMA・PMDA はGatekeeping 法の受容性が高いですが、仮説構造の妥当性を Type II Meeting や対面助言で確認しておくことが望ましいです
  • Parallel型は Disjunctive Power と整合させる:前回記事で解説した通り、Parallel Gatekeeping の採用は Disjunctive Power ベースの FWER 計算と一貫していることが重要です
  • FWERの制御方法を明示する:承認申請では「強い意味での FWER 制御(Strong FWER control)」を満たすことを CTD 統計セクションで明記します

📚 参考書籍

統計・生物統計をさらに深く学びたい方に、おすすめの書籍をご紹介します。

『臨床試験のデザインと解析』丹後俊郎(朝倉書店)

臨床試験のデザインと解析

製薬業界の生物統計家が読むべき国内定番書です。多重比較・Gatekeeping法を含む臨床試験の統計手法を体系的に学べます。本記事の実務でのポイントで触れた規制対応の観点からも有益な内容が充実しています。


『医学への統計学』古川俊之/丹後俊郎(朝倉書店)

製薬開発で必要な多重性調整の実務手法を網羅した一冊です。SASコード例も収録されており、本記事のSAS実装と組み合わせて学習できます。


『統計学入門(基礎統計学Ⅰ)』東京大学教養学部統計学教室(東京大学出版会)

Gatekeeping 法の背景にある多重性・第一種過誤率の数理的基礎を固めるための定番テキストです。前回記事で扱った FWER の理論的理解を深めたい方に最適です。

関連記事・次のステップ

まとめ

本記事では、前回の Disjunctive Power・FWER の議論を踏まえて、Gatekeeping法の概要・Serial/Parallel/Tree の3タイプの違い・R と SAS による実装・実務でのポイントを解説しました。

Gatekeeping 法は仮説の優先順位を明確にしながら第一種過誤率を強い意味で制御できる、臨床試験の多重性管理における極めて重要な手法です。Serial 型は最も厳格で規制当局への説明も明快、Parallel 型は複数主要評価項目を持つ試験で検出力を保つうえで有効、Tree 型は複雑な試験デザインへの対応力が高い点がそれぞれの強みです。

gMCP パッケージを使えば R でグラフィカルアプローチとして直感的に実装でき、SAP への記述とコードの一貫性も保ちやすくなります。試験計画段階から仮説の優先順位を整理し、規制当局とのアラインメントを取ることが、承認申請成功の大きな強みになります。

次回は、Fixed Sequence 法(固定シーケンス法)Fallback 法について詳しく紹介します。Gatekeeping との使い分けを含めて解説する予定ですので、ぜひご期待ください。

ABOUT ME
tomokichi
外資系製薬会社で生物統計家として働ている1児のパパ。生物統計家とは何か、どのようなスキルが必要か、何を行っているのかを共有していきたいと思っております!生物統計に関する最新情報を皆様にお届けすべく、日々奮闘中です。趣味は筋トレ、温泉巡り、家族と散歩。