Gibt es einen Test, um festzustellen, ob die GLM-Überdispersion signifikant ist?

44

Ich erstelle Poisson-GLMs in R. Um zu überprüfen, ob es zu einer Überdispersion kommt, betrachte ich das Verhältnis der verbleibenden Abweichung zu den Freiheitsgraden, die von bereitgestellt werden summary(model.name).

Gibt es einen Grenzwert oder Test für dieses Verhältnis als "signifikant"? Ich weiß, dass wenn es> 1 ist, die Daten überstreut sind, aber wenn ich Verhältnisse in der Nähe von 1 habe [zum Beispiel ein Verhältnis von 1,7 (Restabweichung = 25,48, df = 15) und ein anderes von 1,3 (rd = 324, df) = 253)], soll ich trotzdem auf Quasipoisson / Negativbinom wechseln? Ich habe hier diesen Signifikanztest gefunden: 1-pchisq (Residual Deviance, df), aber das habe ich nur einmal gesehen, was mich nervös macht. Ich habe auch gelesen (ich kann die Quelle nicht finden), dass ein Verhältnis <1,5 im Allgemeinen sicher ist. Meinungen?

kto
quelle

Antworten:

45

Im R-Paket VRE finden Sie die Funktion dispersiontest, die einen Test auf Überdispersion von Cameron & Trivedi (1990) implementiert .

Es folgt eine einfache Idee: In einem Poisson-Modell ist der Mittelwert und die Varianz ist auch . Sie sind gleich. Der Test testet diese Annahme einfach als Nullhypothese gegen eine Alternative mit wobei die Konstante Unterdispersion und Überdispersion bedeutet. Die Funktion Ist eine monotone Funktion (häufig linear oder quadratisch; die erstere ist die Standardfunktion). Der resultierende Test entspricht dem Test von vs. und die verwendete Teststatistik ist a Statistik, die unter der Null asymptotisch normal ist.E(Y.)=μVeinr(Y.)=μVeinr(Y.)=μ+cf(μ)c<0c>0f(.)H0:c=0H1:c0t

Beispiel:

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 

Hier sehen wir deutlich, dass es Hinweise auf eine Überdispersion gibt (c wird auf 5,57 geschätzt), was ziemlich stark gegen die Annahme einer Äquidispersion spricht (dh c = 0).

Beachten Sie, dass , wenn Sie nicht verwenden trafo=1, es tatsächlich einen Test machen gegen mit , die natürlich das gleiche Ergebnis wie die anderen Test hat der abgesehen davon, dass die Teststatistik um eins verschoben wird. Der Grund dafür ist jedoch, dass letztere der gemeinsamen Parametrisierung in einem Quasi-Poisson-Modell entspricht. H 1 : c 1 c = c + 1H0:c=1H1:c1c=c+1

Momo
quelle
1
Ich musste verwenden glm(trips ~ 1, data = data, family = poisson)(dh 1nicht .für meine Daten), aber großartig, danke
Phil
12

odTestpsclμ=Veinr

>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

Hier wird die Null der Poisson-Restriktion zugunsten meiner negativen binomischen Regression verworfen NegBinModel. Warum? Weil die Teststatistik mit a 52863.4998übersteigt .2.7055p-value of < 2.2e-16

Der Vorteil von AER dispersiontestist, dass das zurückgegebene Objekt der Klasse "htest" einfacher zu formatieren ist (zB in LaTeX zu konvertieren) als das klassenlose "odTest".

Luke Singham
quelle
5

P__dispmsmeP__dispχ2glmglm.nb

Mischief_Monkey
quelle
2

Eine weitere Möglichkeit wäre die Verwendung eines Likelihood-Ratio-Tests, um zu zeigen, dass eine Quasipoisson-GLM mit Überdispersion signifikant besser ist als eine reguläre Poisson-GLM ohne Überdispersion:

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
quelle