同時検出力(Conjunctive Power)とは ― 複数エンドポイントを考慮したサンプルサイズ設計 ―

- 同時検出力(Conjunctive Power)の定義と数理的な導出
- 複数エンドポイントが独立な場合と相関がある場合の計算の違い
- 目標同時検出力を達成するために必要な各エンドポイントの検出力の逆算方法
- RおよびSASによる同時検出力の計算コード(実装付き)
- 製薬企業の実務における応用と設計上の注意点
記事の目次
Toggleはじめに
臨床試験では、主要エンドポイントが複数設定されることが珍しくありません。たとえば「症状スコアの改善」と「QOLの向上」を同時に主要エンドポイントとして設定し、両方とも統計的に有意であることを承認要件とするケースが製薬開発の現場では頻繁に生じます。
前回の記事(検出力分析(Power Analysis)入門)では、単一エンドポイントの検出力とサンプルサイズ設計の基本を整理しました。本記事はその続編として、複数エンドポイントを「同時に」検出する確率=同時検出力(Conjunctive Power)の概念と計算方法を体系的に解説します。
生物統計担当者にとって、同時検出力の理解と正確な計算は、試験の成功確率を現実的に評価するうえで極めて重要です。以下では、数理的な導出から始め、R・SASによる実装、そして実務的な応用まで順を追って解説します。
同時検出力(Conjunctive Power)の定義と数式
定義
同時検出力(Conjunctive Power)とは、複数の仮説検定がすべて帰無仮説を棄却する確率のことです。
各エンドポイント \(i\)(\(i = 1, \ldots, k\))に対する検定統計量を \(Z_i\)、対応する棄却域を \(Z_i > z_{\alpha/2}\) とします(両側検定・正の効果を仮定)。このとき、同時検出力は次のように定義されます:
\[P_{\text{conj}} = P\!\left(\bigcap_{i=1}^{k} \{Z_i > z_{\alpha/2}\}\right)\]
すなわち、「すべてのエンドポイントが同時に有意になる確率」です。
独立なエンドポイントの場合
エンドポイント間が互いに独立であるとき、同時検出力は各エンドポイントの個別検出力の積で表せます:
\[P_{\text{conj}} = \prod_{i=1}^{k}(1 – \beta_i)\]
ここで \(1 – \beta_i\) はエンドポイント \(i\) の個別検出力(第2種の誤りの確率 \(\beta_i\) を用いて表現)を意味します。
具体例として、2つのエンドポイントがそれぞれ独立に80%の検出力を持つとき:
\[P_{\text{conj}} = 0.80 \times 0.80 = 0.64\]
個別には十分に見える80%の検出力も、2エンドポイントを「同時に」達成する確率は64%まで低下します。3エンドポイントでは \(0.80^3 = 0.512\) と、さらに半分以下になります。
各エンドポイントで個別に80%の検出力を確保していても、複数エンドポイントの同時検出力はその積になるため大幅に低下します。試験計画段階でこの点を見落とすと、試験全体の成功確率が過大評価されます。
目標同時検出力から各エンドポイントの検出力を逆算する
同時検出力の目標値(例:80%)を達成するために、各エンドポイントで必要な個別検出力を逆算します。
エンドポイントが \(k\) 個で独立、かつ各エンドポイントの検出力が等しい場合(\(1-\beta_i = 1-\beta\)):
\[P_{\text{target}} = (1-\beta)^k \implies 1-\beta = P_{\text{target}}^{1/k}\]
例えば \(k=2\)、\(P_{\text{target}} = 0.80\) のとき:
\[1-\beta = 0.80^{1/2} \approx 0.894\]
各エンドポイントで89.4%の検出力が必要になります。これは単一エンドポイントの場合より高い検出力を要求するため、サンプルサイズの増加につながります。
下表に、エンドポイント数と目標同時検出力ごとに必要な各エンドポイントの検出力をまとめます。
| エンドポイント数 k | 目標同時検出力 80% | 目標同時検出力 85% | 目標同時検出力 90% |
|---|---|---|---|
| k = 1 | 80.0% | 85.0% | 90.0% |
| k = 2 | 89.4% | 92.2% | 94.9% |
| k = 3 | 92.8% | 94.7% | 96.5% |
| k = 4 | 94.6% | 96.0% | 97.4% |
エンドポイント数が増えるにつれ、個別に必要な検出力が急速に高まることがわかります。
相関がある場合
実際の臨床試験では、複数のエンドポイント間に正の相関があることが多いです(例:同じ患者の症状スコアとQOLスコアは相関する傾向があります)。
エンドポイント間の相関を \(\rho\) とすると、検定統計量 \((Z_1, Z_2)\) は二変量正規分布に従います:
\[\begin{pmatrix} Z_1 \\ Z_2 \end{pmatrix} \sim \mathcal{N}\!\left(\begin{pmatrix} \lambda_1 \\ \lambda_2 \end{pmatrix},\ \begin{pmatrix} 1 & \rho \\ \rho & 1 \end{pmatrix}\right)\]
ここで \(\lambda_i = d_i \sqrt{n/2}\) は非心パラメータ(noncentrality parameter)、\(d_i\) は Cohen’s d、\(n\) は各群のサンプルサイズです。
このとき同時検出力は:
\[P_{\text{conj}} = P(Z_1 > z_{\alpha/2},\ Z_2 > z_{\alpha/2})\]
であり、二変量正規分布の積分で求まります。正の相関(\(\rho > 0\))があると、独立の場合より同時検出力は高くなります。これは直感的にも理解できます。正の相関があるということは、エンドポイント1が良好なら、エンドポイント2も良好である可能性が高いためです。
Rによる実装
ステップ1:独立エンドポイントの同時検出力と必要サンプルサイズ
まず、独立な2エンドポイントを仮定した場合の同時検出力を計算し、目標同時検出力80%を達成するために必要なサンプルサイズを求めます。
library(pwr)
# 1. 各エンドポイント80%の検出力から同時検出力を計算
power_ep1 <- 0.80
power_ep2 <- 0.80
conj_power_indep <- power_ep1 * power_ep2
cat("同時検出力(独立, 各80%):", conj_power_indep, "\n")
# 2. 目標同時検出力80%を達成するために必要な各エンドポイントの検出力
k <- 2
target <- 0.80
required_power <- target^(1 / k)
cat("必要な各エンドポイントの検出力:", round(required_power, 4), "\n")
# 3. 必要なサンプルサイズ(Cohen's d = 0.5, 有意水準α = 0.05)
d <- 0.5
result <- pwr.t.test(d = d, sig.level = 0.05, power = required_power, type = "two.sample")
n_required <- ceiling(result$n)
cat("必要なサンプルサイズ(各群):", n_required, "\n")
# 参考:個別80%の場合のサンプルサイズと比較
result_80 <- pwr.t.test(d = d, sig.level = 0.05, power = 0.80, type = "two.sample")
cat("個別80%の場合のサンプルサイズ(各群):", ceiling(result_80$n), "\n")同時検出力(独立, 各80%): 0.64
必要な各エンドポイントの検出力: 0.8944
必要なサンプルサイズ(各群): 106
個別80%の場合のサンプルサイズ(各群): 85個別に80%の検出力を確保した場合の同時検出力は64%にとどまります。目標同時検出力80%を達成するには、各エンドポイントで89.4%の検出力が必要となり、各群のサンプルサイズは85名から106名へと約25%増加します。試験計画段階でこの増分を見込まずに設計すると、試験全体の成功確率が過少評価されます。
ステップ2:相関を考慮した同時検出力の計算
mvtnorm パッケージの pmvnorm() を使って、エンドポイント間の相関を考慮した同時検出力を計算します。
library(mvtnorm)
# 相関を考慮した同時検出力の計算関数
calc_conj_power <- function(n, d1, d2, rho, alpha = 0.05) {
ncp1 <- d1 * sqrt(n / 2) # エンドポイント1の非心パラメータ
ncp2 <- d2 * sqrt(n / 2) # エンドポイント2の非心パラメータ
z_crit <- qnorm(1 - alpha / 2) # 棄却限界値(両側検定)
sigma <- matrix(c(1, rho, rho, 1), nrow = 2) # 相関行列
# P(Z1 > z_crit, Z2 > z_crit) を二変量正規分布で計算
pmvnorm(
lower = c(z_crit, z_crit),
upper = c(Inf, Inf),
mean = c(ncp1, ncp2),
sigma = sigma
)[1]
}
# 各相関値における同時検出力(n = 106, d = 0.5)
rho_values <- c(0, 0.3, 0.5, 0.7, 0.9)
results <- data.frame(
rho = rho_values,
conj_power = sapply(rho_values, function(r) {
calc_conj_power(n = 106, d1 = 0.5, d2 = 0.5, rho = r)
})
)
results$conj_power <- round(results$conj_power, 4)
print(results) rho conj_power
1 0.0 0.7994
2 0.3 0.8310
3 0.5 0.8579
4 0.7 0.8907
5 0.9 0.9359相関ゼロ(独立)の場合の同時検出力は約79.9%であり、目標の80%をほぼ達成しています。エンドポイント間の相関が高くなるほど同時検出力は向上し、相関0.9では93.6%に達します。これは、相関が高いほど「2つのエンドポイントが同時に良好な結果を示す」可能性が高くなるためです。相関の事前情報がある場合は、これを活用してサンプルサイズを最適化できます。
SASによる実装
PROC POWERによるサンプルサイズ計算
まず、個別エンドポイントの検出力とサンプルサイズを PROC POWER で計算します。
/* 各エンドポイントで必要な検出力(89.44%)に対応するサンプルサイズ */
proc power;
twosamplemeans
meandiff = 0.5
stddev = 1
power = 0.8944
sides = 2
ntotal = .;
run;The POWER Procedure
Two-Sample t Test for Mean Difference
Fixed Scenario Elements
Distribution: Normal, Method: Exact
Mean Difference: 0.5, Standard Deviation: 1
Nominal Power: 0.8944, Number of Sides: 2, Alpha: 0.05
Computed N Total
Actual Power Nominal Power N Total
0.895 0.8944 212PROC POWERの出力より、各群106名・合計212名が必要であることが確認されます(Rの結果と一致)。Actual Power(0.895)はNominal Power(0.8944)を上回っており、サンプルサイズの切り上げによる達成検出力です。
PROC IMLによる相関考慮の同時検出力
相関を考慮した同時検出力は PROC IML の PROBBNRM 関数を用いて計算します。
PROBBNRM(h, k, ρ) は標準二変量正規分布の累積分布関数 \(P(Z_1 \leq h, Z_2 \leq k)\) を返します。これを利用して:
\[P(Z_1 > z_{\alpha/2}, Z_2 > z_{\alpha/2}) = 1 – \Phi(h) – \Phi(k) + \text{PROBBNRM}(h, k, \rho)\]
ただし \(h = z_{\alpha/2} – \lambda_1\)、\(k = z_{\alpha/2} – \lambda_2\) です(\(\lambda_i\) は非心パラメータ)。
proc iml;
/* パラメータ設定 */
n = 106; /* 各群のサンプルサイズ */
d1 = 0.5; /* エンドポイント1のCohen's d */
d2 = 0.5; /* エンドポイント2のCohen's d */
alpha = 0.05;
/* 非心パラメータと棄却限界値 */
ncp1 = d1 * sqrt(n / 2);
ncp2 = d2 * sqrt(n / 2);
z_crit = quantile('NORMAL', 1 - alpha/2);
/* 相関値ごとに同時検出力を計算 */
rho_vec = {0, 0.3, 0.5, 0.7, 0.9};
result = j(nrow(rho_vec), 2, 0);
do i = 1 to nrow(rho_vec);
rho = rho_vec[i];
h = z_crit - ncp1;
k = z_crit - ncp2;
conj_power = 1 - probnorm(h) - probnorm(k) + probbnrm(h, k, rho);
result[i, 1] = rho;
result[i, 2] = round(conj_power, 0.0001);
end;
print result[colname={'rho' 'conj_power'}];
quit;result
rho conj_power
0 0.7994
0.3 0.8310
0.5 0.8579
0.7 0.8907
0.9 0.9359RとSASの結果が完全に一致しており、計算の妥当性が確認できます。
実務でのポイント
- サンプルサイズ計算書への明記:複数の主要エンドポイントがある場合、統計解析計画書(SAP)とサンプルサイズ計算書に「同時検出力」の考え方を明記することが、規制当局(PMDA・FDA)への説明責任として求められます。
- エンドポイント間の相関の事前推定:過去の試験データや文献から相関係数 \(\rho\) を事前に推定し、感度分析として「相関ゼロ(保守的)」と「推定相関値」の両シナリオをサンプルサイズ計算書に併記することを推奨します。
- 脱落率・主要エンドポイントの欠測を考慮する:同時検出力の計算はすべてのエンドポイントが観測されることを前提としています。一方のエンドポイントが欠測した患者は「同時有意」の判定に寄与しないため、脱落率を保守的に見積もってサンプルサイズに上乗せする必要があります。
- 多重比較との切り分けを明確に:同時検出力は「すべてを有意にする」のが目標ですが、多重比較補正(Bonferroni、Holm等)は「少なくとも1つを有意にする」確率の制御が目的です。設計の意図によってアプローチが異なるため、混同しないよう注意が必要です。
📚 この記事をより深く理解するための参考書籍
統計・生物統計をさらに深く学びたい方に、おすすめの書籍をご紹介します。
『臨床試験のデザインと解析』丹後俊郎(朝倉書店)
製薬業界の生物統計家が読むべき定番書です。本記事で扱った複数エンドポイントの設計や検出力計算の考え方は、臨床試験全体の設計論と切り離せません。特に第7章のサンプルサイズ設計の章は、本記事の内容を体系的に補完する内容となっています。
『統計学実践ワークブック』日本統計学会(学術図書出版社)
統計検定準1級の公式対応テキストです。本記事で登場した二変量正規分布や多変量分布の理論的な基礎を習得するうえで、特に「多変量解析」の章が役立ちます。
関連記事・次のステップ
- 検出力分析(Power Analysis)入門 ― サンプルサイズ設計について(本記事の前編:単一エンドポイントの検出力基礎)
- ICH E9(R1)統計的原則の解説(複数エンドポイントの規制上の位置づけ)
- 多重比較補正(Bonferroni・Holm・Hochberg)とサンプルサイズへの影響
まとめ
本記事では、複数エンドポイントを同時に検出する確率である同時検出力(Conjunctive Power)の概念と計算方法を解説しました。
独立なエンドポイントの場合、同時検出力は各エンドポイントの個別検出力の積で表され、目標同時検出力から逆算することで各エンドポイントに必要な検出力を求めることができます。エンドポイント間に正の相関がある場合は、二変量正規分布を用いた積分により同時検出力が高くなることも示しました。
RではImvtnorm::pmvnorm()、SASではPROC IMLのPROBBNRM関数を使うことで、相関を考慮した同時検出力を正確に計算できます。2つのエンドポイントで独立に80%の検出力を設定した場合、同時検出力は64%に低下し、80%の同時検出力を確保するには各群のサンプルサイズを85名から106名へ増加させる必要があることを確認しました。
製薬開発において、複数の主要エンドポイントを設定する試験設計は今後ますます増えていくことが予想されます。同時検出力の考え方を試験計画の早い段階から取り入れることが、試験の成功確率を現実的に評価し、規制当局への説明責任を果たすうえで大きな強みになります。
次回は、同じく複数エンドポイントを扱う設計として、Disjunctive Power(いずれか1つでも有意になる確率)とその多重比較補正との関係について解説します。











