This Tuesday morning (7 am), I will give a talk at the ASTIN reading club, on auto-calibration. More precisely, we will look at the topic of ensuring the calibration of machine learning models for non-life pricing. Slides are available here.
Tag Archives: ASTIN
Convention A, ASTIN-IAA session
This Thursday, I will (briefly) discuss fairness and discrimination in insurance, at the ASTIN-IAA session of Convention A. I will have 20 minutes to summarize Insurance, biaises, discrimination and fairness. The slides are now online.
Talk at the ASTIN-IAA Webinar on discrimination and fairness
ASTIN Online Colloquium
Next week, I will present at the 2021 ASTIN Online Colloquium (online, of course, it will not be possible to meet in person, in Florida). I will present the joint paper with Michel Denuit and Julien Trufin, Autocalibration for Insurance Pricing with Machine Learning. Earlier on Wednesday, Philipp Ratz will present our work Collaborative Insurance Sustainability and Network Structure.
Tails of copulas, une lecture graphique
Suite à une formation que je faisais en fin de semaine à Brest (les slides sont ici et là), je voulais revenir sur les histoires de tails of copulas, pour reprendre le titre de l’article (ici) de Gary Venter (et qui correspond à des choses que j’avais pu présenter il y a quelques années à Berlin, les slides étant en ligne ici).
- Quantifier la dépendance de queue
L’idée est de noter qu’il est noter qu’il existe deux manières de quantifier la dépendance de queue. La première est liée à l’approche de Joe (1990, ici, ou 1997 pour le livre), qui a introduit un (strong) tail dependence index. Par exemple pour la queue inférieure,
soit
La seconde est liée à une idée que l’on retrouve dans les travaux de Janet Heffernan, Stuart Coles ou Jonathan Tawn. L’intuition est la suivante (on peut la retrouver en ligne ici). Si et ont la même loi et que l’on suppose les variables indépendantes, alors
En revanche, si les variables sont comonotones (c’est à dire égales comme on suppose les lois identiques),
Aussi, on peut supposer qu’il existe un indice tel que
Le soucis est que le cas d’indépendance correspond à =2, alors que le cas de dépendance forte correspond au cas =1. Il est alors usuel de faire une transformation affine pour se ramener sur [0,1], et que la force de la dépendance soit croissante avec , e.g.
Posons alors
qui pourra être interprété comme un (weak) tail dependence index.
Bref, ces deux mesures donnent de l’information sur le comportement dans les queues de distribution.
- Les fonctions de concentration dans les queues
L’idée est de noter qu’il est possible d’étudier ces fonctions afin de mieux comprendre le comportement dans les queues. En s’inspirant de Gary Venter, on peut définir
pour étudier le comportement dans la queue inférieure, et
et
Cet outil permettra de modéliser la dépendance forte. On peut également poser, afin d’étudier la dépendance faible,
ou
- Application statistique
L’idée est de noter qu’il est facile d’estimer ces fonctions. Ces outils peuvent être utiles pour mieux comprendre le comportement dans les queues.
Par exemple pour une copule Gaussienne de corrélation 0,5, on a la forme théorique suivante pour les fonctions de concentration (au sens fort)
Statistiquement, il est possible d’estimer ces quantités en comptant simplement le nombre d’observations dans le coin inférieur gauche, ou le coin supérieur droit. Si on dispose d’un échantillon, on peut alors regarder ce que donnent les versions
et
Pour un échantillon de taille n=500, on obtient les intervalles de confiance à 90% de la forme suivante,
Le code R ressemble à ça
> library(evd); data(lossalae) > cor(lossalae,method="spearman") Loss ALAE Loss 1.000000 0.451872 ALAE 0.451872 1.000000
avec le code suivant pour la version empirique,
> z=seq(0,.5,by=.001) > U=rank(v[,1])/(nrow(v)+1) > V=rank(v[,2])/(nrow(v)+1) > Lemp=rep(NA,length(z)) > Remp=rep(NA,length(z)) > for(i in 1:length(z)){ + Lemp[i]=sum((U<=z[i])&(V<=z[i]))/sum(U<=z[i]) + Remp[i]=sum((U>=1-z[i])&(V>=1-z[i]))/sum(U<=z[i]) + }
et pour la version théorique,
> Lg=(pcopula(copclayton,cbind(z,z)))/(z) > Rg=((1-2*(1-z)+pcopula(copclayton,cbind(1-z,1-z))))/(z) > plot(c(1-z,z),c(Lg,Rg))
De plus, on a des fonctions similaires pour la dépendance au sens faible, avec le code suivant pour la version théorique,
> Lg=log(pcopula(cop,cbind(z,z)))/log(z) > Rg=log((1-2*(1-z)+pcopula(cop,cbind(1-z,1-z))))/log(z) > Lg=1/Lg*2-1 > Rg=1/Rg*2-1
et celui là pour la version empirique
> z=seq(0,.5,by=.001) > v <- lossalae > U=rank(v[,1])/(nrow(v)+1) > V=rank(v[,2])/(nrow(v)+1) > Lemp=rep(NA,length(z)) > Remp=rep(NA,length(z)) > for(i in 1:length(z)){ + Lemp[i]=log(mean((U<=z[i])&(V<=z[i])))/log(mean(U<=z[i])) + Remp[i]=log(mean((U>=1-z[i])&(V>=1-z[i])))/log(mean(U<=z[i])) + } > Lemp=1/Lemp*2-1 > Remp=1/Remp*2-1
Bref, on peut utiliser ces fonctions sur des vrais échantillons. Considérons l’exemple classique loss-alae (où l’on couple les frais dans des sinistres assurés, et les frais payés par l’assureur). On souhaite ajuster une copule, sans trop savoir laquelle. On peut commencer par étudier la dépendance forte, et comparer avec une copule Gaussienne. La copule Gaussienne de référence possède ici le même rho de Spearman que l’échantillon dont on dispose,
> cor(lossalae,method="spearman") Loss ALAE Loss 1.000000 0.451872 ALAE 0.451872 1.000000 > library(copula) > paramgauss=.47 > paramclayton=.9 > paramgumbel=1.45 > copgauss=normalCopula(paramgauss) > copclayton=claytonCopula(paramclayton, dim = 2) > copgumbel=gumbelCopula(paramgumbel, dim = 2)
On obtient ici
La courbe verte est l’intervalle de confiance (ponctuel) à 95% pour une copule Gaussienne et un échantillon de même taille. On voit qu’on modélise mal la structure de dépendance. Avec une copule duale de Clayton, on obtient
et enfin pour une copule de Gumbel,
Bref, la copule de Gumbel semble réellement bien adaptée… Si on creuse en étudiant la dépendance au sens faible, on peut valider là aussi ce modèle. En effet, si la référence est la copule Gaussienne,
ou pour une copule de Clayton,
alors qu’une copule de Gumbel donnerait