Pour le troisème cours d’actuariat de l’assurance non-vie à l’ENSAE (oui, j’ai pris un peu d’avance), on abordera la modélisation de la fréquence de sinistres. Les slides sont en ligne,
Les données utilisées sont accessibles avec le code suivant
> sinistre=read.table( "http://freakonometrics.free.fr/sinistreACT2040.txt",header=TRUE,sep=";") > contrat=read.table( "http://freakonometrics.free.fr/contractACT2040.txt",header=TRUE,sep=";") > contrat=contrat[,1:10] > names(contrat)[10]="region" > sinistre_RC=sinistre[(sinistre$garantie=="1RC") &(sinistre$cout>0),] > T_RC=table(sinistre_RC$nocontrat) > T1_RC=as.numeric(names(T_RC)) > T2_RC=as.numeric(T_RC) > nombre_1_RC = data.frame(nocontrat=T1_RC,nb_RC=T2_RC) > I_RC = contrat$nocontrat%in%T1_RC > T1_RC= contrat$nocontrat[I_RC==FALSE] > nombre_2_RC = data.frame(nocontrat=T1_RC,nb_RC=0) > nombre_RC=rbind(nombre_1_RC,nombre_2_RC) > sinistre_DO=sinistre[(sinistre$garantie=="2DO") &(sinistre$cout>0),] > T_DO=table(sinistre_DO$nocontrat) > T1_DO=as.numeric(names(T_DO)) > T2_DO=as.numeric(T_DO) > nombre_1_DO = data.frame(nocontrat=T1_DO,nb_DO=T2_DO) > I_DO = contrat$nocontrat%in%T1_DO > T1_DO= contrat$nocontrat[I_DO==FALSE] > nombre_2_DO = data.frame(nocontrat=T1_DO,nb_DO=0) > nombre_DO=rbind(nombre_1_DO,nombre_2_DO) > freq = merge(contrat,nombre_RC) > freq = merge(freq,nombre_DO)
Et je met aussi en ligne une petite fonction pour obtenir des tableaux de contingence (on parlera des méthodes de biais minimal)
> freq_sin = function(nom="nb_DO"){ + N = freq[,nom] + E= freq$exposition + X1=freq$carburant + X2=cut(freq$agevehicule,c(0,3,10,101),right=FALSE) + N_polices = table(X1,X2) + E_agg=aggregate(E, by = list(X1 = X1, X2 = X2), sum) + N_exposition=N_polices + N_exposition[1:nrow(N_exposition),1:ncol(N_exposition)]= + matrix(E_agg$x,nrow(N_exposition),ncol(N_exposition)) + N_agg=aggregate(N, by = list(X1 = X1, X2 = X2), sum) + N_sinistres=N_polices + N_sinistres[1:nrow(N_sinistres),1:ncol(N_sinistres)]= + matrix(N_agg$x,nrow(N_sinistres),ncol(N_sinistres)) + N_sinistres + Freq_sinistres = N_sinistres/N_exposition + return(list(Exp=N_exposition,Sin=N_sinistres,Freq=Freq_sinistres))}
OpenEdition suggests that you cite this post as follows:
Arthur Charpentier (October 10, 2015). Actuariat de l’Assurance Non-Vie #3. Freakonometrics. Retrieved September 16, 2024 from https://doi.org/10.58079/ov0r