Manipulation des données

Avant de pouvoir utiliser les données dans l’algorithme XGBoost, on doit d’abord effectuer un certain traitement des données.

Censuration des données

Dans la pratique, nous ne connaissons pas encore le vrai montant à l’ultime pour les réclamations qui sont plus récentes. Cet aspect a été tenu en compte, et une fonction du package permet de censurer les réclamations pour lesquelles nous ne sommes pas censé connaître l’information

ClNr AY Pay00 Pay01 Pay02 Pay03 Pay04 Pay05 Pay06 Pay07 Pay08 Pay09 Pay10 Pay11 real_ultimate
10031 1997 0 345 0 0 0 0 0 0 0 NA NA NA 345
26457 2002 1015 0 0 0 NA NA NA NA NA NA NA NA 1015
36641 2005 0 NA NA NA NA NA NA NA NA NA NA NA 0
5903 1995 542 0 0 0 0 0 0 0 0 0 0 NA 542
15129 1999 200 0 0 0 0 0 0 NA NA NA NA NA 200

Entrainement

Étant donné que les modèles xgboost peuvent être long à rouler, des modèles déjà entrainés sur les données d’exemple sont inclus avec le package. Les hyperparamètres des modèles sont disponibles dans la table suivante :

Modèle nrounds verbose objective eval_metric eta max_depth min_child_weight subsample colsample_bytree
A 1184 0 reg:squarederror rmse 0.1 3 20 0.5 0.5
B 66 0 reg:squarederror rmse 0.1 3 20 0.5 0.5
C 740 0 reg:squarederror rmse 0.1 3 20 0.5 0.5

Note : la vignette entrainement_modeles permet d’avoir un peu plus de détail sur la procédure.

Distribution prédictive des réserves totales (Bootstrap)

## Vraie réserve (selon données simulées du test set)
vraie_reserve <- test_dt %>% summarise(paye = sum(Paid), total = sum(Ultimate), R = total - paye)

## Calcul des réserves totales selon chaque modèle
aa <- apply(bs_pred_a, 2, sum)
bs_res_a <- (aa - sum(test_dt$Paid)) %>% data.frame(A = .)

bb <- apply(bs_pred_b, 2, sum)
bs_res_b <- (bb - sum(test_dt$Paid)) %>% data.frame(B = .)

cc <- apply(bs_pred_c, 2, sum)
bs_res_c <- (cc - sum(test_dt$Paid)) %>% data.frame(C = .)

Et on obtient le tableau suivant :

Modèle moyenne sd VaR95 VaR99
A 25 482 234 1 720 920 27 927 106 27 951 939
B 2 937 217 1 653 261 5 326 843 5 885 246
C 24 057 011 1 098 914 25 779 615 26 007 870

Et le graphique suivant :

RMSE selon devYear

Interptétabilité des modèles