💡 この記事でわかること
  • Disjunctive Power(いずれか1つでも有意になる確率)の定義と計算方法
  • Conjunctive Powerとの違いと、どちらを設計基準とすべきか
  • 無補正のまま複数検定を行うと第一種過誤率(FWER)が膨張するメカニズム
  • Bonferroni・Holm補正がDisjunctive Powerを低下させる量の定量的な評価方法
  • RとSASを使った数値計算の実装方法と実務への応用

はじめに

複数の主要エンドポイントを設定する臨床試験では、「試験をどのような基準で成功と見なすか」がサンプルサイズ設計に直結する極めて重要な問いになります。

前回の記事では、Conjunctive Power(同時検出力)―すべてのエンドポイントが同時に有意になる確率―を取り上げました。これは「すべて有意を成功基準とする試験」に対応する概念です。

一方、本記事で解説する Disjunctive Power(選言的検出力) は、「いずれか1つでも有意になれば試験成功」と定義する場合に対応します。後者の基準を採用する試験は少なくなく、特に複数の適応症を対象とする場合や、エンドポイントの優先順位が明確でないフェーズ2/3試験でよく見られます。

ただし、Disjunctive Powerを高く保とうとすると、第一種過誤率の膨張(FWER: Family-Wise Error Rate の増大)という問題が生じます。この問題を解決するために多重比較補正を適用すると、今度はDisjunctive Powerが低下します。本記事では、この検出力と第一種過誤のトレードオフを数式とコードで定量的に解説します。

Disjunctive Powerとは ― 基本概念と定式化

定義

\(k\) 個の仮説 \(H_1, H_2, \ldots, H_k\) を検定する試験において、Disjunctive Power は以下のように定義されます。

\[
\text{Disjunctive Power} = P\!\left(\bigcup_{i=1}^{k} \{\text{仮説 } H_i \text{ を棄却}\} \;\Big|\; \text{すべての対立仮説が真}\right)
\]

これは「少なくとも1つの検定が有意になる確率」であり、すべての個別検出力の和ではなく、余事象(どれも有意でない確率の補集合)として計算します。

独立なエンドポイントの場合

各エンドポイントが独立で、それぞれの個別検出力を \(\pi_1, \pi_2, \ldots, \pi_k\) とすると:

\[
\text{Disjunctive Power} = 1 – \prod_{i=1}^{k}(1 – \pi_i)
\]

等しい個別検出力 \(\pi\) を仮定すると:

\[
\text{Disjunctive Power} = 1 – (1 – \pi)^k
\]

数値例: 各エンドポイントの個別検出力が80%(\(\pi = 0.80\))、\(k=2\) の場合:

\[
\text{Disjunctive Power} = 1 – (1 – 0.80)^2 = 1 – 0.04 = 96\%
\]

Conjunctive Powerが \(0.80 \times 0.80 = 64\%\) まで低下するのと対照的に、Disjunctive Powerは96%と非常に高くなります。

Conjunctive Powerとの比較

指標定義試験成功基準独立・等検出力π=0.8, k=2
Conjunctive Powerすべてが有意になる確率全エンドポイントで有意64%
Disjunctive Power少なくとも1つが有意になる確率いずれか1つで有意96%

多重比較補正がDisjunctive Powerに与える影響

FWERの膨張問題

複数の検定をすべて \(\alpha = 0.05\) で行う(無補正)と、帰無仮説がすべて真でも「少なくとも1つが誤って有意になる確率(FWER)」は次のように膨張します。

\[
\text{FWER} = 1 – (1 – \alpha)^k
\]

\(k=2\) の場合:

\[
\text{FWER} = 1 – (1 – 0.05)^2 = 1 – 0.9025 \approx 9.75\%
\]

規制上許容される第一種過誤率 5% を大きく超えてしまいます。そのため、多重比較補正が必要になります。

代表的な補正方法とDisjunctive Powerへの影響

多重比較補正はFWERを制御する代わりに、個別の検定の有意水準を引き下げます。これにより、Disjunctive Powerも必然的に低下します。

Bonferroni補正: 各検定の有意水準を \(\alpha^* = \alpha / k\) とする最もシンプルかつ保守的な方法。

\[
\text{補正後の個別検出力 } \pi^* = P\!\left(|Z| > z_{\alpha/(2k)} \;\Big|\; \mu\right)
\]

Holm(ステップダウン)補正: 検定統計量を大きい順に並べ、段階的に有意水準を調整する方法。Bonferroniと同じFWER制御水準でも、若干高い検出力を持ちます。

Fixed Sequence(固定順序)検定: エンドポイントに優先順位を事前設定し、順番に検定する方法。第1エンドポイントには \(\alpha\) をそのまま使えるため、Disjunctive Powerは他の方法より高くなります。

⚠️ 注意
Fixed Sequence検定は「第1エンドポイントが有意でない場合、第2以降の検定は行わない」という制約があります。そのため、Disjunctive Powerの観点では第1エンドポイントの結果に強く依存します。エンドポイント間に明確な優先順位がない試験では、適用に注意が必要です。

RとSASによる実装

Rによる実装

以下では、mvtnormパッケージを使って相関を考慮したDisjunctive Powerを計算します。設定として、各群150名、効果量(Cohen’s d)= 0.3、エンドポイント間相関 ρ = 0.5、有意水準 α = 0.05、エンドポイント数 k = 2 とします。

library(mvtnorm)

# ---- パラメータ設定 ----
n     <- 150    # 各群のサンプルサイズ
mu    <- 0.3    # 効果量(Cohen's d)
sigma <- 1      # 標準偏差
alpha <- 0.05   # 有意水準(両側)
rho   <- 0.5    # エンドポイント間相関
k     <- 2      # エンドポイント数

# ---- 標準誤差・非心パラメータ ----
se  <- sqrt(2 * sigma^2 / n)
ncp <- mu / se   # 非心パラメータ(≈ 2.598)

# ---- 無補正の個別検出力 ----
z_alpha  <- qnorm(1 - alpha / 2)   # ≈ 1.960
power_uc <- pnorm(ncp - z_alpha) + pnorm(-ncp - z_alpha)

# ---- 相関を考慮した P(両方とも有意でない) ----
corr_mat <- matrix(c(1, rho, rho, 1), 2, 2)
mean_vec <- c(ncp, ncp)

p_both_ns_uc <- pmvnorm(
  lower = c(-z_alpha, -z_alpha),
  upper = c( z_alpha,  z_alpha),
  mean  = mean_vec,
  sigma = corr_mat
)[1]

disjunctive_uc <- 1 - p_both_ns_uc

# ---- Bonferroni補正後 ----
z_bonf   <- qnorm(1 - alpha / (2 * k))   # ≈ 2.241
power_bf <- pnorm(ncp - z_bonf) + pnorm(-ncp - z_bonf)

p_both_ns_bf <- pmvnorm(
  lower = c(-z_bonf, -z_bonf),
  upper = c( z_bonf,  z_bonf),
  mean  = mean_vec,
  sigma = corr_mat
)[1]

disjunctive_bf <- 1 - p_both_ns_bf

# ---- 結果表示 ----
cat("=== Disjunctive Power の比較(n=150, d=0.3, rho=0.5)===\n\n")
cat(sprintf("無補正\n"))
cat(sprintf("  個別検出力           : %5.1f%%\n", power_uc * 100))
cat(sprintf("  FWER(帰無仮説真)   : %5.1f%%\n", (1 - (1-alpha)^k) * 100))
cat(sprintf("  Disjunctive Power    : %5.1f%%\n\n", disjunctive_uc * 100))
cat(sprintf("Bonferroni補正後\n"))
cat(sprintf("  個別検出力           : %5.1f%%\n", power_bf * 100))
cat(sprintf("  FWER(帰無仮説真)   : <= %3.1f%%\n", alpha * 100))
cat(sprintf("  Disjunctive Power    : %5.1f%%\n", disjunctive_bf * 100))

出力結果:

=== Disjunctive Power の比較(n=150, d=0.3, rho=0.5)===

無補正
  個別検出力           :  73.8%
  FWER(帰無仮説真)   :   9.7%
  Disjunctive Power    :  90.4%

Bonferroni補正後
  個別検出力           :  63.9%
  FWER(帰無仮説真)   : <=  5.0%
  Disjunctive Power    :  82.3%
📝 解釈・補足
無補正では個別検出力73.8%、Disjunctive Power 90.4%が得られますが、FWERは9.7%と規制上許容できない水準に膨張しています。Bonferroni補正を適用するとFWERは5%以下に制御されますが、Disjunctive Powerは82.3%まで低下します(約8ポイントの損失)。この損失を補うためには、各エンドポイントの個別検出力を上げる―すなわちサンプルサイズを増やすか、より大きな効果量を見込む―必要があります。

複数シナリオの比較

# シナリオ別 Disjunctive Power の一覧表
scenarios <- expand.grid(
  rho  = c(0.0, 0.5, 0.8),
  bonf = c(FALSE, TRUE)
)

results <- mapply(function(r, b) {
  corr_mat <- matrix(c(1, r, r, 1), 2, 2)
  z_crit   <- if (b) qnorm(1 - alpha / (2*k)) else z_alpha
  pow_ind  <- pnorm(ncp - z_crit) + pnorm(-ncp - z_crit)
  p_ns     <- pmvnorm(c(-z_crit, -z_crit), c(z_crit, z_crit),
                      mean = mean_vec, sigma = corr_mat)[1]
  c(pow_ind = pow_ind, disj = 1 - p_ns)
}, scenarios$rho, scenarios$bonf)

scenarios$power_ind  <- round(results["pow_ind", ] * 100, 1)
scenarios$disj_power <- round(results["disj",    ] * 100, 1)
scenarios$correction <- ifelse(scenarios$bonf, "Bonferroni", "無補正")

print(scenarios[, c("correction", "rho", "power_ind", "disj_power")])

出力結果:

  correction rho power_ind disj_power
1       無補正 0.0      73.8       93.1
2       無補正 0.5      73.8       90.4
3       無補正 0.8      73.8       86.7
4   Bonferroni 0.0      63.9       87.0
5   Bonferroni 0.5      63.9       82.3
6   Bonferroni 0.8      63.9       74.9
📝 解釈・補足
エンドポイント間の相関が高いほど、Disjunctive Powerは低下します。これは直感的に理解できます―相関が高いと「片方が有意なら他も有意になりやすい」という利点が、「片方が有意でなければ他も有意になりにくい」という損失と表裏一体になるためです。独立(ρ=0)かつBonferroni補正ありで87.0%、高相関(ρ=0.8)かつBonferroni補正ありでは74.9%まで低下することが確認できます。

SASによる実装

SASでは PROC IMLPROBBNRM 関数を用いて2変量正規分布の確率を計算します。

/* Disjunctive Power の計算(SAS PROC IML)*/
PROC IML;
  n     = 150;
  mu    = 0.3;
  sigma = 1;
  alpha = 0.05;
  rho   = 0.5;
  k     = 2;

  se  = SQRT(2 * sigma**2 / n);
  ncp = mu / se;
  z_uc   = PROBIT(1 - alpha/2);
  z_bonf = PROBIT(1 - alpha / (2*k));

  pow_uc   = 1 - PROBNORM(z_uc   - ncp) + PROBNORM(-z_uc   - ncp);
  pow_bonf = 1 - PROBNORM(z_bonf - ncp) + PROBNORM(-z_bonf - ncp);

  /* 無補正 */
  c = z_uc;
  p_both_ns_uc = PROBBNRM( c-ncp,  c-ncp, rho)
               - PROBBNRM(-c-ncp,  c-ncp, rho)
               - PROBBNRM( c-ncp, -c-ncp, rho)
               + PROBBNRM(-c-ncp, -c-ncp, rho);
  disj_uc = 1 - p_both_ns_uc;

  /* Bonferroni補正後 */
  c = z_bonf;
  p_both_ns_bf = PROBBNRM( c-ncp,  c-ncp, rho)
               - PROBBNRM(-c-ncp,  c-ncp, rho)
               - PROBBNRM( c-ncp, -c-ncp, rho)
               + PROBBNRM(-c-ncp, -c-ncp, rho);
  disj_bf = 1 - p_both_ns_bf;

  PRINT "--- 無補正 ---"
        pow_uc[label="個別検出力"]
        disj_uc[label="Disjunctive Power"];
  PRINT "--- Bonferroni補正後 ---"
        pow_bonf[label="個別検出力"]
        disj_bf[label="Disjunctive Power"];
QUIT;

出力結果:

--- 無補正 ---
個別検出力    Disjunctive Power
    0.7382           0.9038

--- Bonferroni補正後 ---
個別検出力    Disjunctive Power
    0.6394           0.8230
📝 解釈・補足
RとSASの結果は一致しており、無補正でのDisjunctive Power 90.4%、Bonferroni補正後82.3%が確認されます。SASコードの核心は PROBBNRM を4点で評価して矩形領域の確率を求める式にあります。非心(ncp ≠ 0)の場合も標準化変換(Xi – ncp)によってそのまま計算できる点が実装上のポイントです。

実務でのポイント

🔑 実務での重要ポイント
  1. 成功基準によって設計する検出力指標を変える:
    「すべて有意」が成功基準ならConjunctive Powerを、「いずれか有意」が成功基準ならDisjunctive Powerをサンプルサイズの根拠として統計解析計画書に明記します。
  2. 多重比較補正はFWERを制御するが検出力を損なう:
    Bonferroni補正を適用すると個別検出力が下がり、Disjunctive Powerも低下します。目標Disjunctive Power(例:80%)を保つためには、補正後の個別検出力から逆算したサンプルサイズを設定する必要があります。
  3. エンドポイント間の相関を事前に推定する:
    相関が高いほどDisjunctive Powerは低下します。パイロット試験や文献から相関の事前推定値を得て、保守的な想定値でサンプルサイズを計算することが推奨されます。
  4. Fixed Sequence検定の活用:
    明確な優先順位がある場合はFixed Sequence検定が有効です。第1エンドポイントには有意水準αを使えるため、Disjunctive Powerの損失が最小になります。
  5. 規制機関への説明:
    PMDAやFDAへの申請では、FWER制御の根拠と使用した多重比較補正の手順を統計解析計画書に詳細に記載することが求められます。

📚 この記事をより深く理解するための参考書籍

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

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

本記事で扱ったFWERや多重比較の議論の土台となる確率論・検定の理論が体系的に学べる一冊です。特に確率分布・仮説検定の章は、本記事の数式理解に直結します。

『臨床試験ハンドブック:デザインと統計解析』丹後俊郎・上坂浩之(朝倉書店)

複数エンドポイント試験の設計、多重比較補正、サンプルサイズ計算など、本記事のテーマを実務的観点から深掘りできる専門書です。製薬企業の生物統計担当者が実務で参照する定番の一冊です。

関連記事

本記事は以下の記事の続編です。Conjunctive Powerとの対比でご覧いただくとより理解が深まります。

まとめ

本記事では、複数エンドポイントを扱う臨床試験における Disjunctive Power(いずれか1つでも有意になる確率) とその多重比較補正との関係を解説しました。

Disjunctive Powerは「余事象の積」として定式化され、個別検出力が同じでも Conjunctive Power(全エンドポイントが有意になる確率)と比べてはるかに高い値を取ります。しかし、補正なしで複数検定を行うとFWERが膨張するため、Bonferroni・Holm補正などを適用する必要があります。補正を適用するとDisjunctive Powerは低下し、目標水準(例:80%)を維持するにはサンプルサイズの増加が必要になります。

また、エンドポイント間の相関もDisjunctive Powerを左右する重要な因子であり、相関が高いほど(同じサンプルサイズでも)Disjunctive Powerが低下することを確認しました。

設計段階では、試験の成功基準(すべて有意 or いずれか有意)を明確にし、それに対応する検出力指標(Conjunctive Power or Disjunctive Power)を計算根拠として統計解析計画書に記載することが、規制対応の観点からも大きな強みになります。

次回は、ゲートキーピング戦略(Gatekeeping strategy)を取り上げ、主要エンドポイントと副次エンドポイントが混在する試験での多重比較制御の方法を紹介します。

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