Ich arbeite derzeit an einem Projekt, an dem GLMs (und eventuell GAMs) mit einigen Zähldaten im Laufe der Zeit beteiligt sind. Normalerweise würde ich dies in SAS tun, aber ich versuche, zu R zu wechseln, und habe ... Probleme.
Wenn ich einen GLM anpasse, um Daten wie folgt zu zählen:
cdi_model <- glm(counts ~ exposure + covariate + month, data=test, family = poisson)
Ich bekomme:
Deviance Residuals:
Min 1Q Median 3Q Max
-1.9825 -0.7903 -0.1187 0.5717 1.7649
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.97563 0.20117 9.821 < 2e-16 ***
exposure 0.94528 0.30808 3.068 0.00215 **
covariate -0.01317 0.28044 -0.047 0.96254
months -0.03203 0.01303 -2.458 0.01398 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 40.219 on 29 degrees of freedom
Residual deviance: 29.297 on 26 degrees of freedom
AIC: 137.7
Number of Fisher Scoring iterations: 5
Ignorieren Sie für einen Moment die Leistung oder das Fehlen des Modells selbst - spielen Sie an dieser Stelle meistens mit Syntax und dergleichen.
Wenn ich jedoch versuche, Tarifdaten (Anzahl / Personentage) anzupassen und einen Offset wie folgt zu verwenden:
cdi_model <- glm(count_rate ~ exposure + covariate + months + offset(log(pd)), data=test, family = poisson)
Ich erhalte mehr als 50 Warnungen, alle "1: In dpois (y, mu, log = TRUE): nicht ganzzahlig x = 0,002082" usw. Das ist mehr als eine für jede Beobachtung (es gibt nur 30 im Datensatz).
Zusätzlich scheint die Modellanpassung in den Topf zu gehen. Ausgabe wie folgt:
Deviance Residuals:
Min 1Q Median 3Q Max
-0.0273656 -0.0122169 0.0002396 0.0072269 0.0258643
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -15.40110 15.12772 -1.018 0.309
exposure 0.84848 22.18012 0.038 0.969
covariate -0.02751 21.31262 -0.001 0.999
months -0.01889 0.95977 -0.020 0.984
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 0.0068690 on 29 degrees of freedom
Residual deviance: 0.0054338 on 26 degrees of freedom
AIC: Inf
Number of Fisher Scoring iterations: 9
Wenn ich jedoch die vorhergesagte Rate gegen die tatsächlichen Daten zeichne, sieht die Anpassung nicht viel schlechter aus, und die tatsächliche Effektschätzung scheint sich nicht allzu sehr zu ändern.
Hat jemand eine Idee, was los ist - oder ob alles richtig läuft und ich aufgrund von Unerfahrenheit etwas vermisse?
(counts/thing)
vorzustellen, ist das logarithmische lineare Modell fast immercounts ~ ... + offset(log(thing))
. Und während wir das zweite Mal raten, sage ich auch voraus, dasslog(pd) == exposure
...