{"word_count": 148, "character_count": 2227}
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&#62; sinistre=read.table("http://freakonometrics.free.fr/sinistreACT2040.txt",header=TRUE,sep=";")&#62; contrat=read.table("http://freakonometrics.free.fr/contractACT2040.txt",header=TRUE,sep=";")&#62; contrat=contrat[,1:10]&#62; names(contrat)[10]="region" &#62; sinistre_RC=sinistre[(sinistre$garantie=="1RC")&#38;(sinistre$cout&#62;0),]&#62; T_RC=table(sinistre_RC$nocontrat)&#62; T1_RC=as.numeric(names(T_RC))&#62; T2_RC=as.numeric(T_RC)&#62; nombre_1_RC = data.frame(nocontrat=T1_RC,nb_RC=T2_RC)&#62; I_RC = contrat$nocontrat%in%T1_RC&#62; T1_RC= contrat$nocontrat[I_RC==FALSE]&#62; nombre_2_RC = data.frame(nocontrat=T1_RC,nb_RC=0)&#62; nombre_RC=rbind(nombre_1_RC,nombre_2_RC) &#62; sinistre_DO=sinistre[(sinistre$garantie=="2DO")&#38;(sinistre$cout&#62;0),]&#62; T_DO=table(sinistre_DO$nocontrat)&#62; T1_DO=as.numeric(names(T_DO))&#62; T2_DO=as.numeric(T_DO)&#62; nombre_1_DO = data.frame(nocontrat=T1_DO,nb_DO=T2_DO)&#62; I_DO = contrat$nocontrat%in%T1_DO&#62; T1_DO= contrat$nocontrat[I_DO==FALSE]&#62; nombre_2_DO = data.frame(nocontrat=T1_DO,nb_DO=0)&#62; nombre_DO=rbind(nombre_1_DO,nombre_2_DO)&#62; freq = merge(contrat,nombre_RC)&#62; 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)&#62; 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))}