library(outilscoursglm)
On illustre l’approche développée dans [Esbjörn Ohlsson, Combining generalized linear models and credibility models in practice, Scandinavian Actuarial Journal 2008 (2008), no. 4, 301–314] pour traiter par une approche de crédibilité l’effet d’une variable catégorielle dans un modèle GLM log-Poisson.
On utilise un jeu de données retraité à partir d’un jeu de données
synthétique dû à M. W"uthrich et C. Buser, lui-même inspiré du jeu de
données freMTPL2freqdu paquet CASdatasets.
Celui-ci ne comporte que des variables catégorielles, parmi lesquelles
ct (représentant un canton suisse) va être traité par
crédibilité.
load(url("https://irma.math.unistra.fr/~jberard/donnees_credib_GLM"))
str(donnees)
## 'data.frame': 213214 obs. of 9 variables:
## $ age : Factor w/ 62 levels "[18,20]","(20,21]",..: 7 25 30 31 41 8 45 46 19 22 ...
## $ ac : Factor w/ 22 levels "[0,1]","(1,2]",..: 1 1 1 1 1 2 1 2 14 14 ...
## $ power : Factor w/ 11 levels "[0,1]","(1,2]",..: 1 1 1 1 1 1 2 2 2 2 ...
## $ gas : Factor w/ 2 levels "Diesel","Regular": 1 1 1 1 1 1 1 1 1 1 ...
## $ brand : Factor w/ 11 levels "B1","B10","B11",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ area : Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ct : Factor w/ 26 levels "AG","AI","AR",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ claims: num 0 0 0 0 0 0 0 0 0 0 ...
## $ expo : num 0.5 0.42 2 0.48 0.83 0.16 0.42 0.43 1.47 1.34 ...
On applique ensuite la méthode itérative d’estimation : on estime
alternativement les effets aléatoires (via les équations de crédibilité
de type Bühlmann-Straub) et les effets fixes (coefficients des variables
autres que ct), jusqu’à la convergence apparente des
valeurs estimées. (Ici, on se fixe comme critère d’arrêt une variation
relative entre deux étapes consécutives inférieure à \(10^{-3}\), ce qui est atteint après \(4\) itérations.)
ajuste_cred <- ajuste_effet_cred_log_pois(formule = claims ~ age + ac + power + gas + brand + area,
nom_rep = "claims",
nom_expo = "expo",
nom_var_cred = "ct",
donnees = donnees)
## Itération 1 taux de variation max. = 0.2314655
## Itération 2 taux de variation max. = 0.009572057
## Itération 3 taux de variation max. = 0.002624635
## Itération 4 taux de variation max. = 0.0007266273
Le résultat contient d’une part les effets fixes, ajustés dans la
composante ajustement_autre_var, et d’autre part les effets
aléatoires \(\hat{U}_j,\) estimés dans
la composante U_j_hat.
summary(ajuste_cred[["ajustement_autres_var"]])
##
## Call:
## glm(formula = formule_cred, family = poisson(link = "log"), data = donnees)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.049306 0.055725 -18.830 < 2e-16 ***
## age(20,21] -0.304828 0.077550 -3.931 8.47e-05 ***
## age(21,22] -0.450980 0.076100 -5.926 3.10e-09 ***
## age(22,23] -0.589702 0.072461 -8.138 4.01e-16 ***
## age(23,24] -0.820133 0.071600 -11.454 < 2e-16 ***
## age(24,25] -0.938992 0.071624 -13.110 < 2e-16 ***
## age(25,26] -0.953615 0.068573 -13.907 < 2e-16 ***
## age(26,27] -1.046386 0.067210 -15.569 < 2e-16 ***
## age(27,28] -0.967085 0.064032 -15.103 < 2e-16 ***
## age(28,29] -1.067131 0.064161 -16.632 < 2e-16 ***
## age(29,30] -1.114736 0.063433 -17.574 < 2e-16 ***
## age(30,31] -1.175265 0.063508 -18.506 < 2e-16 ***
## age(31,32] -1.167093 0.062662 -18.625 < 2e-16 ***
## age(32,33] -1.183767 0.062869 -18.829 < 2e-16 ***
## age(33,34] -1.102311 0.061554 -17.908 < 2e-16 ***
## age(34,35] -1.073102 0.060616 -17.703 < 2e-16 ***
## age(35,36] -1.162733 0.061218 -18.993 < 2e-16 ***
## age(36,37] -1.156878 0.061220 -18.897 < 2e-16 ***
## age(37,38] -1.149469 0.060658 -18.950 < 2e-16 ***
## age(38,39] -1.135701 0.060953 -18.632 < 2e-16 ***
## age(39,40] -1.195974 0.061696 -19.385 < 2e-16 ***
## age(40,41] -1.096996 0.060130 -18.244 < 2e-16 ***
## age(41,42] -1.115516 0.060490 -18.441 < 2e-16 ***
## age(42,43] -1.099549 0.060476 -18.181 < 2e-16 ***
## age(43,44] -1.127832 0.060877 -18.526 < 2e-16 ***
## age(44,45] -1.056150 0.060228 -17.536 < 2e-16 ***
## age(45,46] -1.152657 0.061599 -18.712 < 2e-16 ***
## age(46,47] -1.181619 0.061723 -19.144 < 2e-16 ***
## age(47,48] -1.062788 0.060171 -17.663 < 2e-16 ***
## age(48,49] -1.061910 0.060206 -17.638 < 2e-16 ***
## age(49,50] -1.099157 0.060470 -18.177 < 2e-16 ***
## age(50,51] -1.124170 0.060226 -18.666 < 2e-16 ***
## age(51,52] -1.118899 0.060000 -18.648 < 2e-16 ***
## age(52,53] -1.128619 0.061299 -18.412 < 2e-16 ***
## age(53,54] -1.111684 0.061232 -18.155 < 2e-16 ***
## age(54,55] -1.133617 0.062444 -18.154 < 2e-16 ***
## age(55,56] -1.153331 0.063347 -18.207 < 2e-16 ***
## age(56,57] -1.222156 0.065661 -18.613 < 2e-16 ***
## age(57,58] -1.177698 0.066673 -17.664 < 2e-16 ***
## age(58,59] -1.302151 0.070490 -18.473 < 2e-16 ***
## age(59,60] -1.292507 0.071692 -18.029 < 2e-16 ***
## age(60,61] -1.194800 0.071261 -16.767 < 2e-16 ***
## age(61,62] -1.346144 0.075540 -17.820 < 2e-16 ***
## age(62,63] -1.382239 0.079866 -17.307 < 2e-16 ***
## age(63,64] -1.379715 0.083343 -16.555 < 2e-16 ***
## age(64,65] -1.362209 0.082378 -16.536 < 2e-16 ***
## age(65,66] -1.249490 0.079633 -15.691 < 2e-16 ***
## age(66,67] -1.373803 0.084169 -16.322 < 2e-16 ***
## age(67,68] -1.471746 0.089472 -16.449 < 2e-16 ***
## age(68,69] -1.366865 0.087459 -15.629 < 2e-16 ***
## age(69,70] -1.313972 0.086618 -15.170 < 2e-16 ***
## age(70,71] -1.407351 0.091051 -15.457 < 2e-16 ***
## age(71,72] -1.286437 0.090264 -14.252 < 2e-16 ***
## age(72,73] -1.340116 0.097257 -13.779 < 2e-16 ***
## age(73,74] -1.486342 0.106839 -13.912 < 2e-16 ***
## age(74,75] -1.203328 0.097791 -12.305 < 2e-16 ***
## age(75,76] -1.298456 0.101784 -12.757 < 2e-16 ***
## age(76,77] -1.348060 0.108108 -12.470 < 2e-16 ***
## age(77,78] -1.227285 0.108532 -11.308 < 2e-16 ***
## age(78,80] -1.378082 0.093926 -14.672 < 2e-16 ***
## age(80,82] -1.182752 0.104127 -11.359 < 2e-16 ***
## age(82,90] -1.053530 0.102726 -10.256 < 2e-16 ***
## ac(1,2] -0.434912 0.022997 -18.911 < 2e-16 ***
## ac(2,3] -0.615943 0.026270 -23.446 < 2e-16 ***
## ac(3,4] -0.637433 0.028151 -22.643 < 2e-16 ***
## ac(4,5] -0.638579 0.029784 -21.440 < 2e-16 ***
## ac(5,6] -0.707001 0.032186 -21.966 < 2e-16 ***
## ac(6,7] -0.764281 0.034231 -22.327 < 2e-16 ***
## ac(7,8] -0.703392 0.033632 -20.914 < 2e-16 ***
## ac(8,9] -0.711401 0.033780 -21.060 < 2e-16 ***
## ac(9,10] -0.753722 0.032316 -23.323 < 2e-16 ***
## ac(10,11] -0.668502 0.035031 -19.083 < 2e-16 ***
## ac(11,12] -0.702767 0.036033 -19.504 < 2e-16 ***
## ac(12,13] -0.746820 0.037897 -19.707 < 2e-16 ***
## ac(13,14] -0.763463 0.040508 -18.847 < 2e-16 ***
## ac(14,15] -0.768177 0.040946 -18.761 < 2e-16 ***
## ac(15,16] -0.767848 0.050161 -15.308 < 2e-16 ***
## ac(16,17] -0.671962 0.056364 -11.922 < 2e-16 ***
## ac(17,18] -0.760507 0.069033 -11.017 < 2e-16 ***
## ac(18,19] -0.894574 0.091291 -9.799 < 2e-16 ***
## ac(19,20] -0.833846 0.107860 -7.731 1.07e-14 ***
## ac(20,23] -0.715822 0.091384 -7.833 4.76e-15 ***
## ac(23,35] -0.566027 0.096657 -5.856 4.74e-09 ***
## power(1,2] 0.259124 0.021267 12.185 < 2e-16 ***
## power(2,3] 0.247359 0.021406 11.556 < 2e-16 ***
## power(3,4] 0.137323 0.021138 6.497 8.22e-11 ***
## power(4,5] -0.013279 0.030645 -0.433 0.664781
## power(5,6] 0.307427 0.032353 9.502 < 2e-16 ***
## power(6,7] 0.226180 0.032411 6.979 2.98e-12 ***
## power(7,8] 0.114941 0.041346 2.780 0.005437 **
## power(8,9] -0.077238 0.062472 -1.236 0.216326
## power(9,10] -0.061032 0.105268 -0.580 0.562067
## power(10,12] -0.142799 0.080420 -1.776 0.075791 .
## gasRegular 0.070735 0.013486 5.245 1.56e-07 ***
## brandB10 0.044430 0.045058 0.986 0.324105
## brandB11 0.082186 0.049378 1.664 0.096023 .
## brandB12 0.145973 0.020068 7.274 3.49e-13 ***
## brandB13 0.093892 0.048596 1.932 0.053347 .
## brandB14 -0.121317 0.090038 -1.347 0.177854
## brandB2 -0.061027 0.019547 -3.122 0.001796 **
## brandB3 -0.008353 0.026138 -0.320 0.749284
## brandB4 -0.100648 0.036133 -2.785 0.005345 **
## brandB5 0.107051 0.029458 3.634 0.000279 ***
## brandB6 0.020790 0.033374 0.623 0.533330
## areaB 0.073948 0.027312 2.708 0.006779 **
## areaC 0.135441 0.022268 6.082 1.18e-09 ***
## areaD 0.241187 0.022480 10.729 < 2e-16 ***
## areaE 0.322558 0.022847 14.118 < 2e-16 ***
## areaF 0.485060 0.051759 9.372 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 100634 on 213213 degrees of freedom
## Residual deviance: 96451 on 213105 degrees of freedom
## AIC: 143856
##
## Number of Fisher Scoring iterations: 6
ajuste_cred[["U_j_hat"]]
## AG AI AR BE BL BS FR GE
## 1.0280248 0.8550832 1.2333098 0.9896391 1.1215884 0.8758454 1.0393887 0.9513612
## GL GR JU LU NE NW OW SG
## 1.0317377 1.0272321 0.8295874 0.8840646 0.9515847 0.9164766 1.1685329 0.9049683
## SH SO SZ TG TI UR VD VS
## 0.8051277 1.1057791 1.1936811 0.7772451 0.9194772 1.0837836 0.9598272 1.0098885
## ZG ZH
## 1.0361970 1.1283263