Comme @whuber l'a demandé dans les commentaires, une validation pour mon NON catégorique. edit: avec le test shapiro, car le test ks à un échantillon est en fait mal utilisé. Whuber est correct: pour une utilisation correcte du test de Kolmogorov-Smirnov, vous devez spécifier les paramètres de distribution et ne pas les extraire des données. C'est cependant ce qui est fait dans les progiciels statistiques comme SPSS pour un test KS à un échantillon.
Vous essayez de dire quelque chose sur la distribution et vous voulez vérifier si vous pouvez appliquer un test t. Donc, ce test est fait pour confirmer que les données ne s'écartent pas suffisamment de la normalité pour rendre invalides les hypothèses sous-jacentes de l'analyse. Par conséquent, vous n'êtes pas intéressé par l'erreur de type I, mais par l'erreur de type II.
Il faut maintenant définir «significativement différent» pour pouvoir calculer le minimum n pour une puissance acceptable (disons 0,8). Avec les distributions, ce n'est pas simple à définir. Par conséquent, je n'ai pas répondu à la question, car je ne peux pas donner de réponse raisonnable en dehors de la règle empirique que j'utilise: n> 15 et n <50. Sur la base de quoi? Gut sentiment fondamental, donc je ne peux pas défendre ce choix en dehors de l'expérience.
Mais je sais qu'avec seulement 6 valeurs, votre erreur de type II est forcément proche de 1, ce qui rend votre puissance proche de 0. Avec 6 observations, le test de Shapiro ne peut pas distinguer entre une distribution normale, poisson, uniforme ou même exponentielle. Avec une erreur de type II proche de 1, le résultat de votre test n'a aucun sens.
Pour illustrer le test de normalité avec le shapiro-test:
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
La seule où environ la moitié des valeurs sont inférieures à 0,05 est la dernière. C'est aussi le cas le plus extrême.
si vous voulez savoir quel est le minimum n qui vous donne une puissance que vous aimez avec le test shapiro, on peut faire une simulation comme celle-ci:
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)
})
ce qui vous donne une analyse de puissance comme celle-ci:
dont je conclus que vous avez besoin d'environ 20 valeurs minimum pour distinguer une exponentielle d'une distribution normale dans 80% des cas.
tracé de code:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)