Odpowiedzi:
Przede wszystkim moja rada jest taka, że musisz powstrzymać się od wypróbowania rozkładu Poissona, tak jak w przypadku danych. Sugeruję, aby najpierw stworzyć teorię, dlaczego rozkład Poissona powinien pasować do określonego zestawu danych lub zjawiska.
Po ustaleniu tego następnym pytaniem jest, czy rozkład jest jednorodny, czy nie. Oznacza to, czy wszystkie części danych są obsługiwane przez ten sam rozkład Poissona, czy też istnieje w tym zmiana w zależności od jakiegoś aspektu, takiego jak czas lub przestrzeń. Po przekonaniu się o tych aspektach wypróbuj następujące trzy testy:
wyszukaj je, a znajdziesz je łatwo w sieci.
Oto sekwencja poleceń R, które mogą być pomocne. Jeśli zauważysz jakieś błędy, możesz je komentować lub edytować.
set.seed(1)
x.poi<-rpois(n=200,lambda=2.5) # a vector of random variables from the Poisson distr.
hist(x.poi,main="Poisson distribution")
lambda.est <- mean(x.poi) ## estimate of parameter lambda
(tab.os<-table(x.poi)) ## table with empirical frequencies
freq.os<-vector()
for(i in 1: length(tab.os)) freq.os[i]<-tab.os[[i]] ## vector of emprical frequencies
freq.ex<-(dpois(0:max(x.poi),lambda=lambda.est)*200) ## vector of fitted (expected) frequencies
acc <- mean(abs(freq.os-trunc(freq.ex))) ## absolute goodness of fit index acc
acc/mean(freq.os)*100 ## relative (percent) goodness of fit index
h <- hist(x.poi ,breaks=length(tab.os))
xhist <- c(min(h$breaks),h$breaks)
yhist <- c(0,h$density,0)
xfit <- min(x.poi):max(x.poi)
yfit <- dpois(xfit,lambda=lambda.est)
plot(xhist,yhist,type="s",ylim=c(0,max(yhist,yfit)), main="Poison density and histogram")
lines(xfit,yfit, col="red")
#Perform the chi-square goodness of fit test
#In case of count data we can use goodfit() included in vcd package
library(vcd) ## loading vcd package
gf <- goodfit(x.poi,type= "poisson",method= "MinChisq")
summary(gf)
plot(gf,main="Count data vs Poisson distribution")
Podejrzewam, że najłatwiej jest po prostu wykonać test dobroci dopasowania w kwadracie chi .
W rzeczywistości oto miły aplet Java, który to zrobi!
Możesz użyć dyspersji (stosunku wariancji do średniej) jako statystyki testowej, ponieważ Poisson powinien dać dyspersję 1. Oto link do tego, jak używać go jako testu modelowego.
Dla rozkładu Poissona średnia równa się wariancji. Jeśli średnia próbki jest bardzo różna od wariancji próbki, prawdopodobnie nie masz danych Poissona. Wspomniany tutaj również test dyspersji jest formalizacją tego pojęcia.
Jeśli Twoja wariancja jest znacznie większa niż średnia, jak to zwykle bywa, możesz spróbować wypróbować ujemny rozkład dwumianowy.
Możesz narysować pojedynczą cyfrę, na której obserwowane i oczekiwane częstotliwości są rysowane obok siebie. Jeśli rozkłady są bardzo różne i masz również współczynnik wariancji-średni większy niż jeden, dobrym kandydatem jest ujemny dwumian. Przeczytaj sekcję Rozkłady częstotliwości od The R Book
. Zajmuje się bardzo podobnym problemem.
Myślę, że głównym punktem jest to, co podnosi sidmaestro ... czy konfiguracja eksperymentalna lub mechanizm generowania danych obsługuje założenie, że dane mogą pochodzić z rozkładu Poissona.
Nie jestem wielkim fanem testowania założeń dystrybucyjnych, ponieważ testy te zwykle nie są zbyt przydatne. Bardziej użyteczne wydaje mi się przyjęcie założeń dystrybucyjnych lub modelowych, które są elastyczne i dość odporne na odchylenia od modelu, zwykle do celów wnioskowania. Z mojego doświadczenia wynika, że obserwowanie średniej = wariancji nie jest tak częste, więc często negatywny model dwumianowy wydaje się bardziej odpowiedni i obejmuje Poissona jako szczególny przypadek.
Kolejną kwestią, która jest ważna w testowaniu dystrybucji, jeśli tego właśnie chcesz, jest upewnienie się, że nie ma w tym żadnych warstw, które sprawiłyby, że obserwowana dystrybucja byłaby mieszanką innych dystrybucji. Poszczególne rozkłady specyficzne dla warstwy mogą wyglądać jak Poisson, ale obserwowana mieszanina może nie być. Analogiczna sytuacja z regresji zakłada jedynie, że rozkład warunkowy Y | X jest zwykle rozkładem, a nie tak naprawdę rozkład samego Y.
Jeszcze innym sposobem na sprawdzenie tego jest kwantylowy wykres kwantylowy. W R jest qqplot. To bezpośrednio rysuje twoje wartości względem rozkładu normalnego z podobną średnią i sd