Ich versuche, die Anpassungsgüte für einen Vektor von Zähldaten zu einem Binomial zu testen. Dazu benutze ich die goodfit()
Funktion im vcd
Paket. Wenn ich die Funktion ausführe, wird jedoch NaN
der p-Wert des Chi-Quadrat-Tests zurückgegeben. In meinem Setup habe ich einen Vektor von Zähldaten mit 75 Elementen.
> 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))
Alles funktioniert gut, aber wenn ich das goodfit()
Objekt inspiziere, erhalte ich Folgendes:
> 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
Ich vermutete zunächst, dass es sich um ein kleines Problem mit der Stichprobengröße handelte, habe aber auch einen Datensatz mit 50 Beobachtungen, der NaN
für den p-Wert nicht zurückgegeben wird. Ich habe auch versucht, die Methode goodfit()
mit ähnlichen Ergebnissen auf ML umzustellen .
Warum würde diese Funktion NaN
in diesem Fall produzieren? Gibt es eine alternative Funktion zur Berechnung des GOF anhand von Zähldaten?
quelle
Antworten:
Sie haben keine Frequenzen in beobachteten Zählungen. Das erklärt
NaN
s in Ihren Daten. Wenn Sie sich eintest.gof
Objekt ansehen , sehen Sie Folgendes:Sie haben 56 Nullen. Wie auch immer, meiner Meinung nach ist diese Frage für http://stats.stackexchange.com .
quelle
Wären Sie mit einem chirurgisch veränderten Goodfit-Objekt glücklicher?
quelle
Versuchen Sie es zu zeichnen. Sie erhalten eine bessere Vorstellung davon, was los ist. Wie bereits erwähnt, erhalten Sie NaN, weil Sie 0 Frequenzen an chisq.test () übergeben.
quelle