• Aucun résultat trouvé

partie 1 - assurance non-vie tarication & provisionnement

N/A
N/A
Protected

Academic year: 2022

Partager "partie 1 - assurance non-vie tarication & provisionnement"

Copied!
114
0
0

Texte intégral

(1)

HAL Id: cel-00550583

https://cel.hal.science/cel-00550583

Submitted on 28 Dec 2010

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

To cite this version:

Arthur Charpentier. Statistique de l’assurance. 3rd cycle. Université de Rennes 1 et Université de Montréal, 2010, pp.133. �cel-00550583�

(2)

Université de Rennes 1 Université de Montréal 2010-2011

Statistique de l'assurance, STT 6705V Statistique de l'assurance II

partie 1 - assurance non-vie tarication & provisionnement

http ://freakonometrics.blog.free.fr/

(3)
(4)

1 La tarication a priori 5

1.1 Les modèles linéaires généralisés . . . 7

1.1.1 Le cadre général des GLM . . . 7

1.1.2 Approche économétrique de la tarication . . . 9

1.1.3 Estimation des paramètres . . . 10

1.1.4 Interprétation d'une régression . . . 13

1.1.5 Extension à d'autres familles de lois . . . 16

1.1.6 De la qualité d'une régression . . . 16

1.1.7 Les variables tarifaires continues et la nonlinéarité . . 19

1.1.8 Les modèles nonlinéaires multivariés . . . 23

1.2 Modéliser des variables indicatrices . . . 24

1.2.1 La régression logistique ou probit . . . 24

1.2.2 Les arbres de régression . . . 26

1.2.3 Probabilité d'avoir (au moins) un sinistre dans l'année 30 1.2.4 Probabilité d'avoir un gros sinistre dans l'année . . . . 31

1.3 Modéliser la fréquence de sinistralité . . . 34

1.3.1 Un peu d'analyse descriptive . . . 34

1.3.2 La méthode des marges . . . 38

1.3.3 Prise en compte de l'exposition et variable oset . . . 40

1.3.4 Prise en compte de la surdispersion . . . 41

1.3.5 Les modèles zero-inated . . . 44

1.3.6 Régression simple versus régression multiple . . . 47

1.3.7 Prédiction de la fréquence par police . . . 47

1.4 Modéliser les cỏts individuels des sinistres . . . 50

1.4.1 Modèle Gamma et modèle lognormal . . . 50

1.4.2 Modélisation des grands sinistres . . . 57

1.4.3 Ecrêtement des grands sinistres . . . 58

1.5 Modéliser les cỏts par police . . . 60

1.5.1 Les modèles Tweedie comme modèle Poisson composé 60 2 Les provisions pour sinistres à payer 63 2.1 La problématique du provisionnment . . . 63

3

(5)

taires et comptables . . . 63

2.1.2 Formalisation du problème du provisionnement . . . . 65

2.2 Les cadences de paiements et la méthode Chain Ladder . . . 66

2.3 De Mack à Merz & Wüthrich . . . 69

2.3.1 Quantier l'incertitude dans une prédiction . . . 69

2.3.2 Le formalisme de Mack . . . 70

2.3.3 La notion de tail factor . . . 72

2.3.4 Des estimateurs des paramètres à l'incertitude sur le montant des provisions . . . 72

2.3.5 Un mot sur Munich-Chain Ladder . . . 73

2.3.6 L'incertitude à un an de Merz & Wüthrich . . . 78

2.4 Régression Poissonnienne et approches économétriques . . . . 83

2.4.1 Les modèles à facteurs, un introduction historique . . 83

2.4.2 Les modèles de de Vylder et de Chritophides . . . 83

2.4.3 La régression poissonnienne de Hachemeister & Stanard 85 2.4.4 Incertitude dans un modèle de régression . . . 87

2.4.5 Le modèle binomial-négative . . . 91

2.4.6 Quel modèle de régression ? . . . 91

2.5 Les triangles multivariés . . . 92

2.5.1 Hypohtèse d'indépendance entre les triangles, et lois paramétriques . . . 93

2.5.2 Le modèle de Mack bivarié . . . 95

2.5.3 Modèles économétriques pour des risques multiples . . 96

2.6 Borhutter-Fergusson, Benktander et les méthodes bayésiennes 97 2.6.1 Le modèle de Borhutter-Ferguson et l'introduction d'un avis d'expert . . . 97

2.6.2 Benktander . . . 98

2.6.3 La méthode dite Cape-Code . . . 99

2.6.4 Les approches Bayésiennes . . . 100 2.6.5 Approche bayésienne sur les facteurs de développement 104

(6)

La tarication a priori

Pour chaque police d'assurance, la prime est fonction de variables dites de tarication. Généralement, on considère

des informations sur l'assuré, comme l'âge ou le sexe pour un particu- lier, ou le secteur d'activité et le nombre de salariés pour une entreprise, des informations sur le bien assuré, comme l'âge du véhicule, la puis- sance ou la marque en assurance auto, la surface du logement en mul- tirisque habitation, le chire d'aaire de l'entreprise en perte d'exploi- tation,

des informations géograhiques comme le revenu moyen dans la com- mune ou le département, la densité de population, etc.

La fréquence est le nombre de sinistres divisé par l'exposition (correspon- dant au nombre d'années police) pour une police d'assurance, ou un groupe de polices d'assurance. La plupart des contrats étant annuels, on ramènera toujours le nombre de sinistres à une exposition annuelle lors du calcul de la prime, et on notera N la variable aléatoire associée. Durant la période d'exposition, on notera Yi les cỏts des sinistres, c'est à dire les indemnités versées par l'assureur à l'assuré (ou une tierce personne). La charge totale par police est alors S= 0 s'il n'y a pas eu de sinistres, ou sinon :

S =Y1+· · ·+YN =

N

X

i=1

Yi.

Classiquement (et ce point sera important pour constituer la base de don- nées) Yi > 0 etN est alors le nombre de sinistres en excluant les sinistres classés sans suite (i.e. de cỏt nul).

La prime pure est E(S) =E(N)·E(Yi) dès lors que les cỏts individuels sont i.i.d., indépendants du nombre de sinistres. Dans le cas ó la fréquence et les charges sont hétérogènes, l'hétérogénéité étant caractérisée par une informationΩ, la prime pure devrait être :

E(S|Ω) =E(N|Ω)·E(Yi|Ω).

5

(7)

à notre disposition pour obtenir un proxi de ces espérances conditionnelles.

On cherche alors X = (X1,· · · , Xk) un ensemble de variables explicatives telles que

E(S|X) =E(N|X)·E(Yi|X).

Pour importer les bases de données, on utilise le code suivant (seuls les sinistres de responsabilité civile nous intéressent),

sinistreUdM <- read.table("http://perso.univ-rennes1.fr/arthur.charpentier/sinistreUdM.txt", + header=TRUE,sep=";")

> sinistres=sinistreUdM[sinistreUdM$garantie=="1RC",]

> contratUdM <- read.table("http://perso.univ-rennes1.fr/arthur.charpentier/contratUdM.txt", + header=TRUE,sep=";")

Pour consituer une base contenant les nombres de sinistres, le code est le suivant :

> T=table(sinistres$nocontrat)

> T1=as.numeric(names(T))

> T2=as.numeric(T)

> nombre1 = data.frame(nocontrat=T1,nbre=T2)

> I = contratUdM$nocontrat%in%T1

> T1=contratUdM$nocontrat[I==FALSE]

> nombre2 = data.frame(nocontrat=T1,nbre=0)

> nombre=rbind(nombre1,nombre2)

> base = merge(contratUdM,nombre)

> head(base)

nocontrat exposition zone puissance agevehicule ageconducteur bonus

1 27 0.87 C 7 0 56 50

2 115 0.72 D 5 0 45 50

3 121 0.05 C 6 0 37 55

4 142 0.90 C 10 10 42 50

5 155 0.12 C 7 0 59 50

6 186 0.83 C 5 0 75 50

marque carburant densite region nbre

1 12 D 93 13 0

2 12 E 54 13 0

3 12 D 11 13 0

4 12 D 93 13 0

5 12 E 73 13 0

6 12 E 42 13 0

La base nombre contient, par police, le nombre de sinistres en respon- sabilité civile déclaré par l'assuré pendant l'année d'observation. Parmi les variables d'intérêt,

(8)

conducteur principal,

zone : zone A B C D E ou F, selon la densité en nombre d'habitants par km2 de la commune de résidence

marque : marque du véhicule selon la table suivante (1 Renault Nis- san ; 2 Peugeot Citroën ; 3 Volkswagen Audi Skoda Seat ; 4 Opel GM ; 5 Ford ; 6 Fiat ; 10 Mercedes Chrysler ; 11 BMW Mini ;12 Autres ja- ponaises et coréennes ; 13 Autres européennes ; 14 Autres marques et marques inconnues)

region : code à 2 chires donnant les 22 régions françaises (code IN- ageconducteur : âge du conducteur principal en début de la couver-SEE)

ture,

agevehicule : âge du véhicule en début de période.

Nous disposons aussi d'un numéro de police no permettant de fusionner les deux bases, et donc d'associer à la charge d'un sinistre les caractéristiques du conducteur et du véhicule.

1.1 Les modèles linéaires généralisés

Depuis quelques années, l'outil principal utilisé en tarication est le mo- dèle linéaire généralisé, développé par [22], et dont la mise en oeuvre en assurance est détaillée dans [17], [7], [6], [25] ou [9]. Dans cette section, nous allons présenter le cadre des GLM, ainsi que leur mise en oeuvre sous R, avant de rentrer dans l'application en tarication dans les sections suivantes.

1.1.1 Le cadre général des GLM

Les modèles linéaires généralisés sont une généralisation du modèle li- néaire Gaussien, obtenu en autorisant d'autres lois (conditionnelles) que la loi Gaussienne. Les lois possibles doivent appartenir à la famille exponentielle, i.e. dont la densité (ou mesure de probabilité dans le cas discret) s'écrit :

f(y|θ, φ) = exp

yθ−b(θ)

φ +c(y, φ)

Exemple 1.1 La loi normale N(µ, σ2) appartient à cette famille, avec θ= µ, φ=σ2, b(θ) =θ2/2 et

c(y, φ) =−1 2

y2

σ2 + log(2πσ2)

, y∈R,

Exemple 1.2 La loi de PoissonP(λ) appartient à cette famille, f(y|λ) = exp(−λ)λy

y! = exp

ylogλ−λ−logy!

, y∈N,

(9)

Exemple 1.3 La loi binomialeB(n, p)correspond au casθ= log{p/(1−p)}, b(θ) =nlog(1 + exp(θ)), φ= 1 et c(zy, φ) = log

n y

.

Exemple 1.4 La loi Gamma est également dans la famille exponentielle, f(y|µ, ν) = 1

Γ(ν) ν

µ ν

yν−1exp

−ν µy

, y∈R+,

avecθ=−1

µ, b(θ) =−log(−θ) et φ=ν−1.

Pour une variable aléatoire Y dont la densité est de la forme exponen- tielle, alors

E(Y) =b0(θ) et Var(Y) =b00(θ)φ

de telle sorte que la variance deY apparaît comme le produit de deux fonc- tions,

la première,b00(θ), qui dépend uniquement du paramètreθest appelée fonction variance

la seconde est indépendante de θet dépend uniquement de φ

En notant µ=E(Y), on voit que le paramètreθ est lié à la moyenneµ. La fonction variance peut donc être dénie en fonction de µ, nous la noterons dorénavantV(µ).

Exemple 1.5 Dans le cas de la loi normale,V(µ) = 1, dans le cas de la loi de Poisson,V(µ) =µalors que dans le cas de la loi Gamma, V(µ) =µ2.

Notons que la fonction variance caractérise complètement la loi de la famille exponentielle. Chacune des lois de la famille exponentielle possède une fonction de lien spécique, dite fonction de lien canonique, permettant de relier l'espéranceµau paramètre naturel θ. Le lien canonique est tel que g?(µ) =θ. Or, µ=b0(θ) donc g?(·) =b0(·)−1.

Exemple 1.6 Dans le cas de la loi normale, θ = µ (link='identity'), dans le cas de la loi de Poisson,θ= log(µ) (link='log') alors que dans le cas de la loi Gamma, θ= 1/µ (link='inverse').

Sous R, la syntaxe des modèles linéaires généralisées est :

> glm(Y~X1+X2+X3+offset(Z), family =quasipoisson(link='log'), + data, weights)

(10)

E(Yi|Xi) =µi =g−1 X0iβ+ξi

et Var(Yi|Xi) = φV(µi) ωi

ó Y est le vecteur des Yi que l'on cherche à modéliser (le nombre de si- nistres de la police i par exemple), X1, X2 et X3 sont les variables explica- tives qui peuvent être qualitatives (on parlera de facteurs) ou quantitatives, link='log' indique quegest la fonctionlog, family=poisson revient à choi- sir une fonction varianceV identité, alors que family=quasipoisson revient à choisir une fonction variance V identité avec un paramètre de dispersion φ à estimer, offset correspond à la variable ξi, et weights le vecteur ωi. Cette fonction glm calcule alors des estimateurs deβ etφ, entre autres, car comme pour le modèle linéaire gaussien (la fonction lm) on peut obtenir des prédictions, des erreurs, ainsi qu'un grand nombre d'indicateurs relatifs à la qualité de l'ajustement.

1.1.2 Approche économétrique de la tarication

Cette famille de lois (dite exponentielle) va s'avérer être particulièrement utile pour construire des modèles économétriques beaucoup plus généraux que le modèle Gaussien usuel. On suppose disposer d'un échantillon(Yi,Xi), ó les variablesXi sont des informations exogènes sur l'assuré ou sur le bien assuré, et óYi est la variable d'intérêt, qui sera

une variable booléenne 0/1, par exemple l'assuré i a-t-il été victime d'un accident l'an dernier,

une variable de comptage, à valeurs dans N, par exemple le nombre d'accident de l'assuréil'an passé,

une variable positive, à valeurs dansR+, par exemple le cỏt du sinistre i, ou bien la durée entre la survenance et la déclaration du sinistre.

On supposera que, conditionnellement aux variables explicatives X, les variablesY sont indépendantes, et identiquement distribuées. En particulier, on partira d'un modèle de la forme

f(yii, φ) = exp

yiθi−b(θi)

φ +c(yi, φ)

ó l'on supposera que

g(µi) =ηi =X0i

pour une fonction de lien g(·) donnée (on gardera ainsi un score linéaire en les variables explicatives), et ó, pour rappel,

µi =E(Yi|Xi)

La fonction lien est la fonction qui permet de lier les variables explicatives X à la prédiction µ, alors que la loi apparaỵt via la fonction variance, sur

(11)

petit exemple ci-dessous permet de visualiser sur un petit de données simple six régressions GLM diérentes,

> x <- c(1,2,3,4,5)

> y <- c(1,2,4,2,6)

> base <- data.frame(x,y)

> plot(x,y,pch=19,cex=1.5)

> regNId <- glm(y~x,family=gaussian(link="identity"))

> regNlog <- glm(y~x,family=gaussian(link="log"))

> regPId <- glm(y~x,family=poisson(link="identity"))

> regPlog <- glm(y~x,family=poisson(link="log"))

> regGId <- glm(y~x,family=Gamma(link="identity"))

> regGlog <- glm(y~x,family=Gamma(link="log"))

La prédiction (ainsi qu'un intervalle de conance) pour chacun de ces modèles est présentée sur la Figure 1.1. Le code de base pour obtenir la prédiction avec un intervalle de conance (à95%) est simplement

> plot(x,y,pch=19,cex=1.5)

> abs <- seq(0,7,by=.1)

> yp <- predict(regNId,newdata=data.frame(x=abs),se.fit = TRUE, + type="response")

> lines(abs,yp$fit,lwd=2)

> lines(abs,yp$fit+2*yp$se.fit,lty=2)

> lines(abs,yp$fit-2*yp$se.fit,lty=2)

Remarque 1.1 De la même manière qu'en économétrie linéaire, il est aussi possible d'allouer des poids à chacune des observations ωi. Mais nous n'en parlerons pas trop ici. Il peut s'agir de pondération décroisantes avec le temps, attribuées à des années trop anciennes, si l'on utilise des données sur une période plus longue, par exemple.

1.1.3 Estimation des paramètres

La loi de Y sachant X étant spéciée, on obtient numériquement les estimateurs deβ etφpar maximisation de la vraisemblance.

> logv=function(beta){

+ L=beta[1]+beta[2]*sinistres$ageconducteur + -sum(log(dpois(sinistres$nombre,exp(L)))) + }> nlm(f = logv, p = beta)

$minimum

(12)

1 2 3 4 5

12345

x

y

1 2 3 4 5

12345

x

y

1 2 3 4 5

12345

x

y

1 2 3 4 5

123456

x

y

Modèle Gaussien lien logarithmique

1 2 3 4 5

123456

x

y

Modèle Poisson lien logarithmique

1 2 3 4 5

123456

x

y

Modèle Gamma lien logarithmique

Figure 1.1 Prédiction par 6 modèles linéaires diérents, 3 lois et 2 fonc- tions de lien, avec les intervalles de conance de prédiction.

[1] 113429.7

$estimate

[1] -3.157159895 -0.001900410

$gradient

[1] 0.01069032 1.31089786

$code [1] 3

$iterations [1] 25

> glm(nombre~ageconducteur,data=sinistres,family="poisson")$coefficients (Intercept) ageconducteur

-3.157198596 -0.001899561

Notons qu'il est aussi possible d'utiliser une régression linéaire pondérée.

En eet, on cherche à maximiser ici une (log)-vraisemblance (ou une dé- viance comme nous le verrons plus tard), qui s'écrit dans le cas des modèles exponentiels,

logL=

n

X

i=1

Yiθi−b(θi)

a(ψ) −c(Yi, ψ)

(13)

semblance du paramètreβ est atteint au même point que le maximum de la fonction

logL=

n

X

i=1

[Yiθi−b(θi)]

Le maximum est alors atteint enβbtel que

∂βlogL==

n

X

i=1

[Yi−b0i)] ∂

∂θiβ = 0.

Orµi=g(ηi) =g(X0iβ) =b0i), et donc b0i)] ∂

∂θiβ =g(X0iβ)Xi

On cherche alors à résoudre

n

X

i=1

[Yi−µi]g0(X0iβ) V(µi) Xi,

Ce qui correspondrait à la condition du premier ordre dans une régression pondérée, ó la matrice de poids serait W = [wi,j], ó wi,j = 0 si i6=j, et sinon

wi,i = 1

Var(Yi) = 1 µi

= 1

g−1(X0iβ)

Mais cette matrice de poids étant inconnue (elle dépend des paramètres que l'on cherche à estimer), on met en place une itération de régression pondérée, la matrice de poids étant calculée à partir des coecients de l'étape précédante.

Dans le cas d'une régression log-Poisson, le code devient,

> BETA=matrix(NA,101,2)

> REG=lm(nombre~ageconducteur,data=sinistres)

> beta=REG$coefficients

> BETA[1,]=beta

> for(i in 2:15){

+ eta=beta[1]+beta[2]*sinistres$ageconducteur + mu=exp(eta)

+ w=mu

+ z=eta+(sinistres$nombre-mu)/mu

+ REG=lm(z~sinistres$ageconducteur,weights=w) + beta=REG$coefficients

+ BETA[i,]=beta + }

(14)

[,1] [,2]

[1,] 0.04239008 -7.371466e-05 [2,] -0.91696821 -1.418714e-04 [3,] -1.81086687 -3.136888e-04 [4,] -2.55133907 -6.958340e-04 [5,] -3.00654605 -1.315441e-03 [6,] -3.14670636 -1.803882e-03 [7,] -3.15715335 -1.898126e-03 [8,] -3.15719860 -1.899561e-03 [9,] -3.15719860 -1.899561e-03 [10,] -3.15719860 -1.899561e-03 [11,] -3.15719860 -1.899561e-03 [12,] -3.15719860 -1.899561e-03 [13,] -3.15719860 -1.899561e-03 [14,] -3.15719860 -1.899561e-03 [15,] -3.15719860 -1.899561e-03

qui converge très rapidement (vers les bonnes valeurs).

1.1.4 Interprétation d'une régression

Considérons tout simplement une régression de la fréquence annuelle de sinistre sur l'âge du conducteur. On supposera un modèle Poissonnien.

> reg1 <- glm(nombre~ageconducteur,data=nombre,family=poisson(link="log"), + offset=log(exposition))

> summary(reg1) Call:

glm(formula = nombre ~ ageconducteur, family = poisson(link = "log"), data = nombre, offset = log(exposition))

Deviance Residuals:

Min 1Q Median 3Q Max

-0.5685 -0.3527 -0.2611 -0.1418 13.3247 Coefficients:

Estimate Std. Error z value Pr(>|z|) (Intercept) -2.1369116 0.0207723 -102.87 <2e-16 ***

ageconducteur -0.0101679 0.0004397 -23.12 <2e-16 ***

---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

(15)

Null deviance: 171919 on 678012 degrees of freedom Residual deviance: 171373 on 678011 degrees of freedom AIC: 222190

Number of Fisher Scoring iterations: 6

Avec un lien logarithmique, le modèle est multplicatif. Le multiplicateur est ici

> exp(coefficients(reg1)[2]) ageconducteur

0.9898836

Autrement dit, tous les ans, la probabilité d'avoir un accident diminue de 1−0.9898 = 1.011%.

Si l'on considère des classes d'âges (dénies a priori, nous reviendrons par la suite sur la construction optimale des classes), on obtient la régression suivante :

> seuils = c(17,21,25,30,45,55,65,80,120)

> nombre$agecut <- cut(nombre$ageconducteur,breaks=seuils)

> reg2 <- glm(nombre~agecut ,data=nombre,family=poisson(link="log"), + offset=log(exposition))

> summary(reg2) Call:

glm(formula = nombre ~ agecut, family = poisson(link = "log"), data = nombre, offset = log(exposition))

Deviance Residuals:

Min 1Q Median 3Q Max

-0.6566 -0.3522 -0.2601 -0.1413 13.2465 Coefficients:

Estimate Std. Error z value Pr(>|z|) (Intercept) -1.55416 0.03277 -47.42 <2e-16 ***

agecut(21,25] -0.52724 0.04186 -12.60 <2e-16 ***

agecut(25,30] -0.95181 0.03865 -24.62 <2e-16 ***

agecut(30,45] -1.08673 0.03441 -31.58 <2e-16 ***

agecut(45,55] -1.04649 0.03500 -29.90 <2e-16 ***

agecut(55,65] -1.19279 0.03709 -32.16 <2e-16 ***

agecut(65,80] -1.27536 0.03876 -32.90 <2e-16 ***

agecut(80,120] -1.24017 0.06743 -18.39 <2e-16 ***

(16)

Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 (Dispersion parameter for poisson family taken to be 1)

Null deviance: 171919 on 678012 degrees of freedom Residual deviance: 170589 on 678005 degrees of freedom AIC: 221417

Number of Fisher Scoring iterations: 6

Notons qu'il est aussi possible de taper directement

> reg2 = glm(nombre~cut(ageconducteur,breaks=seuils),data=nombre, + family=poisson(link="log"),offset=log(exposition))

La classe de référence est ici celle des jeunes conducteurs (17,21]. Re- lativement à cette classe, on note que toutes les classes ont une probabilité d'avoir un accident plus faible. Pour un conducteur de la classe (30,45], on note qu'il a66%de chances en moins d'avoir un accident dans l'année qu'un jeune conducteur,

> exp(coefficients(reg2)[4])

cut(ageconducteur, breaks = seuils)(30,45]

0.3373169

Au lieu de comparer à la classe des jeunes conducteurs, on peut aussi comparer au conducteur moyen.

> seuils = c(17,21,25,30,45,55,65,80,120)

> reg2 = glm(nombre~0+cut(ageconducteur,breaks=seuils),

+ data=nombre,family=poisson(link="log"),offset=log(exposition)) Les multiplicateurs sont alors

> reg2b <- glm(nombre~1,data=nombre,family=poisson(link="log"), + offset=log(exposition))

> moyenne <- exp(coefficients(reg2b))

> reg2c <- glm(nombre~0+cut(ageconducteur,breaks=seuils),

+ data=nombre,family=poisson(link="log"),offset=log(exposition))

> exp(coefficients(reg2c))/moyenne

Une personne de la classe (17,21] a ainsi2.86fois plus de chance que l'assuré moyen d'avoir un accident.

(17)

Les modèles linéaires généralisés ont été dénis pour des lois (deY, condi- tionnelles aux variables explicatives X) appartenant à la famille exponen- tielle. Il est toutefois possible de généraliser. Les lois de library(gamlss) sont des lois à quatre paramètres, (µ, σ, ν, τ), ó µ est un paramètre de lo- calisation (e.g. la moyenne),σ un paramètre d'échelle (e.g. l'écart-type), et ó ν et τ sont des paramètres d'asymétrie et d'épaisseur de queue (e.g. la skewness et la kurtosis). Ces quatre paramètres peuvent être fonction des variables explicatives au travers d'une fonction de lien,





µ=g−1µ (Xα) σ =g−1σ (Xβ) ν =g−1ν (Xγ) τ =g−1τ (Xδ)

Parmi les lois classiques, on retrouvera celles données dans la Table 1.1.

loi R µ σ ν τ

Binomiale BI logit - - -

Normale NO identité log - -

Poisson PO log - - -

Gamma GA logit - - -

inverse Gaussienne IG log log - -

Gumbel GU identité log - -

lognormale LNO log log - -

binomiale négative (Poisson-Gamma) NBI log log - -

Poisson-inverse Gaussien PIG log log - -

Weibull WEI log log - -

zero inated Poisson ZIP log logit - -

Table 1.1 Les diérentes lois et modèles de library(gamlss)@.

Dans sa version la plus simple, on retrouve le modèle proposé par [11], Yi=X0iβ+εi,modèle en moyenne

logε2i =Z0iα+ui,modèle en variance

óuiest un bruit i.i.d. suivant une loi Gamma. Cette fonction particulière est obtenue à l'aide de la fonction lm.disp de library(dispmod).

1.1.6 De la qualité d'une régression

Pour mesurer les performances d'une régression, ou plus généralement d'un modèle quel qu'il soit, il faut se donner une fonction de risque R(·,·) qui mesure la distance entreY et sa prédiction Yb. Classiquement, on utilise

(18)

norme L , correspondant à l'erreur absolue R(Y,Y) =|Y −Y|.

Si on reprend l'exemple de la section 1.1.2, les résidus sont représenté sur la Figure 1.2. Les résidus de gauche sont les résidus bruts, c'est à dire la diérence entre Yi etYbi. A droite, ce sont les résidus de Pearson, i.e.

εbi = Yi−Ybi q

V(Ybi) óV est la fonction variance.

> RNIr <- residuals(regNId,type="response")

> RNIp <- residuals(regNId,type="pearson")

1 2 3 4 5

−2−1012

Résidus (bruts)

Gaussien, identité Poisson, identité Gamma, identité Gaussien, log Poisson, log Gamma, log

1 2 3 4 5

−2−1012

Résidus de Pearson

Gaussien, identité Poisson, identité Gamma, identité Gaussien, log Poisson, log Gamma, log

Figure 1.2 Résidus de la régression.

Les résidus de Pearson permettent de prendre en compte de l'hétéroscé- dasticité qui apparaỵtra dès lors que l'on quite le modèle Gaussien (la fonction variance ne sera alors plus constante). Pour le modèle log-Poisson, les erreurs L1 etL2 sont respectivement

> cat("Erreur L1 =",sum(abs(RPL)) Erreur L1 = 4.196891

> cat("Erreur L2 =",sum((RPL)^2) Erreur L2 = 5.476764

[5] revient longuement sur l'analyse des résidus dans le cadre de modèles linéaires généralisés.

(19)

est la déviance

D(β) =−2[logL(β|Yb )−logL?(Y)]

ó logL(β|Y) désigne la log-vraisemblance du modèle, et ó logL?(Y) est la log-vraisemblance saturée (obtenue avec un modèle parfait).

> logLik(regPlog)

'log Lik.' -7.955383 (df=2)

> deviance(regPlog) [1] 1.760214

> AIC(regPlog) [1] 19.91077

> -2*logLik(regPlog)+2*2 [1] 19.91077

attr(,"df")

Dans un souci de partimonie, on pénalise souvent log-vraisemblance par le nombre de paramètres, ce qui correspond au critère d'information d'Akaike (AIC, en multipliant par 2). On peut également dénir le critère de Schwartz,

(

AIC :−2 logL(β) + 2kb BIC :−2 logL(β) +b klog(n)

Il existe aussi un critère d'Aikaike corrigé (introduit par [15]) dans le cas ó l'on a trop peu d'observations. Toutes ces fonctions peuvent être obtenues à l'aide de la fonction AIC de library(aod) ou BIC de library(BMA), ou encore extractAIC avec comme paramètre k=log(nrow(base)).

> cat("AIC (Poisson-log) =",extractAIC(regPlog,k=2)[2]) AIC (Poisson-log) = 19.91077

> cat("BIC (Poisson-log) =",extractAIC(regPlog,k=log(nrow(base)))[2]) BIC (Poisson-log) = 19.12964

On peut comparer tous les modèles via :

> AIC(regNId,regNlog,regPId,regPlog,regGId,regGlog)

df AIC

regNId 3 21.10099 regNlog 3 20.63884 regPId 2 19.86546 regPlog 2 19.91077 regGId 3 18.01344 regGlog 3 18.86736

(20)

Le but de la tarication (et plus généralement de toute prédiction) est d'estimer une espérance conditionnelle,

E(S|X =x) =ϕ(x) ou S=ϕ(X1,· · ·, Xk) +ε

ó ϕ:Rk →R. Supposer un modèle linéaire est problement une hypothèse trop forte. Mais on se doute qu'estimer une fonction dénie surRkserait trop complexe numériquement. Un bon compromis est proposé par les modèles dit additifs.

A titre d'illustration, la Figure 1.3 permet de visualiser l'impact de la den- sité de population dans la commune de l'assuré sur la fréquence de sinistre.

Les points noirs correspondent à la fréquence moyenne empirique observée pour diérents niveaux de densité

> library(mgcv)

> reg.gam <- gam(nombre~s(densite),offset=log(exposition), + family=poisson(link="log"),data=sinistres)

> dens.x <- seq(0,30000,100)

> pred <- predict(reg.gam,newdata=data.frame(densite=dens.x,expo=1), + se=TRUE,type="response")

> plot(dens,pred$fit,col="blue",lwd=2)

> lines(dens,pred$fit+2*N1RC0as1$se.fit,col="red",lty=2)

> lines(dens,pred$fit-2*N1RC0as1$se.fit,col="red",lty=2)

Les modèles GAM

Les modèles additifs ont été introduits par [30] qui notait qu'estimer une fonction ϕ:Rk→Rserait numériquement trop complexe (et probablement peu robuste). On cherche ici une décomposition de la forme

S =ϕ1(X1) +· · ·+ϕk(Xk) +ε

ó les fonctions ϕj :R → R sont supposées susament régulières. En fait, ce modèle n'est valable que pour les variables Xj continues, les variables qualitatives continuant - généralement - à intervenir sous une forme linéaire.

Autrement dit, un modèle additif serait

S=ϕ1(X1) +β2X2

óX1 est l'âge du conducteur, etX2 le carburant du véhicule. Notons qu'il serait aussi possible de considérer un modèle de la forme

S=

ϕ1,E(X1) +ε siX2= essence ϕ1,D(X1) +ε siX2= diesel Ces deux types de modèles sont estimés ci-dessous.

(21)

●●

0 5000 10000 15000 20000 25000 30000

0.000.050.100.15

Densité de population

Fréquence annuelle de sinistre

Figure 1.3 Fréquence individuelle en fonction de la densité de population de la commune de résidence du conducteur principal.

> library(mgcv)

> reg <- gam(nombre~s(ageconducteur)+offset(exposition), + data=sinistres,family=poisson)

> age <- seq(17,100)

> AGE <- data.frame(ageconducteur=age,exposition=1)

> Y <- predict(reg,AGE,type="response")

> reg = gam(nombre~s(ageconducteur)+carburant+offset(exposition), + data=sinistres,family=poisson)

> AGE <- data.frame(ageconducteur=age,exposition=1,carburant="E")

> YE <- predict(reg,AGE,type="response")

> AGE <- data.frame(ageconducteur=age,exposition=1,carburant="D")

> YD <- predict(reg,AGE,type="response")

> plot(age,Y,type='l')

> lines(age,YD,col='blue')

> lines(age,YE,col='red')

Pour le premier type de modèle, ou le code suivant pour le second,

> library(mgcv)

> reg <- gam(nombre~s(ageconducteur)+offset(exposition), + data=sinistres,family=poisson)

> age <- seq(17,100)

> AGE <- data.frame(ageconducteur=age,exposition=1)

> Y <- predict(reg,AGE,type="response")

(22)

+ data=sinistres[sinistres$carburant=="E",],family=poisson)

> YE <- predict(reg,AGE,type="response")

> reg <- gam(nombre~s(ageconducteur)+offset(exposition), + data=sinistres[sinistres$carburant=="D",],family=poisson)

> YD=predict(reg,AGE,type="response")

> plot(age,Y,type='l')

> lines(age,YD,col='blue')

> lines(age,YE,col='red')

Ce petit exemple montre bien les limites de ces modèles additifs.

20 40 60 80 100

0.000.050.100.150.20

Age du conducteur principal

Fréquence annuelle de sinistres

Figure 1.4 Modèle GAM addif,S =ϕ1(X1) +β2X2+ε ó X2 désigne le type de carburant.

L'estimation de ces modèles peut se faire de plusieurs manières sous R.

Il y a tout d'abord la fonction gam de library(gam), basé sur l'algorithme proposé par [13]. La fonction gam de library(mgcv) repose sur la métho- dologie développée par [32]. Enn d'autres packages proposent aussi des estimations de ces transformations nonlinéaires, dont library(gmlss) ou library(gss).

Une autre possibilité est également d'uiliser la fonction glm avec la library(splines). On peut alors changer facilement le nombre de degrés de liberté, i.e. le paramètre de lissage de la transformation,

> library(splines)

> reg3 <- glm(nombre~bs(ageconducteur,df=3)+offset(exposition), + data=nombre,family=poisson)

(23)

20 40 60 80 100

0.000.050.100.150.20

Age du conducteur principal

Fréquence annuelle de sinistres

Figure 1.5 Modèle GAM,S =

ϕ1,E(X1) +ε si X2 = essence

ϕ1,D(X1) +ε si X2 = diesel óX2

désigne le type de carburant.

La Figure 1.6 montre ainsi la prédiction de la fréquence moyenne en fonction de l'âge, avec diérents paramètres de lissage.

Les modèles MARS

Une autre classe de modèle particulièrement intéressant a été présentée par [10], appelés MARS, Multiplicative Adaptative Regression Splines. On considère ici une base de fonctions deϕde la forme(±(x−k)+).

En particulier, par rapport à un modèle linéaire simpleY =β01X+ε, on considère ici un modèle avec rupture,

Y =β01max{0, X−k}+β1max{0, k−X}+ε ók devient également un paramètre à estimer.

> library(mda)

> reg <- mars(sinistres$ageconducteur,sinistres$nombre,nk=10)

> summary(lm(sinistres$nombre~reg$x-1)) Call:

lm(formula = sinistres$nombre ~ reg$x - 1) Residuals:

Min 1Q Median 3Q Max

(24)

20 40 60 80 100

0.020.040.060.080.100.12

Age du conducteur principal

Fréquence annuelle de sinistres

3 degrés de liberté 5 degrés de liberté 10 degrés de liberté

-0.08342 -0.03916 -0.03730 -0.03560 15.96203 Coefficients:

Estimate Std. Error t value Pr(>|t|) reg$x1 3.408e-02 4.528e-04 75.271 <2e-16 ***

reg$x2 1.692e-04 2.007e-05 8.432 <2e-16 ***

reg$x3 4.486e-03 1.694e-04 26.477 <2e-16 ***

---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Residual standard error: 0.2071 on 678010 degrees of freedom Multiple R-squared: 0.03526, Adjusted R-squared: 0.03526 F-statistic: 8261 on 3 and 678010 DF, p-value: < 2.2e-16

> age <- seq(17,100)

> Y <- predict(reg,age)

> plot(age,Y)

1.1.8 Les modèles nonlinéaires multivariés

On peut s'autoriser éventuellement encore un peu plus de souplesse en prenant en compte le couple constitué de deux variables continues,

S=ϕ(X1, X2) +ε óϕ:R2→R, au lieu d'un modèle GAM classique,

S =ϕ1(X1) +ϕ2(X2) +ε

(25)

20 40 60 80 100

0.000.020.040.060.080.10

Age du conducteur principal

Fréquence annuelle de sinistre

Figure 1.7 Modèle MARS, impact de l'âge du conducteur principal sur la fréquence de sinistres.

Cette option est proposée par exemple dans library(mgcv)

1.2 Modéliser des variables indicatrices

Les bases des modèles GLM étant posées, nous allons les utiliser en ta- rication, en modélisant tout d'abord des variables indicatrices0/1 dans un premier temps, avant de modéliser la fréquence de sinistres, puis les cỏts individuels dans les prochaines sections.

Remarque 1.2 Les modèles sont très utilisés en techniques de scoring an de savoir s'il convient d'occtroyer un crédit à quelqu'un.

1.2.1 La régression logistique ou probit

La régression logistique suppose que si π(Y|X) =P(Y = 1|X), alors π(Y|X)

1−π(Y|X) = P(Y = 1|X)

P(Y = 0|X) = exp (Xβ)

Dans le cas du modèle probit, on suppose qu'il existe un modèle latent Gaus- sien, tel que

Yi?=X0iβ+εi

et queYi = 0 siYi? < s, etYi = 1 siYi? > s, etεi∼ N(0, σ2).

La synthaxe de ces deux modèles est très proche, car seule la fonction de lien change.

(26)

âge conducteur

âge du v éhicule fréquence

espérée

Figure 1.8 Fréquence préditeYb, en fonction de l'âge du conducteur et de l'ancienneté du véhicule, Yb =ϕ(Xb 1, X2).

> sinistres$touche <- sinistres$nombre>0

> reglogit <- glm(touche~ageconducteur,

+ data=sinistres,family=binomial(link="logit"))

> regprobit <- glm(touche~ageconducteur,

+ data=sinistres,family=binomial(link="probit"))

> age <- seq(17,100)

> AGE <- data.frame(ageconducteur=age,exposition=1)

> Yl <- predict(reglogit,AGE,type="response")

> Yp <- predict(regprobit,AGE,type="response")

> plot(age,Yp-Yl,type="l")

> abline(h=0,lty=2)

On notera que ces deux modèles donnent des prédictions très proches, comme le montre la Figure 1.13.

(27)

20 30 40 50 60 70 80

0510152025

âge conducteur

âge du véhicule

0.05

0.06 0.07

0.08

Figure 1.9 Fréquence préditeYb par un modèle GLMYb = exp(βb0+βb1X1+ βb2X2).

1.2.2 Les arbres de régression

Les arbres de régression sont des outils nonparamétriques de segmenta- tion. Dans un arbre de décision, on cherche à détecter des critères permettant de répartir les individus en2 classes, caractérisées parY = 0 etY = 1. On commence par choisir la variable, qui, par ses modalités, sépare le mieux les individus de chacune des classes. On constitue alors un premier noeud.

On réintère alors la procédure sur chaque nouveau noeud. Dans la méthode CART (Classication And Regression Tree), on regarde toutes les possibili- tés. On continue soit jusqu'à ce qu'il ne reste plus qu'un seul. individu dans chaque noeud, soit suivant un critère d'arrêt. Les critères de discrimination et de constitution des noeuds sont généralement les suivants,

lorsque les variables explicativesXj sont qualitatives, ou discrètes, on utilise la distance duχ2 (on parle d'arbre CHAID),

en présence de variables de tous types, on peut utiliser l'indice de Gini (méthode CART),

ou l'entropie (méthode C5.0),

Pour un varible continue, on distinguera {X1 ≤ s} et {X1 > s}. Pour une variable qualitative, on distinguera{X1 =x}et{X1 6=x}.

Pour chacune des variables, on regarde l'ensemble des classications pos- sibles. Quelles que soient les variables, on dénit :

> seuilagecond <- unique(nombre$ageconducteur)

> seuilregion <- unique(nombre$region)

(28)

20 30 40 50 60 70 80

0510152025

âge conducteur

âge du véhicule

0.05

0.06

0.06 0.07

0.07 0.08

0.08 0.1

0.15 0.2

Figure 1.10 Fréquence prédite Yb par un modèle additif Yb = ϕb1(X1) + ϕb2(X2).

Pour les variables quantitatives, on distingue :

> k=5

> classe0 <- nombre$ageconducteur<=seuilagecod[k]

> classe1 <- nombre$ageconducteur>seuilagecod[k]

alors que pour les variables qualitatives,

> k=5

> classe0 <- nombre$region==seuilregion[k]

> classe1 <- nombre$region!=seuilregion[k]

Une fois constituées les 2 classes, on calcule un des critères possibles.

Si on regarde la décomposition obtenue sur le premier noeud, on observe que pour les conducteurs de moins de 25 ans, la probabilité d'avoir un acci- dent est de 10%, contre 5% pour les conducteurs de plus de 25 ans. Dans le cas des régions, avec une distance du chi-deux, on cherche à minimiser

χ2=− X

classe∈{0,1}

X

y∈{0,1}

[nclasse,y−nclasse,y]2 nclasse,y

ó nclasse,y désigne le nombre de personnes dans la classe considérée pour lesquelles la variableY prend la modalitéy.

> base=sinistres[sinistres$ageconducteur<=85,]

> seuil=sort(unique(base$ageconducteur))

(29)

20 30 40 50 60 70 80

0510152025

âge conducteur

âge du véhicule

0.05

0.06

0.06 0.07

0.08

0.08 0.1

0.15 0.2

Figure 1.11 Fréquence préditeYb par un modèle additifYb =ϕ(Xb 1, X2).

> TABLE=rep(NA,length(seuil))

> names(TABLE)=seuil

> for(k in 1:(length(seuil)-1)){

+ classe0 <- base$ageconducteur<=seuil[k]

+ classe1 <- base$ageconducteur>seuil[k]

+ M=matrix(

+ rbind(c(sum(base$touche[classe0]==FALSE), + sum(base$touche[classe0]==TRUE)), + c(sum(base$touche[classe1]==FALSE), + sum(base$touche[classe1]==TRUE))),2,2) + TABLE[k]=-chisq.test(M)$statistic

}> which.min(TABLE) 236

> plot(seuil,TABLE)

Autrement dit le meilleur découpage possible est (17,23] et (23,85]

A la seconde étape, on cherche une autre partition, en considérant la précédente comme acquise,

> k1 = which(seuil==23)

> for(k in 1:(length(seuil)-1)){

+ if(k!=k1){

+ classe0 <- (base$ageconducteur<=seuil[k])&(base$ageconducteur<=seuil[k1])

(30)

20 30 40 50 60 70 80

0510152025

âge conducteur

âge du véhicule

Figure 1.12 Fréquence prédite Yb par un modèle par classes jointes, (X1, X2)∈[a1, b1]×[a2, b2].

+ classe2 <- (base$ageconducteur>seuil[k])&(base$ageconducteur>seuil[k1]) + classe1 <- 1-classe0-classe2

+ M=matrix(

+ rbind(c(sum(base$touche[classe0]==FALSE), + sum(base$touche[classe0]==TRUE)), + c(sum(base$touche[classe1]==FALSE), + sum(base$touche[classe1]==TRUE)), + c(sum(base$touche[classe2]==FALSE), + sum(base$touche[classe2]==TRUE))),3,2) + TABLE[k]=-chisq.test(M)$statistic

+ }}

> which.min(TABLE) 8467

> plot(seuil,TABLE)

En l'occurence, on ne nous conseille ici pas d'autre classe (ou alors à un âge très avancé). On retrouvera ce découpage en deux classes dans la section sur les modèles MARS par exemple.

Parmi les autres critères, on peut aussi utiliser la distance de Gini,

G=− X

classe∈{0,1}

nclasse n

X

y∈{0,1}

nclasse,y nclasse

1−nclasse,y nclasse

(31)

20 40 60 80 100

0.0340.0350.0360.0370.038

Age du conducteur principal

Probabilité d'avoir au moins un accident

20 40 60 80 100

−0.050.000.05

Age du conducteur principal

Différence relative (%)

Figure 1.13 Régression logistique (logit) versus modèle latent Gaussien (probit) pour prédire la probabilité d'avoir au moins un accident dans l'an- née, en fonction de l'âge du conducteur principal.

ou l'entropie,

E =− X

classe∈{0,1}

nclasse n

X

y∈{0,1}

nclasse,y nclasse log

nclasse,y nclasse

Les arbres permettent une lecture relativement aisée pour l'utilisateur, et reposent sur des techniques nonparamétriques. Aussi, contrairement aux méthodes GLM que nous verrons par la suite, le choix des lois ou la recherche d'éventuelles nonlinéarités n'intervient pas ici. Les arbres sont également peu sensibles aux outliers. Mais les arbres, de par leur construction, posent aussi certains soucis. En particulier, on ne peut pas revenir en arrière, et le séquencement est très important.

1.2.3 Probabilité d'avoir (au moins) un sinistre dans l'année A titre d'illustration, étudions la probabilité d'avoir au moins un sinistre dans l'année. Par défaut, l'arbre ne permet pas de dénir des classes, et on obtient autant de classes que l'on a d'âges,

(32)

● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

20 30 40 50 60 70 80

−600−500−400−300−200−1000

Age du conducteur

Distance du chi−deux

Figure 1.14 Evolution de χ2 lors du découpage en 2 classes (17,k] et (k,85].

> library(tree)

> arbre=tree((nombre>0)~ageconducteur,data=sinistres,split="gini")

> age=data.frame(ageconducteur=18:90)

> y=predict(arbre,age)

> plot(age$ageconducteur,y)

Si l'on souhaite coupe les branches de l'arbre, on peut utiliser l'option mincut pour dire qu'on ne peut couper davantage qu'à condition de consti- tuer des classes dont le nombre d'invidus à l'intérieur soit susement élevé.

> arbre2=tree((nombre>0)~ageconducteur,data=sinistres,split="gini", + mincut = 20000)

> y2=predict(arbre2,age)

> lines(age$ageconducteur,y2,col="red",type="s",lwd=2)

> arbre3=tree((nombre>0)~ageconducteur,data=sinistres,split="gini", + mincut = 100000)

> y3=predict(arbre3,age)

> lines(age$ageconducteur,y3,col="purple",type="s",lwd=2) On obtient alors les classes décrites sur la gure 1.16.

1.2.4 Probabilité d'avoir un gros sinistre dans l'année

Cette étude sera particulièrement intéressante pour écrêter les gros si- nistres (nous reviendrons sur ce point dans la section 1.4.3). On supposera

(33)

● ● ● ● ● ● ●● ●

● ●● ●

20 30 40 50 60 70 80

−40000−30000−20000−100000

Age du conducteur

Distance du chi−deux

Figure 1.15 Evolution de χ2 lors du découpage en 3 classes, (17,23], (23,k] et (k,85], ou (17,k], (k,23] et (23,85].

(arbitrairement) que les gros sinistres sont ceux dont le montant dépasse50 000euros.

> library(tree)

> sinistres$GS <- sinistres$cout>50000

> ARBRE <- tree(GS ~ puissance + zone + agevehicule , + data=sinistres,split="gini")

Cet arbre étant manifestement trop étendu, on peut limiter en demandant à avoir au moins5 000 assuré par branche,

> ARBRE <- tree(GS ~ puissance + zone + agevehicule , + data=sinistres,split="gini",minsize = 5000)

> ARBRE

> ARBRE

node), split, n, deviance, yval

* denotes terminal node 1) root 26444 87.710 0.003328

2) zone: B,C,D,E,F 23080 68.790 0.002990 4) puissance < 5.5 8028 17.960 0.002242

8) zone: B,D,F 3442 3.995 0.001162 * 9) zone: C,E 4586 13.960 0.003053 * 5) puissance > 5.5 15052 50.830 0.003388

(34)

● ●

● ● ● ●

● ● ●

● ● ●● ●

● ●

● ● ●

● ● ●

● ●

● ● ●

● ●

● ●

● ●

20 30 40 50 60 70 80 90

0.000.020.040.060.080.10

Age du conducteur principal

Probabilité d'avoir au moins un accident

Figure 1.16 Prédiction par arbre de régression, avec plus ou moins de classes d'âge.

10) zone: B,C,E 10372 30.910 0.002989

20) agevehicule < 10.5 7541 17.960 0.002387 40) puissance < 7.5 5274 14.960 0.002844

80) agevehicule < 2.5 1291 5.972 0.004648 * 81) agevehicule > 2.5 3983 8.980 0.002260 * 41) puissance > 7.5 2267 2.996 0.001323 * 21) agevehicule > 10.5 2831 12.940 0.004592 * 11) zone: D,F 4680 19.910 0.004274 *

3) zone: A 3364 18.890 0.005648 *

On note qu'en fonction de la zone, de la puissance du véhicule et de l'ancienneté du véhicule, on peut déterminer avec une bonne assurance la probabilité d'avoir un très gros sinistre. Par exemple, pour les personnes n'habitant pas un endroit trop dense (les zones les plus denses correspondant à zone=A), en particulier les zones B, D et E, et si la puissance n'est pas trop élevée, puissance<5.5 la probabilité d'avoir un très gros sinistres est de l'ordre de1/1000. La probabilité sera 4 fois plus grande si la le véhicule est puissant (puissance>5.5) et ancien, (agevehicule>10.5). Dans une zone dense, la probabilité sera plus de 5 fois plus grande (quelles que soient les autres variables).

Si on trace l'arbre, on obtient le dessin de la Figure 1.17

> plot(ARBRE)

> text(ARBRE,cex=.9,col="blue")

(35)

zone:bcdef|

puissance < 5.5

zone:bdf zone:bce

agevehicule < 10.5

puissance < 7.5 agevehicule < 2.5 0.001162 0.003053

0.004648 0.002260

0.001323

0.004592

0.004274

0.005648

Figure 1.17 Arbre de prédiction, pour expliquer la probabilité d'avoir (ou pas) un gros sinistre, en fonction de la densité de population, de l'ancienneté du véhicule, et de sa puissance.

1.3 Modéliser la fréquence de sinistralité

Dans cette section, nous allons rentrer davantage dans la modélisation par modèles linéaires généralisés. Mais avant de commencer, il peut être intéressant de regarder un peu la base, et de faire un peu d'analyse descriptive pour comprendre la loi du nombre de sinistres par contrat.

1.3.1 Un peu d'analyse descriptive La fréquence de sinistres

Une hypothèse forte de la loi de Poisson est queE(N) =Var(N)

Si l'on compare les valeurs numériques, cela donne l'ajustement suivant, si l'on estime le paramètre par la méthode des moments (ou par maximum de vraisemblance, ML qui ici cọncident) :

> library(vcd)

> gof = goodfit(N,type= "poisson",method= "ML")

> gof

Observed and fitted values for poisson distribution with parameters estimated by `ML'

(36)

0 200 400 600 800

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Nombre de sinistres

Fréquence (racine carrée)

Figure 1.18 Fréquence empirique du nombre de sinistres par police d'as- surance.

count observed fitted [1,] 653047 653047 652055 [2,] 23592 23592 25453

[3,] 1299 1299 496

[4,] 62 62 6

[5,] 5 5 0

[6,] 2 2 0

[7,] 1 1 0

[8,] 0 0 0

[9,] 1 1 0

[10,] 1 1 0

[11,] 0 0 0

[12,] 2 2 0

[13,] 0 0 0

[14,] 0 0 0

[15,] 0 0 0

[16,] 0 0 0

[17,] 1 1 0

La diérence entre la valeur prédite par le modèle Poissonnien et les va- leurs observées nous poussent à essayer de mieux comprendre l'hétérogénéité qui existe au sein de nos données.

Références

Documents relatifs