結論が得られない可能性のあるテストのもう1つの例は、サンプルサイズではなく比率のみが利用可能な場合の比率の二項検定です。これは完全に非現実的ではありません。「73%の人がそれに同意する...」という形式の不十分に報告された主張をよく見たり聞いたりします。分母は利用できません。
H0:π=0.5H1:π≠0.5α=0.05
p=5%1195%α=0.05
p=49%
p=50%H0
p=0%p=50%p=5%p=0%p=100%p=16%Pr(X≤3)≈0.00221<0.025p=17%Pr(X≤1)≈0.109>0.025p=16%p=18%Pr(X≤2)≈0.0327>0.025p=19%Pr(X≤3)≈0.0106<0.025
p=24%p=13%α=0.05:線より下の点は明確に重要ですが、それより上の点は決定的ではありません。p値のパターンは、結果が明確に有意であるように、観測されたパーセンテージに単一の下限と上限が存在しないようなものです。
Rコード
# need rounding function that rounds 5 up
round2 = function(x, n) {
posneg = sign(x)
z = abs(x)*10^n
z = z + 0.5
z = trunc(z)
z = z/10^n
z*posneg
}
# make a results data frame for various trials and successes
results <- data.frame(successes = rep(0:100, 100),
trials = rep(1:100, each=101))
results <- subset(results, successes <= trials)
results$percentage <- round2(100*results$successes/results$trials, 0)
results$pvalue <- mapply(function(x,y) {
binom.test(x, y, p=0.5, alternative="two.sided")$p.value}, results$successes, results$trials)
# make a data frame for rounded percentages and identify which are unambiguously sig at alpha=0.05
leastsig <- sapply(0:100, function(n){
max(subset(results, percentage==n, select=pvalue))})
percentages <- data.frame(percentage=0:100, leastsig)
percentages$significant <- percentages$leastsig
subset(percentages, significant==TRUE)
# some interesting cases
subset(results, percentage==13) # inconclusive at alpha=0.05
subset(results, percentage==24) # unambiguously sig at alpha=0.05
# plot graph of greatest p-values, results below red line are unambiguously significant at alpha=0.05
plot(percentages$percentage, percentages$leastsig, panel.first = abline(v=seq(0,100,by=5), col='grey'),
pch=19, col="blue", xlab="Rounded percentage", ylab="Least significant two-sided p-value", xaxt="n")
axis(1, at = seq(0, 100, by = 10))
abline(h=0.05, col="red")
(丸めコードは、このStackOverflow質問から省略されています。)