J'ai un ensemble de données avec la structure suivante:
a word | number of occurrence of a word in a document | a document id
Comment puis-je tester une distribution normale dans R? C'est probablement une question facile mais je suis un novice.
J'ai un ensemble de données avec la structure suivante:
a word | number of occurrence of a word in a document | a document id
Comment puis-je tester une distribution normale dans R? C'est probablement une question facile mais je suis un novice.
zipfR
package.Réponses:
Si je comprends bien votre question, alors pour vérifier si les occurrences de mots dans un ensemble de documents suivent une distribution normale, vous pouvez simplement utiliser un test shapiro-wilk et quelques qqtrots. Par exemple,
Les commandes qqplot donnent:
Vous pouvez voir que le second ensemble de données n'est clairement pas normal par les queues épaisses ( Plus d'infos ).
Dans le test de normalité Shapiro-Walk, la valeur p est grande pour le premier ensemble de données (> 0,9) mais très petite pour le deuxième ensemble de données (<0,01). Cela vous mènera à rejeter l'hypothèse nulle pour la seconde.
la source
qqline
doit avoir une pente et une interception mu .En supposant que votre jeu de données s'appelle
words
et ait unecounts
colonne, vous pouvez tracer l'histogramme pour avoir une visualisation de la distribution:où 100 est le nombre de bacs
Vous pouvez également faire un tracé QQ normal en utilisant
Enfin, vous pouvez également utiliser le test de Shapiro-Wilk pour la normalité
Bien que, regardez cette discussion: Test de normalité: «Essentiellement inutile?
la source
Aucun test ne vous montrera que vos données ont une distribution normale - il ne pourra vous montrer que lorsque les données sont suffisamment incohérentes avec une normale pour que vous rejetiez la valeur null.
Mais les comptages ne sont pas normaux dans tous les cas, ce sont des entiers positifs - quelle est la probabilité qu'une observation d'une distribution normale prenne une valeur qui n'est pas un entier? (... c'est un événement de probabilité 1).
Pourquoi voudriez-vous tester la normalité dans ce cas? C'est évidemment faux.
[Dans certains cas, il n’est pas forcément important que vous sachiez que vos données ne sont pas normales. Les données réelles ne seront jamais (ou presque jamais) réellement tirées d'une distribution normale.]
Si vous avez vraiment besoin de faire un test, le test Shapiro-Wilk (
?shapiro.test
) est un bon test général de normalité, largement utilisé.la source
Une façon plus formelle de considérer la normalité consiste à vérifier si le kurtosis et l'asymétrie sont significativement différents de zéro.
Pour ce faire, nous devons obtenir:
pour kurtosis, et:
pour Skewness.
Ces deux tests sont unilatéraux, vous devez donc multiplier la valeur p par 2 pour devenir bilatéral. Si votre valeur p dépasse 1, vous devrez utiliser 1-kurtosis.test () au lieu de kurtosis.test.
Si vous avez d'autres questions, vous pouvez m'envoyer un e-mail à l'adresse [email protected].
la source
kurtosis()
andskewness()
du paquet moments ? Les résultats utilisant desrnorm()
échantillons sont différents.En plus du test Shapiro-Wilk du paquet de statistiques, le paquet le plus au nord (disponible sur CRAN) fournit d'autres tests de normalité.
la source
En utilisant le
nortest
package de R, ces tests peuvent être effectués:Effectuer le test de normalité Anderson-Darling
Effectuer un test de normalité avec Cramér-von Mises
Effectuer le test du khi-deux de Pearson pour la normalité
Effectuer un test Shapiro-Francia pour la normalité
De nombreux autres tests peuvent être effectués à l'aide du
normtest
package. Voir la description sur https://cran.r-project.org/web/packages/normtest/normtest.pdfla source