Le premier cours ACT2040, assurances IARD, tarification et évaluation commencera mardi 6 septembre, de 9 heures à midi, salle SH-2120. Le plan de cours est en ligne ici. Comme l'intitulé ne l'indique pas, il s'agit d'un cours relativement avancé, nécessitant en particulier d'avoir suivi le cours ACT6820 de modèles de prévision. Sinon, parmi les ouvrages de référence pour le cours, il y a les deux tomes coécrit avec Michel Denuit, ou l'ouvrage en cours de rédaction avec Christophe Dutang et Vincent Goulet (des précisions suivront très bientôt). Sinon, sur les aspects de tarification, je peux aussi renvoyer sur le Practitioner’s Guide to Generalized Linear Models de Watson Wyatt (ici), ou la CAS qui a mis en ligne () un très joli ouvrage Basic Ratemaking. Sur le provisionnement, la CAS là aussi vient de publier un très joli ouvrage (ici), Estimating Unpaid Claims Using Basic Techniques. Pour les projets, des informations sur les bases de données seront également données sur ce blog.
En attendant, pour la première partie du cours, sur la tarification, les données utilisées dans le cours sont les suivantes (construites à partir d'une base de contrats, et d'une base de sinistres: on fait un comptage a partir de la base de sinistres, et on définit une variable de nombre de sinistres),
> sinistre <- read.table("http://freakonometrics.free.fr/sinistreACT2040.txt",
+ header=TRUE,sep=";")
> sinistres=sinistre[sinistre$garantie=="1RC",]
> contrat <- read.table("http://freakonometrics.free.fr/contractACT2040.txt",
+ header=TRUE,sep=";")
> T=table(sinistres$nocontrat)
> T1=as.numeric(names(T))
> T2=as.numeric(T)
> nombre1 = data.frame(nocontrat=T1,nbre=T2)
> I = contrat$nocontrat%in%T1
> T1= contrat$nocontrat[I==FALSE]
> nombre2 = data.frame(nocontrat=T1,nbre=0)
> nombre=rbind(nombre1,nombre2)
> sinistres = merge(contrat,nombre)
> head(sinistres)
nocontrat exposition zone puissance agevehicule ageconducteur bonus marque
1 27 0.87 C 7 0 56 50 12
2 115 0.72 D 5 0 45 50 12
3 121 0.05 C 6 0 37 55 12
4 142 0.90 C 10 10 42 50 12
5 155 0.12 C 7 0 59 50 12
6 186 0.83 C 5 0 75 50 12
carburant densite region nbre
1 D 93 13 0
2 E 54 13 0
3 D 11 13 0
4 D 93 13 0
5 E 73 13 0
6 E 42 13 0
Pour illustrer le début, on va créer deux variables, la variable de comptage, et une variable explicative dichotomique, basée sur l'age.
> Y = sinistres$nbre
> X = cut(sinistres$ageconducteur,
+ breaks=c(0,25,70,Inf),
+ labels=c("Jeune","Intermédiaire","Senior"))
> mean(Y)
[1] 0.05394
 
> var(Y)
[1] 0.06423176
 
> mean(Y[X=="Jeune"])
[1] 0.07634677
 
> tapply(Y,X,mean)
Jeune Intermédiaire Senior
0.07634677 0.05257215 0.05317324
 
> tapply(Y,X,var)
Jeune Intermédiaire Senior
0.08910128 0.06304311 0.05791289
On aura l'occasion d'en rediscuter mais cette analyse n'est pas la plus pertinente car on oublie de prendre en compte un facteur important: l'exposition. Mais on en reparlera plus tard....