Existe-t-il un test permettant de déterminer si la surdispersion de GLM est significative?

44

Je crée des GLM de Poisson dans R. Pour vérifier la surdispersion, je regarde le rapport entre la déviance résiduelle et les degrés de liberté fournis par summary(model.name).

Existe-t-il une valeur seuil ou un test pour que ce rapport soit considéré comme "significatif"? Je sais que si c'est> 1, les données sont surdispersées, mais si j'ai des rapports relativement proches de 1 [par exemple, un rapport de 1,7 (déviance résiduelle = 25,48, df = 15) et un autre de 1,3 (rd = 324, df = 253)], devrais-je quand même passer à quasipoisson / binomial négatif? J'ai trouvé ici ce test de signification: 1-pchisq (déviance résiduelle, df), mais je ne l'ai vu qu'une seule fois, ce qui me rend nerveux. J'ai aussi lu (je ne trouve pas la source) qu'un ratio <1,5 est généralement sans danger. Des avis?

kto
la source

Réponses:

45

Dans le package AER, vous trouverez la fonction dispersiontestqui implémente un test de surdispersion de Cameron & Trivedi (1990).

Il fait suite à une idée simple: Dans un modèle de Poisson, la moyenne est et la variance est V un r ( Y ) = μ ainsi. Ils sont égaux. Le test teste simplement cette hypothèse comme hypothèse nulle par rapport à une alternative où V a r ( Y ) = μ + c f ( μ ) où la constante c < 0 signifie sous-dispersion et c > 0 sur- dispersion. La fonction fE(Y)=μVar(Y)=μVar(Y)=μ+cf(μ)c<0c>0 est une fonction monotone (souvent linéaire ou quadratique; la première est la valeur par défaut). Le test résultant est équivalent au test H 0 : c = 0 par rapport à H 1 : c 0 et la statistique de test utilisée est unestatistique t qui est asymptotiquement normale normale sous le zéro.f(.)H0:c=0H1:c0t

Exemple:

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 

Nous voyons clairement ici qu’il existe des preuves de surdispersion (on estime que c est 5,57), ce qui parle assez fortement contre l’hypothèse de l’équidispersion (c = 0).

trafo=1H0:c=1H1:c1c=c+1

Momo
la source
1
Je devais utiliser glm(trips ~ 1, data = data, family = poisson)(c'est-à-dire 1plutôt que .pour mes données), mais super, merci
Phil
12

odTestpsclμ=Var

>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

Ici, la nullité de la restriction de Poisson est rejetée en faveur de ma régression binomiale négative NegBinModel. Pourquoi? Parce que la statistique de test 52863.4998dépasse 2.7055avec a p-value of < 2.2e-16.

L'avantage de the AER dispersiontestest que l'objet retourné de la classe "htest" est plus facile à formater (par exemple, la conversion en LaTeX) que le sans classe 'odTest`.

Luke Singham
la source
5

P__dispmsmeP__dispχ2glmglm.nb

Mischief_Monkey
la source
2

Une autre option consisterait à utiliser un test du rapport de vraisemblance pour montrer qu'un GLM quasipoisson avec surdispersion est nettement supérieur à un GLM poisson ordinaire sans surdispersion:

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
la source