Un altro esempio di test con risultati probabilmente inconcludenti è un test binomiale per una proporzione quando è disponibile solo la proporzione, non la dimensione del campione. Questo non è del tutto irrealistico: spesso vediamo o ascoltiamo affermazioni scarsamente riportate del modulo "Il 73% delle persone concorda sul fatto che ..." e così via, dove il denominatore non è disponibile.
Supponiamo ad esempio che conosciamo solo la proporzione del campione arrotondata correttamente alla percentuale intera più vicina e desideriamo testare contro al livello .H 1 : π ≠ 0,5 α = 0,05H0:π=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%il campione meno significativo possibile sono 3 successi in 19 prove con quindi questo è di nuovo significativo.Pr(X≤3)≈0.0106<0.025
In effetti è la percentuale arrotondata più alta inferiore al 50% per essere inequivocabilmente significativa al livello del 5% (il suo valore p più alto sarebbe per 4 successi in 17 prove ed è solo significativo), mentre è il risultato non zero più basso che è inconcludente (perché potrebbe corrispondere a 1 successo in 8 prove). Come si può vedere dagli esempi sopra, ciò che accade in mezzo è più complicato! Il grafico sotto ha una linea rossa a : i punti sotto la linea sono inequivocabilmente significativi ma quelli sopra di essa sono inconcludenti. Lo schema dei valori di p è tale che non ci saranno limiti inferiori e superiori singoli sulla percentuale osservata affinché i risultati siano inequivocabilmente significativi.p=24%p=13%α=0.05
Codice 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")
(Il codice di arrotondamento viene estratto da questa domanda StackOverflow .)