In "A Practioner's guide to Generalized linear models" in paragraph 1.83 it is stated that:
In the particular case of a Poisson multiplicative GLM it can be shown that modelling claim counts with an offset term equal to the log of the exposure produced identical results to modelling claim frequencies with prior weights set to be equal to the exposure of each observation.
I am not able to find any further references of this results, so I took upon some empirical testing in which i was not able to find proof that the statement is correct. Can anyone provide some insight in why this results may be right/wrong.
FYI, I used the following R code to test the hypothesis, in which I could not obtain similar results for the two mentioned cases:
n=1000
m=10
# Generate random data
X = matrix(data = rnorm(n*m)+1, ncol = m, nrow = n)
intercept = 2
coefs = runif(m)
offset = runif(n)
## DGP: exp of Intercept + linear combination X variables + log(offset)
mu = exp(intercept + X%*%coefs + log(offset))
y = rpois(n=n, lambda=mu)
df = data.frame('y'=y, 'X'=X, 'offset' = offset)
formula = paste("y ~", paste(colnames(df)[grepl("X", colnames(df))],
collapse = "+"))
# First model using log(offset) as offset
fit1 = glm(formula, family = "poisson", df, offset = log(offset))
# Second model using offset as weights for individual observations
fit2 = glm(formula, family = "poisson", df, weights = offset)
# Third model using poisson model on y/offset as reference
dfNew = df
dfNew$y = dfNew$y/offset
fit3 = glm(formula, family = "poisson", dfNew)
# Combine coefficients with the true coefficients
rbind(fit1$coefficients, fit2$coefficients, fit3$coefficients,
c(intercept, coefs))
The coefficient estimates resulting from running this code is given below:
>
(Intercept) X.1 X.2 X.3 X.4 X.5 X.6
[1,] 1.998277 0.2923091 0.4586666 0.1802960 0.11688860 0.7997154 0.4786655
[2,] 1.588620 0.2708272 0.4540180 0.1901753 0.07284985 0.7928951 0.5100480
[3,] 1.983903 0.2942196 0.4593369 0.1782187 0.11846876 0.8018315 0.4807802
[4,] 2.000000 0.2909240 0.4576965 0.1807591 0.11658183 0.8005451 0.4780123
X.7 X.8 X.9 X.10
[1,] 0.005772078 0.9154808 0.9078758 0.3512824
[2,] -0.003705015 0.9117014 0.9063845 0.4155601
[3,] 0.007595660 0.9181014 0.9076908 0.3505173
[4,] 0.005881960 0.9150350 0.9084375 0.3511749
>
and we can observe the coefficients are not identical.
rm(list=ls() )
in R code you post here! That could surprise somebody running it, making them angry at you. I removed it. I also edited to include the results from running the code. If you had done this originally, maybe you had gotten som response faster, since few readers will run the code themself. $\endgroup$