Effectuer une Shapiro-Wilk Normality Test
Je veux effectuer un Shapiro-Wilk Normality Test test. Mes données sont csv
format. Il ressemble à ceci:
heisenberg
HWWIchg
1 -15.60
2 -21.60
3 -19.50
4 -19.10
5 -20.90
6 -20.70
7 -19.30
8 -18.30
9 -15.10
Cependant, quand j'ai effectuer le test, j'obtiens:
shapiro.test(heisenberg)
Erreur dans
[.data.frame
(x, complet.cas(x)) :
undefined colonnes sélectionnées
Pourquoi isnt pas R la sélection de la colonne de droite et comment dois-je faire?
Vous devez vous connecter pour publier un commentaire.
Qu'est-shapiro.test faire?
shapiro.test
tests de la hypothèse Nulle que "les échantillons proviennent d'une distribution Normale" contre la hypothèse alternative "les échantillons ne proviennent pas d'une distribution Normale".Comment effectuer shapiro.test en R?
La R page d'aide pour
?shapiro.test
donne,Qui est,
shapiro.test
s'attend à un numérique vecteur comme entrée, qui correspond à l'échantillon que vous souhaitez tester et c'est la seule entrée requise. Puisque vous avez un de données.cadre, vous aurez à passer de la colonne souhaitée en entrée à la fonction comme suit:De l'interprétation des résultats de shapiro.test:
Tout d'abord, je fortement vous suggérons de lire cette excellente réponse de Ian Boursiers sur
testing for normality
.Comme indiqué ci-dessus, le
shapiro.test
teste l'hypothèse NULLE que les échantillons proviennent d'une distribution Normale. Cela signifie que si votre valeur de p <= 0.05, alors vous rejeter l'hypothèse NULLE que les échantillons proviennent d'une distribution Normale. Comme Ian Boursiers de bien le mettre, vous testez contre l'hypothèse de Normalité". En d'autres termes (corrigez-moi si je me trompe), il serait beaucoup mieux si on teste l'hypothèse NULLE que les échantillons ne pas proviennent d'une distribution Normale. Pourquoi? Parce que, de rejeter l'hypothèse NULLE est pas la même que d'accepter l'hypothèse alternative.Dans le cas de l'hypothèse nulle de
shapiro.test
, une valeur de p <= 0.05 serait de rejeter l'hypothèse nulle que les échantillons proviennent d'une distribution normale. Pour mettre lâchement, il est une chance rare que les échantillons proviennent d'une distribution normale. L'effet secondaire de ce test d'hypothèse est que cette chance rare arrive très rarement. Pour illustrer, prenons pour exemple:Donc, c' (notamment) de l'échantillon
runif(50, min=2, max=4)
provient d'une distribution normale selon ce test. Ce que j'essaie de dire, c'est que, il ya beaucoup de nombreux cas, en vertu de laquelle "l'extrême" exigences (p < 0,05) de ne sont pas satisfaits, ce qui conduit à l'acceptation de la "hypothèse NULLE" la plupart du temps, ce qui pourrait être trompeuse.Une autre question, je voudrais citer ici de @PaulHiemstra sous des commentaires sur les effets sur la grande taille de l'échantillon:
Bien qu'il souligne également que la recherche de données de limite de taille protège un peu ceci:
Si l'hypothèse NULLE étaient à l'opposé, le sens, les échantillons ne pas proviennent d'une distribution normale, et vous obtenez un valeur de p < 0,05 à, alors vous conclure que c'est très rare que ces échantillons ne pas proviennent d'une distribution normale (rejeter l'hypothèse NULLE). Que vaguement se traduit par: Il est hautement probable que les échantillons sont distribués normalement (bien que certains statisticiens aime pas cette façon d'interpréter). Je crois que c'est ce que Ian Boursiers ont aussi essayé d'expliquer à son poste. S'il vous plaît corrigez-moi si j'ai reçu quelque chose de mal!
@PaulHiemstra également des commentaires sur des situations pratiques (exemple de régression) lorsque l'on vient sur ce problème de test de normalité:
Ici, je trouve la réponse de Ian Boursiers de Ben Bolker commentaire sous la même question déjà lié ci-dessus aussi (si pas plus) informatif:
Espère que cela efface un peu les choses.
lm
, je ne ferais pas ce test de Shapiro-Wilks, mais faire de l'analyse et de regarder les graphiques de diagnostic de l'issue de l'analyse de juger si toutes les hypothèses de l'analyse où violé trop. Pour la régression linéaire à l'aide delm
ceci est fait en regardant quelques-uns des diagnositc parcelles aide vous obtenezplot(lm())
. La statistique n'est pas une série d'étapes que la toux jusqu'à quelques numéros (hé p < 0.05!) mais nécessite beaucoup d'expérience et de compétence pour juger de la façon de l'analyse de vos données correctement.shapiro.test
protège l'utilisateur à partir de ci-dessus décrit effet, en limitant la taille des données à 5000.Vous postulez
shapiro.test()
à undata.frame
au lieu de la colonne. Essayez ce qui suit:Vous avez omis de préciser les colonnes (de données) pour tester la normalité.
Utiliser ce lieu
Définir les données comme un vecteur et de les placer ensuite dans la fonction.