非常に頻繁に通常の近似が使用されるため、それらは対称であると考えられています。これは、pが約0.5の場合に十分に機能します。binom.test
一方、F分布に基づく「正確な」クロッパー-ピアソン間隔を報告します(両方のアプローチの正確な公式については、こちらを参照してください)。RにClopper-Pearson間隔を実装する場合、次のようになります(注を参照)。
Clopper.Pearson <- function(x, n, conf.level){
alpha <- (1 - conf.level) / 2
QF.l <- qf(1 - alpha, 2*n - 2*x + 2, 2*x)
QF.u <- qf(1 - alpha, 2*x + 2, 2*n - 2*x)
ll <- if (x == 0){
0
} else { x / ( x + (n-x+1)*QF.l ) }
uu <- if (x == 0){
0
} else { (x+1)*QF.u / ( n - x + (x+1)*QF.u ) }
return(c(ll, uu))
}
リンクと実装の両方で、上限と下限の式が完全に異なっていることがわかります。対称信頼区間の唯一のケースは、p = 0.5の場合です。リンクの数式を使用し、この場合はことを考慮に入れると、それがどのように発生するかを簡単に導き出すことができます。n=2×x
個人的には、ロジスティックアプローチに基づいて信頼区間を確認する方が良いと理解しました。二項データは通常、次のように定義されるロジットリンク関数を使用してモデル化されます。
logit(x)=log(x1−x)
このリンク関数は、ロジスティック回帰の誤差項を正規分布に「マッピング」します。結果として、ロジスティックフレームワークの信頼区間は、従来の線形回帰フレームワークのように、ロジット値に関して対称です。ロジット変換は、線形回帰に関する正規性ベースの理論全体を使用できるようにするために正確に使用されます。
逆変換を行った後:
logit−1(x)=ex1+ex
非対称間隔が再び発生します。現在、これらの信頼区間は実際に偏っています。特に二項分布の境界では、カバレッジは期待したものではありません。しかし、実例として、二項分布に非対称な信頼区間があるのは論理である理由を示しています。
Rの例:
logit <- function(x){ log(x/(1-x)) }
inv.logit <- function(x){ exp(x)/(1+exp(x)) }
x <- c(0.2, 0.5, 0.8)
lx <- logit(x)
upper <- lx + 2
lower <- lx - 2
logxtab <- cbind(lx, upper, lower)
logxtab # the confidence intervals are symmetric by construction
xtab <- inv.logit(logxtab)
xtab # back transformation gives asymmetric confidence intervals
注:実際、Rはベータ分布を使用しますが、これは完全に同等であり、計算上少し効率的です。したがって、Rでの実装はここで示したものとは異なりますが、まったく同じ結果が得られます。