J'essaie de tester l'adéquation d'un vecteur de données de comptage à un binôme. Pour ce faire, j'utilise la goodfit()
fonction dans le vcd
package. Cependant, lorsque j'exécute la fonction, elle renvoie NaN
la valeur de p du test du chi carré. Dans ma configuration, j'ai un vecteur de données de comptage avec 75 éléments.
> library(vcd)
> counts <- c(32, 35, 44, 35, 41, 33, 42, 49, 36, 41, 42, 45, 38, 43, 36,
35, 40, 40, 43, 34, 39, 31, 40, 39, 36, 37, 37, 37, 32, 48, 41,
32, 37, 36, 49, 37, 41, 36, 34, 37, 41, 32, 36, 36, 30, 33, 33,
42, 39, 36, 36, 29, 31, 41, 36, 39, 40, 37, 39, 39, 31, 39, 37,
40, 33, 41, 34, 46, 35, 41, 44, 38, 44, 34, 42)
> test.gof <- goodfit(counts, type="binomial",
+ par=list(size=length(counts), prob=0.5))
Tout fonctionne bien, mais lorsque j'inspecte l' goodfit()
objet, j'obtiens ce qui suit:
> summary(test.gof)
Goodness-of-fit test for binomial distribution
X^2 df P(> X^2)
Pearson NaN 75 NaN
Likelihood Ratio 21.48322 19 0.3107244
Warning message:
In summary.goodfit(test.gof) : Chi-squared approximation may be incorrect
Je soupçonnais que c'était un petit problème d'échantillon au début, mais j'ai également un ensemble de données avec 50 observations qui ne revient pas NaN
pour la valeur de p. J'ai également essayé de basculer la méthode en goodfit()
ML avec des résultats similaires.
Pourquoi cette fonction se produirait-elle NaN
dans ce cas? Existe-t-il une fonction alternative pour calculer GOF sur les données de comptage?
la source
Réponses:
Vous avez zéro fréquence dans les comptes observés. Cela explique
NaN
s dans vos données. Si vous regardez untest.gof
objet, vous verrez que:vous avez 56 zéros. Quoi qu'il en soit, à mon humble avis, cette question s'adresse à http://stats.stackexchange.com .
la source
Seriez-vous plus heureux avec un objet goodfit modifié chirurgicalement?
la source
Essayez de le tracer. Vous aurez une meilleure idée de ce qui se passe. Comme mentionné précédemment, vous obtenez NaN parce que vous passez 0 fréquences à chisq.test ()
la source