二項比率の信頼区間 ― Wald・Wilson・Clopper-Pearson・Agresti-Coullの使い分けを被覆確率で検証する ―
本記事にはプロモーション(広告・アフィリエイトリンク)が含まれます。
記事の目次
Toggleこの記事でわかること
- 教科書で習うWald法(正規近似法)が、二項比率ではどこで壊れるのか
- Wilson法・Clopper-Pearson法(正確法)・Agresti-Coull法の考え方と数式
- 4つの方法をRで計算し、
binom.test()やprop.test()とどう対応するのか - 「正確法」は本当に正確なのか ― 被覆確率をRで厳密に計算して確かめる
- 単群試験の奏効率や、有害事象が0件だったときの報告のしかた
はじめに
単群の第II相試験で、20例中6例に奏効が見られました。奏効率は30%です。では、この30%はどれくらいの幅で報告すべきでしょうか。
多くの方が最初に手を伸ばすのは、教科書に載っているあの公式だと思います。標本比率にプラスマイナス1.96倍の標準誤差を足し引きする、いわゆるWald法(正規近似法)です。連続量の平均に対する信頼区間と同じ形をしているので、そのまま比率にも当てはめてしまいがちです。
ところが二項比率では、この公式が驚くほど簡単に破綻します。奏効が0例だったとき、Wald法は「95%信頼区間は [0.000, 0.000]」という答えを返します。20例試して1例も奏効しなかったことを、「奏効率は0%で間違いない」と言い切ってしまうわけです。明らかにおかしい、と感じられるはずです。
一方でRには、比率の信頼区間を出す関数が最初から用意されています。binom.test() は Clopper-Pearson法(正確法)を、prop.test(correct = FALSE) は Wilson法を返します。「正確法」という名前を見ると、いちばん正確な方法なのだから迷わずこれを使えばよさそうにも思えます。ところが本記事で確かめるように、「正確」は「正規近似を使わない」という意味であって、「被覆確率が95%ちょうど」という意味ではありません。
本記事では、Wald法・Wilson法・Clopper-Pearson法・Agresti-Coull法という4つの区間推定法を並べ、それぞれの考え方を整理したうえで、被覆確率(作った区間が真の比率を含む確率)をRで厳密に計算して比較します。シミュレーションではなく、起こりうる結果すべての二項確率を足し上げる計算なので、乱数の揺らぎのない確定した数値で議論できます。想定読者は、製薬企業やCROに入って比率の集計を任され始めた方、統計を学ぶ社会人・大学生、そして統計検定2級〜準1級の受験者です。
信頼区間そのものの考え方から確認したい方は 区間推定入門:数式と図解で理解する信頼区間の世界 を、p値との関係を整理したい方は 信頼区間とp値の関係を図解で理解する をあわせてご覧ください。
Wald法(教科書の公式)はどこで壊れるのか

単群第II相試験で、20例中6例が奏効したとします。奏効率は\(6/20=0.30\)、つまり30%です。しかし試験報告書に「奏効率30%」とだけ書くわけにはいきません。20例という限られた症例数から得られた30%が、母集団での真の奏効率\(p\)をどこまで絞り込めているのかを、信頼区間として示す必要があります。信頼区間そのものの考え方に不安がある方は、区間推定入門:数式と図解で理解する信頼区間の世界を先に眺めておくと、この先の話がつながりやすくなります。
このとき多くの教科書が最初に教えるのが、正規近似にもとづくWald法です。
\[ \hat{p}\pm z_{\alpha/2}\sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \]
標本比率\(\hat{p}=x/n\)を中心に、その標準誤差を1.96倍した幅を左右対称に足し引きするだけの、非常に覚えやすい式です。ルートの中身が比率の標準誤差にあたります(標準偏差との違いは【やさしく解説】標準偏差(SD)と標準誤差(SE)の違いで整理しています)。
ところが、この式は実務でよく出会う場面であっさり壊れます。奏効数\(x\)を0から20まで動かし、4つの方法で95%信頼区間を計算して並べてみましょう。Rの基本機能だけで書けます(環境の準備はR入門を参照してください)。
ci_all <- function(x, n, conf = 0.95) {
z <- qnorm(1 - (1 - conf) / 2)
p <- x / n
wald <- p + c(-1, 1) * z * sqrt(p * (1 - p) / n)
center <- (x + z^2 / 2) / (n + z^2)
half <- z / (n + z^2) * sqrt(x * (n - x) / n + z^2 / 4)
wilson <- center + c(-1, 1) * half
cp <- c(if (x == 0) 0 else qbeta((1 - conf) / 2, x, n - x + 1),
if (x == n) 1 else qbeta(1 - (1 - conf) / 2, x + 1, n - x))
nt <- n + z^2
pt <- (x + z^2 / 2) / nt
ac <- pt + c(-1, 1) * z * sqrt(pt * (1 - pt) / nt)
c(wald, wilson, cp, ac)
}
for (k in c(0, 1, 2, 6, 20)) {
v <- ci_all(k, 20)
cat(sprintf("x=%2d Wald[%.3f, %.3f] Wilson[%.3f, %.3f] C-P[%.3f, %.3f] A-C[%.3f, %.3f]\n",
k, v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8]))
}
x= 0 Wald[0.000, 0.000] Wilson[0.000, 0.161] C-P[0.000, 0.168] A-C[-0.029, 0.190]
x= 1 Wald[-0.046, 0.146] Wilson[0.009, 0.236] C-P[0.001, 0.249] A-C[-0.009, 0.254]
x= 2 Wald[-0.031, 0.231] Wilson[0.028, 0.301] C-P[0.012, 0.317] A-C[0.016, 0.313]
x= 6 Wald[0.099, 0.501] Wilson[0.145, 0.519] C-P[0.119, 0.543] A-C[0.143, 0.521]
x=20 Wald[1.000, 1.000] Wilson[0.839, 1.000] C-P[0.832, 1.000] A-C[0.810, 1.029]
Wald法の破綻は、この出力の中に3つの形であらわれています。
第一に、\(x=0\)(奏効ゼロ)と\(x=20\)(全例奏効)で、区間がWald[0.000, 0.000]とWald[1.000, 1.000]、すなわち幅ゼロの点になります。20例しか観察していないのに「真の奏効率は0%だと断定でき、不確実性はまったくない」と主張していることになり、明らかに誤りです。同じ場面でWilson法は\([0.000,0.161]\)という、常識に合う幅を返しています。
第二に、\(x=1\)と\(x=2\)では下限がそれぞれ\(-0.046\)、\(-0.031\)と負になります。比率は定義上0から1の範囲にしか存在しませんから、報告書に載せられない値です。
第三に、これらほど派手ではありませんが、本題の\(x=6\)でも区間の位置がずれています。Wald法の下限0.099に対し、Wilson法は0.145です。0.10を「これ以上なら開発を継続する」という基準に置いている試験なら、方法の選択だけで結論が反転しかねない差です。
| 状況 | Wald法の答え | 何が問題か |
|---|---|---|
| 奏効ゼロ(x=0, n=20) | [0.000, 0.000] | 幅ゼロ。20例だけで真の奏効率を断定してしまう |
| 全例奏効(x=20, n=20) | [1.000, 1.000] | 同じく幅ゼロ。上振れの偶然を一切考慮しない |
| まれな事象(x=1, 2) | 下限 −0.046 / −0.031 | 存在しない負の比率を含み、そのまま報告できない |
| 中程度の比率(x=6, n=20) | [0.099, 0.501] | 下限がWilson法の0.145より低く、判断基準をまたぐことがある |
原因は式の作り方にあります。本来の標準誤差は\(\sqrt{p(1-p)/n}\)で、中身は未知の母比率\(p\)です。Wald法はここに観測された\(\hat{p}\)をそのまま代入しているため、\(\hat{p}=0\)や\(\hat{p}=1\)だと標準誤差が0と計算され、「ばらつきがない」と誤認してしまいます。もう一つは分布の形です。二項分布は0,1,2,…という離散的な分布で、\(p\)が0や1に近いほど左右非対称に歪みます。左右対称な正規分布を当てはめる近似は、この歪みを表現できません。
「\(n\hat{p}\ge5\) かつ \(n(1-\hat{p})\ge5\) なら正規近似してよい」という経験則を習った方も多いと思います。しかしこの目安は万能ではありません。上の\(x=6\)は\(n\hat{p}=6\)で条件を満たしていますが、それでもWilson法と下限が0.05近くずれています。さらに、この経験則を満たしていても被覆確率が95%に届かない\(p\)が残ることを、後の「被覆確率で比べる」章で数値によって確認します。
Wald法が壊れる場面は、実務でむしろ頻出します。
- 単群第II相試験で奏効例が0〜2例にとどまった
- 安全性の要約で、ある有害事象の発現例数が0件だった
- サブグループ解析で分母が10例前後まで小さくなった
いずれも「まれな事象・少数例」という共通点があります。第III相の主要評価項目のように\(n\)が大きく\(p\)が0.5に近い場面ではWald法でも実害は出にくいのですが、開発の早い段階ほど条件が厳しくなる、という点を押さえておいてください。
つまり必要なのは、\(\hat{p}\)が0や1に張り付いても幅を持ち、区間が\([0,1]\)からはみ出さない方法です。次の章では、その要件を満たす3つの改良法を見ていきます。
Wilson・Clopper-Pearson・Agresti-Coull ― 3つの改良法の考え方
Wald法が壊れる原因は、突き詰めると「標準誤差の中に推定値 \(\hat{p}\) をそのまま代入してしまう」一点にあります。ここでは、その一点をどう手当てするかで分かれる3つの改良法を、考え方のレベルで整理します。信頼区間そのものの意味があいまいな方は、先に区間推定入門を確認しておくと読みやすくなります。
Wilson法(スコア法) は、分母の \(p\) を推定値に置き換えません。検定統計量の不等式 \(|\hat{p}-p|/\sqrt{p(1-p)/n}\le z\) を、\(p\) を未知数のまま二次不等式として解きます。解いた結果が次の形です。
\[ \frac{\hat{p}+\frac{z^2}{2n}}{1+\frac{z^2}{n}}\pm\frac{z}{1+\frac{z^2}{n}}\sqrt{\frac{\hat{p}(1-\hat{p})}{n}+\frac{z^2}{4n^2}} \]
第1項が区間の中心ですが、これは \(\hat{p}\) ではなく \(\hat{p}\) と 0.5 の間に引き寄せられた値になります。二次方程式の解として得られるため、区間は必ず \([0,1]\) の内側に収まります。「有意水準5%で棄却されない \(p\) の集合」という信頼区間の定義に忠実な作り方で、検定と区間の対応関係がそのまま形になったものと言えます。
Clopper-Pearson法(正確法) は、正規近似を一切使わず、二項分布の裾確率を直接使います。下限は「その \(p\) のもとで観測値 \(x\) 以上が出る確率がちょうど2.5%になる \(p\)」、上限は「\(x\) 以下が出る確率がちょうど2.5%になる \(p\)」です。この境界はベータ分布の分位点で表せて、下限は \(\mathrm{Beta}(x,n-x+1)\) の2.5%点、上限は \(\mathrm{Beta}(x+1,n-x)\) の97.5%点になります。離散分布の裾確率を等号込みで扱う発想は、製薬業界におけるFisherの正確検定と同じ系譜です。
Clopper-Pearson法の「正確(exact)」は、二項分布を正規近似せずに扱っているという意味であって、被覆確率が95%ちょうどになるという意味ではありません。実際には区間が広すぎて95%を上回りがちです。この点は記事後半で被覆確率を実際に計算して確かめます。離散分布ゆえに確率がぴったり2.5%にならないことが原因で、その事情は連続分布のp値と離散分布のp値、そしてmid-p値の意義と共通です。
Agresti-Coull法 は、「成功も失敗も約2件ずつ足してからWald法を当てはめる」という調整です。\(z^2\approx3.84\) なので、分子に \(z^2/2\approx1.92\)、分母に \(z^2\approx3.84\) を足すことになり、実質は「+2成功・+2失敗」。手計算しやすく説明も簡単な一方、最後にWald法を当てはめるため、区間が \([0,1]\) をはみ出すことがあります。
| 方法 | 考え方 | 区間が[0,1]に収まるか | 向いている場面 |
|---|---|---|---|
| Wald | 標準誤差に \(\hat{p}\) を代入した正規近似 | 収まらない | 教科書での説明用。実務では推奨しない |
| Wilson | \(p\) を残した不等式を \(p\) について解く | 必ず収まる | 既定の選択肢。小標本・低い比率でも安定 |
| Clopper-Pearson | 二項分布の裾確率(ベータ分位点) | 必ず収まる | 規制提出など、広めでも被覆を割りたくない場面 |
| Agresti-Coull | +2成功・+2失敗してからWald | はみ出すことがある | 手計算・概算。教育的な説明にも便利 |
Rで4つの信頼区間を計算して比べる

考え方を押さえたら、実際に数字を出してみましょう。単群第II相試験で20例中6例が奏効した(奏効率30%)という設定で、4つの区間をbase Rだけで計算します。Rの基本操作に不安がある方はR入門もあわせてどうぞ。
# 単群第II相試験を想定:20例中6例が奏効(奏効率30%)
x <- 6
n <- 20
z <- qnorm(0.975)
p_hat <- x / n
# Wald法(多くの教科書に載っている公式)
wald <- p_hat + c(-1, 1) * z * sqrt(p_hat * (1 - p_hat) / n)
# Wilson法(スコア法)
center <- (x + z^2 / 2) / (n + z^2)
half <- z / (n + z^2) * sqrt(x * (n - x) / n + z^2 / 4)
wilson <- center + c(-1, 1) * half
# Clopper-Pearson法(正確法):ベータ分布の分位点で定義される
cp <- c(qbeta(0.025, x, n - x + 1), qbeta(0.975, x + 1, n - x))
# Agresti-Coull法:成功・失敗を約2件ずつ足してからWald
n_t <- n + z^2
p_t <- (x + z^2 / 2) / n_t
ac <- p_t + c(-1, 1) * z * sqrt(p_t * (1 - p_t) / n_t)
out <- rbind(Wald = wald, Wilson = wilson, ClopperPearson = cp, AgrestiCoull = ac)
res <- data.frame(lower = round(out[, 1], 4), upper = round(out[, 2], 4),
width = round(out[, 2] - out[, 1], 4))
res
lower upper width
Wald 0.0992 0.5008 0.4017
Wilson 0.1455 0.5190 0.3735
ClopperPearson 0.1189 0.5428 0.4239
AgrestiCoull 0.1432 0.5213 0.3781
幅の順に並べると Wilson 0.3735 < Agresti-Coull 0.3781 < Wald 0.4017 < Clopper-Pearson 0.4239 です。
・Clopper-Pearsonがいちばん広い=もっとも保守的。区間を広くとることで被覆確率を割らないようにしている、という設計思想が幅にそのまま出ています。
・Waldは幅こそ中位ですが、位置が左にずれています。下限0.0992はWilsonの0.1455より0.05近く低く、上限0.5008もWilsonの0.5190より低い。幅が普通でも「区間の置き場所」が誤っているのがWald法の怖さです。
・WilsonとAgresti-Coullはほぼ同じ区間(下限0.1455と0.1432、上限0.5190と0.5213)。Agresti-Coullが「+2/+2してWald」という粗い調整なのに実用に耐えるのは、この近さが理由です。
自前で書かなくても、Rの組み込み関数で同じ値が得られます。
prop.test(x, n, correct = FALSE)$conf.int # Wilson法と一致する
binom.test(x, n)$conf.int # Clopper-Pearson法と一致する
[1] 0.1454772 0.5189728
attr(,"conf.level")
[1] 0.95
[1] 0.1189316 0.5427892
attr(,"conf.level")
[1] 0.95
prop.test(x, n, correct = FALSE) の 0.1454772, 0.5189728 は上のWilsonの0.1455, 0.5190と、binom.test(x, n) の 0.1189316, 0.5427892 はClopper-Pearsonの0.1189, 0.5428と一致しています。実務ではこの2つを覚えておけば十分で、公式を手打ちする必要はありません。一方、導出そのものを問われる試験対策では、上のスクラッチ実装を写経して式と対応づけておくとよいでしょう。
prop.test() の既定は連続性補正あり(correct = TRUE)です。これはWilson法にさらに補正を加えたもので、区間はより広く保守的になります。Wilson法の値がほしいときは correct = FALSE を明示してください。解析計画書に「Wilsonの信頼区間」とだけ書くと補正の有無で数値が変わるため、補正の有無まで含めて記載するのが安全です。被覆確率で比べる ― 「正確法」は本当に正確か

ここまでは「1つのデータから作った区間の広さ」を見てきました。しかし手法の善し悪しを決めるのは、区間の広さではなく被覆確率(coverage probability)です。被覆確率とは、真の母比率 \(p\) が決まっているとき、その手順で作った95%信頼区間が真の \(p\) を含む確率のことをいいます。95%と名乗る以上は0.95であってほしいわけですが、二項分布は離散な分布なので、実際にはぴったり0.95にはなりません。この「ズレ方」こそが4つの手法の性格を映し出します。
被覆確率は乱数シミュレーションでも近似できますが、二項分布では厳密に計算できます。起こりうる観測値は \(x=0,1,\dots,n\) の有限個しかないので、それぞれについて区間を作り、真の \(p\) を含むものだけ二項確率 \(\Pr(X=x)\) を足し上げればよいだけです。乱数を使わないので、シードも試行回数も必要ありません。先ほど定義した ci_all() をそのまま使います。
# 被覆確率=「区間が真の p を含む確率」。シミュレーションではなく、
# 起こりうる x(0〜n)すべての二項確率を足し上げて厳密に求める
coverage <- function(p, n, conf = 0.95) {
xs <- 0:n
ci <- sapply(xs, function(x) ci_all(x, n, conf))
pr <- dbinom(xs, n, p)
c(sum(pr * (ci[1, ] <= p & p <= ci[2, ])),
sum(pr * (ci[3, ] <= p & p <= ci[4, ])),
sum(pr * (ci[5, ] <= p & p <= ci[6, ])),
sum(pr * (ci[7, ] <= p & p <= ci[8, ])))
}
for (n in c(20, 50)) {
for (p in c(0.05, 0.10, 0.30, 0.50)) {
v <- coverage(p, n)
cat(sprintf("n=%3d p=%.2f Wald %.3f Wilson %.3f Clopper-Pearson %.3f Agresti-Coull %.3f\n",
n, p, v[1], v[2], v[3], v[4]))
}
}
n= 20 p=0.05 Wald 0.639 Wilson 0.925 Clopper-Pearson 0.984 Agresti-Coull 0.984
n= 20 p=0.10 Wald 0.876 Wilson 0.957 Clopper-Pearson 0.989 Agresti-Coull 0.957
n= 20 p=0.30 Wald 0.947 Wilson 0.975 Clopper-Pearson 0.975 Agresti-Coull 0.975
n= 20 p=0.50 Wald 0.959 Wilson 0.959 Clopper-Pearson 0.959 Agresti-Coull 0.959
n= 50 p=0.05 Wald 0.920 Wilson 0.962 Clopper-Pearson 0.988 Agresti-Coull 0.962
n= 50 p=0.10 Wald 0.879 Wilson 0.970 Clopper-Pearson 0.970 Agresti-Coull 0.970
n= 50 p=0.30 Wald 0.935 Wilson 0.957 Clopper-Pearson 0.969 Agresti-Coull 0.957
n= 50 p=0.50 Wald 0.935 Wilson 0.935 Clopper-Pearson 0.967 Agresti-Coull 0.935
・n=20・p=0.05 のとき、Waldの被覆確率は0.639です。95%と名乗りながら、実際には6割強しか真の値を含んでいません。稀な有害事象の発現割合を報告する場面がまさにこの領域にあたります。
・Clopper-Pearsonは0.984〜0.989と、常に95%を上回っています。これが保守的(conservative)=区間が広すぎて被覆確率が名目水準を超える、という状態です。「正確法」という名前は「二項分布を正規近似せずに扱う」という意味であって、「被覆確率が95%ちょうど」という意味ではありません。
・Wilsonは0.925〜0.975と、名目の95%のまわりを行き来しながら最も近い値を保っています。
・n=50に増やしても、Waldは p=0.10 で0.879のままです。「nを増やせばWaldでよい」という思い込みは成り立ちません。
では \(p\) を細かく動かして平均をとるとどうなるでしょうか。
# p を 0.01 から 0.99 まで動かし、被覆確率の平均を見る
ps <- seq(0.01, 0.99, by = 0.01)
for (n in c(20, 50, 100)) {
m <- rowMeans(sapply(ps, function(p) coverage(p, n)))
cat(sprintf("n=%3d 平均被覆確率: Wald %.3f Wilson %.3f Clopper-Pearson %.3f Agresti-Coull %.3f\n",
n, m[1], m[2], m[3], m[4]))
}
n= 20 平均被覆確率: Wald 0.853 Wilson 0.954 Clopper-Pearson 0.976 Agresti-Coull 0.963
n= 50 平均被覆確率: Wald 0.908 Wilson 0.950 Clopper-Pearson 0.968 Agresti-Coull 0.957
n=100 平均被覆確率: Wald 0.927 Wilson 0.949 Clopper-Pearson 0.965 Agresti-Coull 0.954
| n | Wald | Wilson | Clopper-Pearson | Agresti-Coull |
|---|---|---|---|---|
| 20 | 0.853 | 0.954 | 0.976 | 0.963 |
| 50 | 0.908 | 0.950 | 0.968 | 0.957 |
| 100 | 0.927 | 0.949 | 0.965 | 0.954 |
Waldは n を20から100へ5倍にしても0.927にとどまり、0.95に届きません。一方でWilsonは0.954→0.950→0.949とほぼ名目どおりで、Agresti-Coullもやや保守的ながら0.954〜0.963と安定しています。Clopper-Pearsonは一貫して0.95を上回り、区間の広さという代償を払って「絶対に下回らない」を買っている手法だとわかります。
実務でのポイント ― 単群試験の奏効率・0件の有害事象・報告のしかた
使い分けの指針
| 場面 | 推奨 | 理由 |
|---|---|---|
| 規制当局への提出(承認申請の主要解析) | Clopper-Pearson | 保守的=有効性を過大に主張しない。慣行として定着しており議論も少ない |
| 論文・社内報告での標準 | Wilson | 被覆確率が名目95%に最も近く、区間も無駄に広がらない |
| 手計算・暗算での見積もり | Agresti-Coull | 成功・失敗を2件ずつ足してWaldを当てるだけ。Wilsonに近い性能 |
| 教科書で習った公式をそのまま使う | Waldは避ける | 小標本・極端な比率で被覆確率が大きく崩れ、区間が0や1をはみ出す |
規制の場面でClopper-Pearsonが選ばれるのは、保守的であることが「主張しすぎない」方向に働くからです。区間が広ければ下限は低めに出るため、有効性を実際より良く見せる危険が減ります。つまり保守的であること自体は欠点ではなく、目的次第で長所にも短所にもなります。探索的な第I相がん臨床試験の用量探索デザインのように「意思決定の材料」として比率を見る段階では、むしろWilsonのほうが実態に即した幅を与えてくれます。二値エンドポイントの単群臨床試験におけるベイズ流デザイン入門で扱う信用区間も、この「区間の目的は何か」という問いの延長線上にあります。
有害事象が観測されなかったとき
安全性の報告では「n例中0件」という結果がしばしば出ます。このとき標本比率は0ですが、リスクが0だと結論することはできません。経験則として知られるのが3の法則(rule of three)で、\(x=0\) のときの95%上限はおおよそ次の値になります。
\[ \text{上限}\approx\frac{3}{n} \]
# 有害事象が1件も観測されなかったとき(x = 0)の95%信頼区間の上限
for (n in c(10, 20, 30, 50, 100)) {
up <- binom.test(0, n)$conf.int[2]
cat(sprintf("n=%3d Clopper-Pearson上限 = %.4f 3/n = %.4f\n", n, up, 3 / n))
}
n= 10 Clopper-Pearson上限 = 0.3085 3/n = 0.3000
n= 20 Clopper-Pearson上限 = 0.1684 3/n = 0.1500
n= 30 Clopper-Pearson上限 = 0.1157 3/n = 0.1000
n= 50 Clopper-Pearson上限 = 0.0711 3/n = 0.0600
n=100 Clopper-Pearson上限 = 0.0362 3/n = 0.0300
3の法則はあくまで近似で、厳密なClopper-Pearson上限よりやや楽観的です。n=100では 0.0362 に対して 3/n は 0.0300、n=20では 0.1684 に対して 0.1500 と、小さめの値を返します。暗算の目安には十分ですが、報告書に載せる数値は厳密な上限を計算してください。
そして最も重要なのは、「観測されなかった」は「起こらない」ではないということです。100例で0件でも、真の発現割合が3.6%である可能性は95%区間の内側に残ります。発現割合の扱いは有害事象(AE)データの統計解析もあわせてご確認ください。
報告のしかたと実装
奏効率を報告するときは、パーセントだけを書いて終わりにしないでください。最低限、分子/分母(例:6/20)、使った区間推定法の名前、信頼係数の3点を明記します。「奏効率30.0%(6/20、95%信頼区間 11.9%〜54.3%、Clopper-Pearson法)」と書けば、読み手は再計算も比較もできます。
そして、どの手法を使うかは統計解析計画書(SAP)の書き方に沿って事前に規定しておきます。データを見てから「Wilsonのほうが幅が狭いからこちらにしよう」と選び直すのは、区間の解釈そのものを壊してしまいます。
SASで実装する場合は、PROC FREQ の BINOMIAL オプションで比率の信頼区間を出力できます。既定で出る区間と別の手法を使いたい場合はオプションで指定できますので、実際に使うバージョンのマニュアルで出力ラベルを確認し、Rの結果と突き合わせて検証しておくと安心です。
解析前に次の点を確認しておきましょう。
- 区間推定法をSAPに事前規定したか(データを見てから選ばない)
- Waldを既定のまま使っていないか。小標本や極端な比率では被覆確率が0.639まで落ちる
- 規制提出ならClopper-Pearson、論文・社内報告ならWilsonという整理でよいか
- 区間が0や1をはみ出していないか、幅が不自然に狭くなっていないか
- 分子/分母・手法名・信頼係数を本文と図表の両方に書いたか
- 有害事象0件の報告で「リスクなし」と読める表現になっていないか
📚 この記事をより深く理解するための参考書籍
二項比率の信頼区間は「区間推定の一般論」「計数データ特有の事情」「Rでの再現」の3層で理解すると定着します。その3層に対応する定番書を1冊ずつ選びました。



prop.test() や binom.test() の結果を自力で再現・確認する力がつきます。章末問題で手を動かせるので、被覆確率のように「自分で書いて確かめる」姿勢を身につけたい方に向きます。関連記事・次のステップ
信頼区間そのものをもう一度固めたい方は、区間推定入門から読み直し、信頼区間とp値の関係で検定との対応を確認してください。正規近似の前提が気になった方には中心極限定理とはもおすすめです。
2群の比較へ広げたい方は、比率の差の検定と信頼区間と分割表の独立性の検定へ進んでください。小標本で正確検定を使う場面は製薬業界におけるFisherの正確検定、離散分布ゆえの保守性の話はmid-p値の意義が本記事の直接の続きになります。
臨床試験の実務につなげたい方は、有害事象(AE)データの統計解析で0件報告の扱いを、単群試験のベイズ流デザイン入門で奏効率評価のもう一つの解き方を確認できます。記載のしかたは統計解析計画書(SAP)の書き方が参考になります。
症例数設計へ進む方は1標本のサンプルサイズ設定と検出力分析入門を、試験対策には統計検定準1級「統計的推定」攻略を、Rの足場づくりにはR入門をどうぞ。
まとめ
本記事では、二項比率の信頼区間を4つの方法で並べ、それぞれの考え方と、被覆確率という物差しでの実力を確かめてきました。
出発点は、教科書に載っているWald法(正規近似法)が実務であっさり壊れるという事実でした。20例中0例なら区間は [0.000, 0.000]、20例中1例なら下限は −0.046。幅ゼロの断定や、存在しない負の比率が平気で出てきます。原因は、標準誤差の中の未知の \(p\) に標本比率 \(\hat{p}\) をそのまま代入していることと、二項分布の非対称性を左右対称な正規近似では表現できないことにありました。
改良法は3つ。Wilson法は \(p\) を残したまま不等式を解くため区間が必ず \([0,1]\) に収まり、Clopper-Pearson法は二項分布の裾確率をベータ分位点で直接扱い、Agresti-Coull法は「+2成功・+2失敗」という直感的な調整でWald法を手当てします。20例中6例のとき、幅はWilson 0.3735、Agresti-Coull 0.3781、Wald 0.4017、Clopper-Pearson 0.4239。Rでは prop.test(x, n, correct = FALSE) がWilson法、binom.test(x, n) がClopper-Pearson法にそのまま対応します。
決め手になったのは被覆確率でした。n=20・真の比率0.05のとき、Wald法の被覆確率はわずか 0.639。95%と名乗りながら、実際には6割強しか真の値を含みません。n=50に増やしてもp=0.10で0.879のままで、「症例数を増やせばWald法でよい」は成り立ちませんでした。逆にClopper-Pearson法は0.984〜0.989と常に95%を上回ります。これは保守的、つまり区間が広すぎるということであり、「正確法」の「正確」が「95%ちょうど」を意味しないことがはっきりしました。名目の95%にもっとも近かったのはWilson法で、平均被覆確率はn=20で0.954、n=100で0.949です。
実務での結論はシンプルです。既定はWilson法、規制当局への提出のように過大な主張を避けたい場面ではClopper-Pearson法、そしてWald法は使わない。あわせて、比率を報告するときは分子と分母(6/20)、使った区間推定法の名前、信頼係数まで明記し、区間の種類は統計解析計画書に事前に決めておいてください。データを見てから広い区間・狭い区間を選び直すことこそ、いちばん避けたい振る舞いです。
同じ「近似が効くか」という問題を平均の側から扱った 中心極限定理とは、2群の比率の差に進みたい方向けの 比率の差の検定と信頼区間について徹底解説、そして安全性集計での実践例を扱った 有害事象(AE)データの統計解析 もあわせてご覧いただければ、比率まわりの扱いに迷うことはなくなるはずです。信頼区間は「公式に当てはめて出すもの」ではなく「どういう性質のものが欲しいかで選ぶもの」だという感覚を、ぜひ持ち帰っていただければと思います。










