Jusqu'à présent, j'ai utilisé la statistique de Shapiro-Wilk afin de tester les hypothèses de normalité dans de petits échantillons.
Pourriez-vous s'il vous plaît recommander une autre technique?
Jusqu'à présent, j'ai utilisé la statistique de Shapiro-Wilk afin de tester les hypothèses de normalité dans de petits échantillons.
Pourriez-vous s'il vous plaît recommander une autre technique?
Réponses:
Les fBasics package en R (qui fait partie de Rmetrics ) comprend plusieurs tests de normalité , couvrant de nombreux tests fréquentistes populaires - Kolmogorov-Smirnov, Shapiro-Wilk, Jarque – Bera et D'Agostino - ainsi qu'un emballage pour les tests de normalité dans le paquet le plus au nord - Anderson – Darling, Cramer – von Mises, Lilliefors (Kolmogorov-Smirnov), le chi carré Pearson et Shapiro – Francia. La documentation du package fournit également toutes les références importantes. Voici une démo qui montre comment utiliser les tests de nortest .
Une approche, si vous avez le temps, consiste à utiliser plus d'un test et à vérifier l'accord. Les tests varient de plusieurs façons, il n'est donc pas tout à fait simple de choisir "le meilleur". Qu'est-ce que les autres chercheurs de votre domaine utilisent? Cela peut varier et il peut être préférable de s'en tenir aux méthodes acceptées afin que d'autres acceptent votre travail. J'utilise fréquemment le test de Jarque-Bera, en partie pour cette raison, et Anderson – Darling pour comparaison.
Vous pouvez consulter «Comparaison des tests de normalité univariée» (Seier 2002) et «Une comparaison de divers tests de normalité» (Yazici; Yolacan 2007) pour une comparaison et une discussion des problèmes.
Il est également trivial de tester ces méthodes de comparaison dans R, grâce à toutes les fonctions de distribution . Voici un exemple simple avec des données simulées (je n'imprimerai pas les résultats pour économiser de l'espace), bien qu'une exposition plus complète soit requise:
library(fBasics); library(ggplot2)
set.seed(1)
# normal distribution
x1 <- rnorm(1e+06)
x1.samp <- sample(x1, 200)
qplot(x1.samp, geom="histogram")
jbTest(x1.samp)
adTest(x1.samp)
# cauchy distribution
x2 <- rcauchy(1e+06)
x2.samp <- sample(x2, 200)
qplot(x2.samp, geom="histogram")
jbTest(x2.samp)
adTest(x2.samp)
Une fois que vous avez les résultats des différents tests sur différentes distributions, vous pouvez comparer les plus efficaces. Par exemple, la valeur de p pour le test de Jarque-Bera ci-dessus a retourné 0,276 pour la distribution normale (acceptant) et <2,2e-16 pour le cauchy (rejetant l'hypothèse nulle).
Pour la normalité, le Shapiro-Wilk réel a un bon pouvoir dans des échantillons assez petits.
Le principal concurrent dans les études que j'ai vues est le général Anderson-Darling, qui s'en sort assez bien, mais je ne dirais pas que c'était mieux. Si vous pouvez clarifier les alternatives qui vous intéressent, une meilleure statistique serait peut-être plus évidente. [modifier: si vous estimez les paramètres, le test AD doit être ajusté pour cela.]
[Je recommande fortement de ne pas considérer Jarque-Bera dans de petits échantillons (qui sont probablement mieux connus sous le nom de Bowman-Shenton dans les cercles statistiques - ils ont étudié la distribution des petits échantillons). La distribution asymptotique des articulations d'asymétrie et de kurtosis ne ressemble en rien à la distribution de petits échantillons - de la même manière, une banane ne ressemble pas beaucoup à une orange. Il a également une très faible puissance contre certaines alternatives intéressantes - par exemple, il a une faible puissance pour capter un bimodal symétrique distribution qui a un kurtosis proche de celui d'une distribution normale.]
Souvent, les gens testent la qualité de leur forme pour des raisons qui s'avèrent ne pas être particulièrement bonnes, ou répondent à une question autre que celle à laquelle ils veulent réellement répondre.
Par exemple, vous savez presque certainement déjà que vos données ne sont pas vraiment normales (pas exactement), il est donc inutile d'essayer de répondre à une question à laquelle vous connaissez la réponse - et le test d'hypothèse n'y répond pas de toute façon .
Étant donné que vous savez que vous n'avez pas déjà de normalité exacte, votre test d'hypothèse de normalité vous donne vraiment une réponse à une question plus proche de "ma taille d'échantillon est-elle suffisamment grande pour capter la quantité de non-normalité que j'ai", tandis que la vraie question à laquelle vous souhaitez répondre est généralement plus proche de "quel est l' impact de cette non-normalité sur ces autres choses qui m'intéressent?". Le test d'hypothèse mesure la taille de l'échantillon, tandis que la question à laquelle vous souhaitez répondre ne dépend pas beaucoup de la taille de l'échantillon.
Il y a des moments où le test de normalité a un certain sens, mais ces situations ne se produisent presque jamais avec de petits échantillons.
Pourquoi testez-vous la normalité?
Il existe toute une catégorie Wikipédia sur les tests de normalité, notamment:
Je pense que AD est probablement le meilleur d'entre eux.
Pour être complet, les économétriciens aiment aussi le test de Kiefer et Salmon de leur article de 1983 dans Economics Letters - il résume les expressions «normalisées» d'asymétrie et de kurtosis qui sont ensuite distribuées en chi carré. J'ai une ancienne version C ++ que j'ai écrite pendant mes études supérieures que je pourrais traduire en R.
Edit: Et voici un article récent de Bierens (re) dérivant Jarque-Bera et Kiefer-Salmon.
Edit 2: J'ai regardé l'ancien code, et il semble que ce soit vraiment le même test entre Jarque-Bera et Kiefer-Salmon.
En fait, le test Kiefer Salmon et le test Jarque Bera sont très différents, comme indiqué à plusieurs endroits, mais plus récemment ici - Moment Tests for Standardized Error Distributions: A Simple Robust Approach par Yi-Ting Chen. Le test Kiefer Salmon par construction est robuste face aux structures d'erreur de type ARCH contrairement au test Jarque Bera standard. Le document de Yi-Ting Chen développe et discute de ce que je pense être les meilleurs tests actuellement.
Pour les tailles d'échantillon <30 sujets, Shapiro-Wilk est considéré comme ayant une puissance robuste - Soyez prudent , lorsque vous ajustez le niveau de signification du test, car cela peut induire une erreur de type II! [1]