Je travaille actuellement sur un projet impliquant des GLM (et éventuellement des GAM) de certaines données de comptage au fil du temps. Normalement, je le ferais dans SAS, mais j'essaie de passer à R, et d'avoir ... des problèmes.
Lorsque j'adapte un GLM pour compter les données à l'aide des éléments suivants:
cdi_model <- glm(counts ~ exposure + covariate + month, data=test, family = poisson)
Je reçois:
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
Ignorez un instant les performances, ou leur absence, du modèle lui-même - principalement en jouant avec la syntaxe et autres à ce stade.
Cependant, lorsque j'essaie d'ajuster les données de taux (nombre / jour-personne) et d'utiliser un décalage comme ceci:
cdi_model <- glm(count_rate ~ exposure + covariate + months + offset(log(pd)), data=test, family = poisson)
Je reçois plus de 50 avertissements, tous "1: Dans dpois (y, mu, log = TRUE): non entier x = 0,002082" etc. C'est plus d'un pour chaque observation (il n'y en a que 30 dans l'ensemble de données).
De plus, l'ajustement du modèle semble aller au pot. Sortie comme suit:
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
Malgré cela, si je trace le taux prévu par rapport aux données réelles, l'ajustement ne semble pas bien pire et l'estimation de l'effet réel ne semble pas changer beaucoup.
Quelqu'un a une idée de ce qui se passe - ou si tout va bien et que je manque quelque chose en raison de l'inexpérience?
(counts/thing)
alors le modèle logarithmique linéaire est presque toujourscounts ~ ... + offset(log(thing))
. Et alors que nous sommes en train de deviner les choses, je prédis également quelog(pd) == exposure
...