Dans le "Guide du praticien des modèles linéaires généralisés" au paragraphe 1.83, il est indiqué que:
"Dans le cas particulier d'un GLM multiplicatif de Poisson, il peut être démontré que la modélisation des comptes de sinistres avec un terme de décalage égal au log de l'exposition a produit des résultats identiques à la modélisation des fréquences de revendications avec des poids antérieurs définis pour être égaux à l'exposition de chaque observation. "
Je ne suis pas en mesure de trouver d'autres références de ces résultats, j'ai donc entrepris des tests empiriques dans lesquels je n'ai pas pu trouver la preuve que l'énoncé est correct. Quelqu'un peut-il nous expliquer pourquoi ces résultats peuvent être bons / mauvais?
Pour info, j'ai utilisé le code R suivant pour tester l'hypothèse, dans laquelle je n'ai pas pu obtenir des résultats similaires pour les deux cas mentionnés:
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))
Les estimations de coefficient résultant de l'exécution de ce code sont données ci-dessous:
>
(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
>
et nous pouvons observer que les coefficients ne sont pas identiques.
rm(list=ls() )
dans le code R que vous postez ici! Cela pourrait surprendre quelqu'un qui l'exécute, les mettant en colère contre vous. Je l'ai retiré. J'ai également modifié pour inclure les résultats de l'exécution du code. Si vous l'aviez fait à l'origine, vous avez peut-être obtenu une réponse plus rapide, car peu de lecteurs exécuteront le code eux-mêmes.