Category Archives: ensae

ENSAE, devoir 2

Comme annoncé, le second devoir sera relativement proche du premier. Sauf qu’au lieu de modéliser la survenance, on va chercher à modéliser la fréquence. Le code pour récupérer la base est le même que pour le premier devoir

rm(list=ls())
download.file(url="http://freakonometrics.free.fr/base_ensae_1.RData",destfile="base.RData")
load("base.RData")

A partir de la base base_ensae_1, proposez deux modèles (une régression de Poisson, et un modèle parmi ceux vus en cours) pour modéliser la variable Nb1 indiquant le nombre de sinistres survenus sur une police d’assurance (pendant la période de couverture). Il s’agit, comme en cours, d’expliquer la fréquence annuelle de sinistres.

Le rapport doit contenir entre 5 et 10 pages, expliquant les modèles retenus, les choix qui ont été fait (pour rendre catégorielles de variables continues, ou au contraire les lisser, etc).

En plus du rapport, je veux une prévision à l’aide des deux modèles sur la base de données pricing. Je veux, par mail, avec un fichier csv, contenant le numéro de la police, PolNum, et les fréquences annuelles de déclaration d’accidents, avec les deux modèles (Freq1 et Freq2 respectivement)

pricing <- read.csv2("http://freakonometrics.free.fr/pricing.csv")

Le tout (rapport pdf et base csv) doit être envoyé pour le retour des vacances de Noël, par mail à arthur.charpentier@gmail.com. La première page du rapport doit indiquer les noms des deux étudiants du binôme. Je remets une description (succincte) des variables

Actuariat de l’Assurance non-Vie #4

Lundi prochain, suite du cours d’actuariat de l’assurance non-vie. Nous avons terminé la partie sur la classification (modèle logistique, arbres, forêts, bagging, etc), et nous allons aborder la section sur la modélisation de la fréquence, et la régression de Poisson. Je rajouter quelques slides sur la présentation des GLM, qui seront utiles pour parler un peu de sur-dispersion,

 

Regression on factors

Most of our intuitions about regression models come from the Gaussian standard linear model. One interesting feature is that, when we have a factor explanatory variable, the sum of predictions per class is the sum of observations of the endogeneous variable, per class. To be more specific, consider some factor variable https://latex.codecogs.com/gif.latex?x_1\in\{0,1\}, and a regression model

https://latex.codecogs.com/gif.latex?y_i=\beta_0+\beta_1%20\boldsymbol{1}(x_1=1)+\beta_2%20x_2+\varepsilon_i

Use ordinary least squares to fit that model

https://latex.codecogs.com/gif.latex?\widehat{y}_i=\widehat{\beta}_0+\widehat{\beta}_1%20\boldsymbol{1}(x_1=1)+\widehat{\beta}_2%20x_2

Then for all https://latex.codecogs.com/gif.latex?x\in\{0,1\}

https://latex.codecogs.com/gif.latex?\sum_{i:x_i=x}%20y_i%20=%20\sum_{i:x_i=x}%20\widehat{y}_i

> n=200
> X1=rep(0:1,each=n/2)
> set.seed(1)
> X2=runif(2*n)
> L=X1-X2
> B=data.frame(Y=rnorm(n,L),X1=as.factor(X1),X2=X2)
> pd=aggregate(x=B$Y,by=list(B$X1),mean)$x
> pd
[1] -0.4881735  0.5341301
> fit=lm(Y~X1+X2,data=B)
> B2=data.frame(x=B$X1,y=predict(fit))
> aggregate(x=B2$y,by=list(B2$x),mean)$x
[1] -0.4881735  0.5341301

Continue reading Regression on factors

ENSAE, devoir 1

Pour le premier devoir, je propose de faire un modèle de classification. Le code pour récupérer la base est

rm(list=ls())
download.file(url="http://freakonometrics.free.fr/base_ensae_1.RData",destfile="base.RData")
load("base.RData")

A partir de la base base_ensae_1, proposez deux modèles (une régression logistique, et un modèle parmi ceux vus en cours) pour modéliser la variable Surv1 (indiquant la survenance, ou pas, de sinistres sur une police d’assurance automobile).

Le rapport doit contenir entre 5 et 10 pages, expliquant les modèles retenus, les choix qui ont été fait (pour rendre catégorielles de variables continues, ou au contraire les lisser, etc). Sur la dernière page, les courbes ROC des deux modèles devront être présentées.

En plus du rapport, je veux une prévision à l’aide des deux modèles sur la base de données pricing. Je veux, par mail, avec un fichier csv, contenant le numéro de la police, PolNum, et les probabilité d’avoir un accident, avec les deux modèles (Proba1 et Proba2 respectivement)

pricing <- read.csv2("http://freakonometrics.free.fr/pricing.csv")

Le tout (rapport pdf et base csv) doit être envoyé avant les vacances de Noël, par mail à arthur.charpentier@gmail.com. La première page du rapport doit indiquer les noms des deux étudiants du binôme.

Petite précision, une description (succincte) des variables est faite ci-dessous,

La vie d’un sinistre…

Pour illustrer un peu le cours d’actuariat de l’assurance dommage, un petit exemple de ce que peut être une base de sinistres (je serais ravi d’en avoir que je puisse partager avec les étudiants, dans le cours).

Regardons par exemple un sinistre,

> X

On a les dates des opérations, avec des paiements et/ou des réestimations de la charge dossier/dossier. Pour visualiser la vie de ce sinistre, on peut utiliser

> D=as.Date(X[,2],"%d/%m/%Y")
> plot(D,X[,7]+cumsum((X[,3])),type="l")
> lines(D,cumsum((X[,3])),col="red")

Le sinistre est survenu en 2007. Quand on va constituer le triangle, les montants suivants vont être affecté à la ligne correspondant à l’année de survenance 2007,

> X$year=as.POSIXlt(D)$year+1900
> aggregate(X[,3],by=list(X$year),
+ function(x) sum(x,na.rm=TRUE))
  Group.1         x
1    1997    77.597
2    1998  9568.327
3    1999  1398.074
4    2000 16266.760
5    2001 21955.175
6    2002   106.800

correspondant aux incréments observés sur le graphique ci-dessus.