Іншим прикладом тесту з можливо непереконливими результатами є біноміальний тест на пропорцію, коли доступна лише пропорція, а не розмір вибірки. Це не зовсім нереально - ми часто бачимо чи чуємо погано повідомлені твердження форми "73% людей згодні з тим, що ..." і так далі, де знаменника немає.
Н0: π= 0,5Н1: π≠ 0,5α = 0,05
p = 5 %1195 %α = 0,05
p = 49 %
p = 50 %Н0
p = 0 %p = 50 %p = 5 %p = 0 %p = 100 %p = 16 %Пр ( X≤ 3 ) ≈ 0,00221 < 0,025 так був би значним; для ми можемо мати 1 успіх у 6 випробуваннях, що є незначним, тому цей випадок є непереконливим (оскільки явно є інші вибірки з які було б суттєвим); для може бути 2 успіху в 11 випробуваннях (незначний, ), тому цей випадок також є непереконливим; але дляp = 17 %Пр ( X≤ 1 ) ≈ 0,109 > 0,025p = 16 %p = 18 %Пр ( X≤ 2 ) ≈ 0,0327 > 0,025p = 19 %найменш значущий зразок - 3 успіхи в 19 випробуваннях з тож це знову важливо.Пр ( X≤ 3 ) ≈ 0,0106 < 0,025
Насправді - це найвищий відсоток округлення нижче 50%, який є однозначно значущим на рівні 5% (його найвище значення р було б для 4 успіхів у 17 випробуваннях і є просто значущим), тоді як це найнижчий ненульовий результат, який є непереконливим (тому що це може відповідати 1 успіху в 8 випробуваннях). Як видно з наведених вище прикладів, те, що відбувається між ними, складніше! На графіку внизу є червона лінія у : точки під рядком однозначно значущі, але ті, що над ним, є непереконливими. Шаблон p-значень такий, що не буде одноосібної нижньої та верхньої меж спостережуваного відсотка, щоб результати були однозначно значущими.p = 13 % α = 0,05p = 24 %p = 13 %α = 0,05
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 .)