59 votes

Voir si les données sont normalement distribuées dans R

Quelqu'un peut-il s'il vous plaît m'aider à remplir la fonction suivante dans R:

186voto

Ian Fellows Points 8013

Tests de normalité ne pas faire ce que la plupart pensent qu'ils font. Shapiro test, Anderson Darling, et d'autres sont nulles les tests d'hypothèse à l'ENCONTRE de l'hypothèse de normalité. Ces derniers ne doivent pas être utilisés pour déterminer si l'utilisation normale de la théorie de procédures statistiques. En fait, ils sont pratiquement sans valeur pour l'analyste de données. Dans quelles conditions sommes-nous intéressés à rejeter l'hypothèse nulle que les données sont distribuées normalement? Je n'ai jamais rencontré une situation où un test normal est la bonne chose à faire. Lorsque la taille de l'échantillon est de petite taille, même les grands départs de la normalité ne sont pas détectés, et quand la taille de votre échantillon est grand, même le plus petit écart de la normalité va conduire à un rejet du null.

Par exemple:

> set.seed(100)
> x <- rbinom(15,5,.6)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.8816, p-value = 0.0502

> x <- rlnorm(20,0,.4)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.9405, p-value = 0.2453

Donc, dans ces deux cas (binomiale et loi lognormale variates) la valeur de p est > 0.05 origine d'une défaillance de rejeter la nulle (les données sont normales). Est-ce à dire que nous sommes à conclure que les données sont normales? (indice: la réponse est non). Omission de rejet n'est pas la même chose que de l'accepter. C'est le test d'hypothèse 101.

Mais ce que sur les plus grandes tailles d'échantillons? Prenons le cas où la distribution est très près de la normale.

> library(nortest)
> x <- rt(500000,200)
> ad.test(x)

    Anderson-Darling normality test

data:  x 
A = 1.1003, p-value = 0.006975

> qqnorm(x)

enter image description here

Nous voici à l'aide d'une distribution t de 200 degrés de liberté. Le qq-plot montre la distribution est proche de la normale que toute la distribution, vous êtes susceptible de voir dans le monde réel, mais le test rejette la normalité avec un très haut degré de confiance.

Le test significatif à l'encontre de la normalité dire que nous ne devrions pas normal d'utilisation de la théorie des statistiques dans ce cas? (un autre indice: la réponse est non :) )

25voto

Brian Diggs Points 22433

Je recommande également vivement le dans le paquet. La documentation de la fonction est beaucoup plus utile pour vous que le test lui-même, cependant. Lisez-le bien avant d'utiliser le test.

13voto

BondedDust Points 105234

a certainement ses vertus, mais vous pouvez aussi vouloir regarder .

5voto

Karl Points 1054

Envisagez d'utiliser la fonction `` , qui effectue le test Shapiro-Wilks pour la normalité. J'en ai été heureux.

2voto

P Sellaz Points 257

Le test Anderson-Darling est également utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X