Tôi đang cố gắng kiểm tra mức độ phù hợp của một vectơ dữ liệu đếm đến nhị thức. Để làm như vậy tôi đang sử dụng goodfit()
chức năng trong vcd
gói. Tuy nhiên, khi tôi chạy hàm, nó sẽ trả về NaN
giá trị p của phép thử Chi bình phương. Trong thiết lập của tôi, tôi có một vectơ dữ liệu đếm với 75 phần tử.
> 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))
Mọi thứ hoạt động tốt, nhưng khi tôi kiểm tra goodfit()
đối tượng, tôi nhận được như sau:
> 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
Tôi nghi ngờ đó là một vấn đề kích thước mẫu nhỏ lúc đầu, nhưng tôi cũng có một bộ dữ liệu với 50 quan sát không trả về NaN
giá trị p. Tôi cũng đã cố gắng chuyển phương thức goodfit()
sang ML với kết quả tương tự.
Tại sao chức năng này sẽ được sản xuất NaN
trong trường hợp này? Có một chức năng thay thế để tính toán GOF trên dữ liệu đếm?