Czy istnieje test pozwalający ustalić, czy nadmierna dyspersja GLM jest znacząca?

44

Tworzę Poissona GLM w R. Aby sprawdzić, czy występuje nadmierna dyspersja, przyglądam się stosunkowi odchylenia resztkowego do stopni swobody podanych przez summary(model.name).

Czy istnieje wartość graniczna lub test dla tego stosunku, który należy uznać za „znaczący”? Wiem, że jeśli jest> 1, to dane są rozproszone, ale jeśli mam współczynniki względnie zbliżone do 1 [na przykład jeden stosunek 1,7 (odchylenie resztkowe = 25,48, df = 15) i inny z 1,3 (rd = 324, df = 253)], czy nadal powinienem przejść na quasipoisson / ujemny dwumian? Znalazłem tutaj ten test istotności: 1-pchisq (dewiacja szczątkowa, df), ale widziałem to tylko raz, co mnie denerwuje. Przeczytałem również (nie mogę znaleźć źródła), że stosunek <1,5 jest ogólnie bezpieczny. Opinie?

kto
źródło

Odpowiedzi:

45

W pakiecie R AER znajdziesz funkcję dispersiontest, która implementuje Test na nadmierną dyspersję autorstwa Camerona i Trivedi (1990).

Wynika to z prostej idei: w modelu Poissona średnia to a wariancja to również V a r ( Y ) = μ . Są równi. Test po prostu testuje to założenie jako hipotezę zerową względem alternatywy, w której V a r ( Y ) = μ + c f ( μ ), gdzie stała c < 0 oznacza niską dyspersję, a c > 0 oznacza nadmierną dyspersję. Funkcja fmi(Y)=μV.zar(Y)=μV.zar(Y)=μ+dofa(μ)do<0do>0 to jakaś funkcja monotoniczna (często liniowa lub kwadratowa; pierwsza jest domyślna). Wynikowy test jest równoważny testowaniu H 0 : c = 0 vs. H 1 : c 0, a zastosowana statystyka testowa jeststatystyką t która jest asymptotycznie normalna normalna pod wartością zerową.fa(.)H.0:do=0H.1:do0t

Przykład:

R> library(AER)
R> data(RecreationDemand)
R> rd <- glm(trips ~ ., data = RecreationDemand, family = poisson)
R> dispersiontest(rd,trafo=1)

Overdispersion test

data:  rd
z = 2.4116, p-value = 0.007941
alternative hypothesis: true dispersion is greater than 0
sample estimates:
dispersion 
    5.5658 

Tutaj wyraźnie widzimy, że istnieją dowody na nadmierną dyspersję (c szacuje się na 5,57), co dość mocno przemawia przeciwko założeniu równomierności (tj. C = 0).

trafo=1H.0:do=1H.1:do1do=do+1

Momo
źródło
1
Musiałem użyć glm(trips ~ 1, data = data, family = poisson)(tj. 1Zamiast .danych), ale świetnie, dziękuję
Phil
12

odTestpsclμ=V.zar

>library(pscl)

>odTest(NegBinModel) 

Likelihood ratio test of H0: Poisson, as restricted NB model:
n.b., the distribution of the test-statistic under H0 is non-standard
e.g., see help(odTest) for details/references

Critical value of test statistic at the alpha= 0.05 level: 2.7055 
Chi-Square Test Statistic =  52863.4998 p-value = < 2.2e-16

Tutaj zerowe ograniczenie Poissona zostaje odrzucone na korzyść mojej negatywnej regresji dwumianowej NegBinModel. Dlaczego? Ponieważ statystyki testu 52863.4998przekraczają wartość 2.7055a p-value of < 2.2e-16.

Zaletą AER dispersiontestzwracanego obiektu klasy „htest” jest łatwiejsze formatowanie (np. Konwersja do LaTeX) niż bezklasowy „odTest”.

Luke Singham
źródło
5

P__dispmsmeP__dispχ2)glmglm.nb

Mischief_Monkey
źródło
2

Jeszcze inną opcją byłoby zastosowanie testu współczynnika wiarygodności, aby wykazać, że quasipoisson GLM z nadmierną dyspersją jest znacznie lepszy niż zwykły GLM poissona bez nadmiernej dyspersji:

fit = glm(count ~ treatment,family="poisson",data=data) 
fit.overdisp = glm(count ~ treatment,family="quasipoisson",data=data) 
summary(fit.overdisp)$dispersion # dispersion coefficient
pchisq(summary(fit.overdisp)$dispersion * fit$df.residual, fit$df.residual, lower = F) # significance for overdispersion
Tom Wenseleers
źródło