Ich versuche, verallgemeinerte lineare Modelle an einige Sätze von Zähldaten anzupassen, die möglicherweise überdispers sind oder nicht. Die beiden hier geltenden kanonischen Verteilungen sind das Poisson- und das Negative Binomial (Negbin) mit EV und Varianz
in denen R montiert werden unter Verwendung von, glm(..,family=poisson)
und glm.nb(...)
sind. Es gibt auch die quasipoisson
Familie, die nach meinem Verständnis ein angepasster Poisson mit dem gleichen EV und der gleichen Varianz ist
,
dh irgendwo zwischen Poisson und Negbin fallen. Das Hauptproblem bei der Quasipoisson-Familie ist, dass es keine entsprechende Wahrscheinlichkeit dafür gibt und daher viele äußerst nützliche statistische Tests und Anpassungsmaße (AIC, LR usw.) nicht verfügbar sind.
Wenn Sie die QP- und Negbin-Varianzen vergleichen, stellen Sie möglicherweise fest, dass Sie sie gleichsetzen können, indem Sie . Wenn Sie diese Logik fortsetzen, können Sie versuchen, die Quasipoisson-Verteilung als Sonderfall des Negbin auszudrücken:
,
dh ein Negbin mit thgr; linear abhängig von mgr ; . Ich habe versucht, diese Idee zu verifizieren, indem ich eine zufällige Folge von Zahlen gemäß der obigen Formel generiert und sie mit Folgendem ausstattet :μglm
#fix parameters
phi = 3
a = 1/50
b = 3
x = 1:100
#generating points according to an exp-linear curve
#this way the default log-link recovers the same parameters for comparison
mu = exp(a*x+b)
y = rnbinom(n = length(mu), mu = mu, size = mu/(phi-1)) #random negbin generator
#fit a generalized linear model y = f(x)
glmQP = glm(y~x, family=quasipoisson) #quasipoisson
glmNB = glm.nb(y~x) #negative binomial
> glmQP
Call: glm(formula = y ~ x, family = quasipoisson)
Coefficients:
(Intercept) x
3.11257 0.01854
(Dispersion parameter for quasipoisson family taken to be 3.613573)
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 2097
Residual Deviance: 356.8 AIC: NA
> glmNB
Call: glm.nb(formula = y ~ x, init.theta = 23.36389741, link = log)
Coefficients:
(Intercept) x
3.10182 0.01873
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 578.1
Residual Deviance: 107.8 AIC: 824.7
Beide Anpassungen reproduzieren die Parameter, und die Quasipoisson liefert eine 'vernünftige' Schätzung für . Wir können jetzt auch einen AIC-Wert für die Quasipoisson definieren:
df = 3 # three model parameters: a,b, and phi
phi.fit = 3.613573 #fitted phi value copied from summary(glmQP)
mu.fit = glmQP$fitted.values
#dnbinom = negbin density, log=T returns log probabilities
AIC = 2*df - 2*sum(dnbinom(y, mu=mu.fit, size = mu.fit/(phi.fit - 1), log=T))
> AIC
[1] 819.329
(Ich musste den angepassten Wert von manuell kopieren , da ich ihn im Objekt nicht finden konnte. )summary(glmQP)
glmQP
Da , würde dies anzeigen, dass die Quasipoisson, nicht überraschend, die bessere Anpassung ist; also zumindest , was es tun sollte, und daher könnte es eine vernünftige Definition für den AIC (und damit auch die Wahrscheinlichkeit) einer Quasipoisson sein. Die großen Fragen, die ich noch habe, sind dann A I C Q P
- Ist diese Idee sinnvoll? Basiert meine Überprüfung auf Zirkelschluss?
- Die Hauptfrage für alle, die etwas „erfinden“, was einem etablierten Thema zu fehlen scheint: Wenn diese Idee Sinn macht, warum ist sie nicht bereits in implementiert
glm
?
Bearbeiten: Figur hinzugefügt