Come @whuber ha chiesto nei commenti, una convalida per il mio NO categorico. modifica: con il test shapiro, poiché il test ks a un campione viene effettivamente erroneamente utilizzato. Whuber è corretto: per un uso corretto del test Kolmogorov-Smirnov, è necessario specificare i parametri distributivi e non estrarli dai dati. Questo è tuttavia ciò che viene fatto in pacchetti statistici come SPSS per un test KS a un campione.
Si tenta di dire qualcosa sulla distribuzione e si desidera verificare se è possibile applicare un test t. Quindi questo test viene fatto per confermare che i dati non si discostano dalla normalità in modo sufficientemente significativo da rendere non validi i presupposti sottostanti dell'analisi. Quindi, non sei interessato all'errore di tipo I, ma all'errore di tipo II.
Ora si deve definire "significativamente diverso" per essere in grado di calcolare il minimo n per la potenza accettabile (diciamo 0,8). Con le distribuzioni, non è semplice da definire. Quindi, non ho risposto alla domanda, dato che non posso dare una risposta ragionevole a parte la regola empirica che uso: n> 15 e n <50. In base a cosa? Mi sento in fondo, quindi non posso difendere quella scelta a parte l'esperienza.
Ma so che con solo 6 valori il tuo errore di tipo II è quasi pari a 1, rendendo la tua potenza vicina a 0. Con 6 osservazioni, il test di Shapiro non è in grado di distinguere tra una distribuzione normale, poisson, uniforme o persino esponenziale. Con un errore di tipo II quasi 1, il risultato del test non ha senso.
Per illustrare i test di normalità con il test shapiro:
shapiro.test(rnorm(6)) # test a the normal distribution
shapiro.test(rpois(6,4)) # test a poisson distribution
shapiro.test(runif(6,1,10)) # test a uniform distribution
shapiro.test(rexp(6,2)) # test a exponential distribution
shapiro.test(rlnorm(6)) # test a log-normal distribution
L'unico caso in cui circa la metà dei valori sono inferiori a 0,05, è l'ultimo. Qual è anche il caso più estremo.
se vuoi scoprire qual è il minimo n che ti dà una potenza che ti piace con il test shapiro, puoi fare una simulazione come questa:
results <- sapply(5:50,function(i){
p.value <- replicate(100,{
y <- rexp(i,2)
shapiro.test(y)$p.value
})
pow <- sum(p.value < 0.05)/100
c(i,pow)
})
che ti dà un'analisi di potenza come questa:
da cui concludo che sono necessari circa 20 valori minimi per distinguere un esponenziale da una distribuzione normale nell'80% dei casi.
trama del codice:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)