Dans le cadre statique de l’assurance-vie, d´etaill´e dans le Chapitre 4, toutes les grandeurs pouvaient ˆetre construites `a partir des Lx, ou des 1px, o`u x ´etait l’ˆage des individus. Ici, nous allons int´egrer la dimension temporelle, en notant qu’unetablede mortalit´e est construite `a une date t. Aussi, formellement, on noteraLx,t le nombre de personnes d’ˆagex en vie `a la datet.
Les donn´ees que nous allons utilis´ees sont tir´ees du site internethttp://www.mortality.org, et il s’agit de donn´ees fran¸caises, avec respectivement la mortalit´e des femmes, des hommes, et de l’ensemble de la population, entre 1899 et 2005. Ici on dispose de Dx,t le nombre de personnes d´ec´ed´ees `a l’ˆagex l’ann´eet(la base Deces), etEx,t l’exposition (la baseExpo). Un l´eger travail sur les donn´ees du site est n´ecessaire (car un ˆage110+ existe dans la base est rend les ˆages non num´eriques),
> Deces$Age <- as.numeric(as.character(Deces$Age))
> Deces$Age[is.na(Deces$Age)] <- 110 159
> Expo$Age <- as.numeric(as.character(Expo$Age))
> Expo$Age[is.na(Expo$Age)] <- 110
Pour commencer, on peut visualiser l’´evolution de la surface du taux de mortalit´e, afin de mieux comprendre la n´ecessit´e d’une analyse dynamique de la d´emographie, o`u
µx,t= Dx,t
Ex,t.
L’´evolution de cette surface est rep´esent´ee sur la Figure 5.1, avec (x, t)7→logµx,t.
> MU <- Deces[,3:5]/Expo[,3:5]
> Ages <- unique(Deces$Age)
> Annees <- unique(Deces$Year)
> matriceMU <- matrix(MU[,3],length(Ages),length(Annees))
> persp(Ages[1:100],Annees,log(matriceMU[1:100,]), theta=-30, + xlab="Age",zlab="Taux de d´ec`es (log)")
Age 0
20
40
60
80 An
nees
1900 1920 1940 1960 1980 2000 Taux
de d écès
(log) -8 -6 -4 -2
Figure 5.1 – Surface de mortalit´e (x, t) 7→logµx,t pour les Hommes, en France, entre 1899 et 2005, et entre 0 et 110 ans.
5.1.1 La lecture longitudinale des tables
Ces donn´ees ne sont pas sous le format que nous avions vu dans le chapitre 4. Toutefois, on va pouvoir construire des fonctions proches de celles construites alors. On peut par exemple en placer l’ann´ee an=1900 ouan=2000 pour d´ecrire la mortalit´e cette ann´ee l`a.
> mu.an <- function(a, pointille=1, cex=1.5){
+ Da <- Deces[Deces$Year==a,]
+ Ea <- Expo[Expo$Year==a,]
+ MUa <- Da[,3:5]/Ea[,3:5]
+ titre <- paste("Taux de mortalit\’e",a,sep=" ")
+ plot(Ages,log(MUa[,1]), type="l", xlab="Age", ylab="Taux de d\’ec`es (log)", + main=titre, lwd=1.7, ylim=c(-9.8,.5), lty=pointille, cex=cex, cex.axis=cex, + cex.lab=cex, cex.main=cex)
+ lines(Ages,log(MUa[,2]),col="grey",lwd=1.7,lty=pointille) + legend(75,-6,c("Femmes","Hommes"),lty=pointille,lwd=1.7, + col=c("grey","black"),bty="n")
+ }
Cette petite fonction permet de tracer x7→logµx,t `at fix´e, o`u µx,t =Dx,t/Ex,t. La Figure 5.2, permet de comparer ces deux fonctions, en 1900 et en 2000.
Remark 5.1.1. Il ne s’agit pas ici du suivi d’une cohorte, mais de l’´etude de la mortalit´e pour des personnes d’ˆage diff´erents (et n´ees `a des p´eriodes diff´erentes) `a une date t bien pr´ecise.
> par(mfrow = c(1, 2))
> mu.an(1900)
> mu.an(2000)
> par(mfrow = c(1, 1))
0 20 40 60 80 100
−10−8−6−4−20
Taux de mortalité 1900
Age
Taux de décès (log) Femmes
Hommes
0 20 40 60 80 100
−10−8−6−4−20
Taux de mortalité 2000
Age
Taux de décès (log) Femmes
Hommes
Figure 5.2 – Logarithmes des taux de mortalit´e x 7→logµx,t pour les Hommes et les Fennes, en France, entre 0 et 110 ans, en 1900 `a gauche, et en 2000 `a droite.
Compte tenu du lien entre le taux de hasard et les fonctions de survie, on peut en d´eduire les fonctions de survie `a la naissance (c’est `a dire x=0). On utilise (comme dans le chapitre
pr´ec´edant)
hpx,t = exp(− Z x+h
x
µs,tds).
L`a encore, une fonction g´en´erique permettra de comparer des courbes `a plusieurs dates.
> proba.survie <- function(x, a, cex=1.5){
+ Da <- Deces[Deces$Year==a,]
+ Ea <- Expo[Expo$Year==a,]
+ MUa <- Da[,3:5]/Ea[,3:5]
+ titrey <- paste("Probabilit\’e de survie `a l’^age",x,"en",a,sep=" ") + titre <- paste("Probabilit\’e de survie en",a,sep=" ")
+ plot(1:length(Ages),exp(-cumsum(MUa[(x+1):length(Ages),2])), type="l", xlab="Age", + ylab=titrey, main=titre, lwd=1.7, ylim=c(0,1), cex=cex, cex.axis=cex, cex.lab=cex, + cex.main=cex)
+ lines(1:length(Ages),exp(-cumsum(MUa[(x+1):length(Ages),1])),col="grey",lwd=1.7) + legend(0,.2,c("Femmes","Hommes"),lty=1,lwd=1.7,col=c("grey","black"),bty="n") + }
La Figure 5.3, permet de comparer ces deux fonctions, en 1900 et en 2000.
> par(mfrow = c(1, 2))
> proba.survie(0,1900)
> proba.survie(0,2000)
> par(mfrow = c(1, 1))
0 20 40 60 80 100
0.00.20.40.60.81.0
Probabilité de survie en 1900
Age
Probabilité de survie à l'âge 0 en 1900
Femmes Hommes
0 20 40 60 80 100
0.00.20.40.60.81.0
Probabilité de survie en 2000
Age
Probabilité de survie à l'âge 0 en 2000
Femmes Hommes
Figure 5.3 – Fonctions de survie `a la naissance h7→hp0,t pour les Hommes - `a gauche - et les Femmes - `a droite - en France, entre 0 et 110 ans, entre 1900 (fonc´e) et 2000 (clair).
Enfin, la figure 5.4, permet de visualiser larectangularisation des fonctions de survie.
> cex <- 1.5
>
> par(mfrow = c(1, 2))
> plot(Ages, prob.par.annee(1900, 2), type="l", xlab="Age",
+ ylab="Probabilit\’e de survie `a la naissance", main="Mortalit\’e des hommes", + ylim=c(0,1), col=gray(1), xlim=c(0,120), cex=cex, cex.axis=cex, cex.lab=cex, + cex.main=cex)
> for(a in 1901:2000){
+ lines(Ages, prob.par.annee(a, 2), col=gray((a-1900)/100))
+ polygon(c(112,112,123,123),(c(a,a-1,a-1,a)-1900)/100, border=NA, + col=gray((a-1900)/100))
+ }
> for(a in seq(1900,2000,by=10)){
+ text(104,(a-1900)/100,a) + }
>
> plot(Ages, prob.par.annee(1900, 1), type="l", xlab="Age",
+ ylab="Probabilit\’e de survie `a la naissance", main="Mortalit\’e des femmes", + ylim=c(0,1), col=gray(1), xlim=c(0,120), cex=cex, cex.axis=cex, cex.lab=cex, + cex.main=cex)
> for(a in 1901:2000){
+ lines(Ages, prob.par.annee(a, 1),col=gray((a-1900)/100))
+ polygon(c(112,112,123,123),(c(a,a-1,a-1,a)-1900)/100,border=NA,col=gray((a-1900)/100)) + }
> for(a in seq(1900,2000,by=10)){
+ text(104,(a-1900)/100,a) + }
0 20 40 60 80 100 120
0.00.20.40.60.81.0
Mortalité des hommes
Age
Probabilité de survie à la naissance
1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000
0 20 40 60 80 100 120
0.00.20.40.60.81.0
Mortalité des femmes
Age
Probabilité de survie à la naissance
1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000
Figure 5.4 – Fonctions de survie `a la naissance h 7→ hp0 pour les Hommes et les Fennes, en France, entre 0 et 110 ans, en 1900 `a gauche, et en 2000 `a droite.
Pour all´eger le calcul, on a une petite fonction auxiliaire qui extrait et calcul la probabilit´e de survie pour un sexe donn´e.
> prob.par.annee <- function(annee, sexe=1) + {
+ MUa <- subset(Deces, Year==annee)[, 3:5]/subset(Expo, Year==annee)[, 3:5]
+ exp(-cumsum(MUa[1:length(Ages), sexe])) + }
5.1.2 La lecture transversale des tables
En fait, cette lecture longitudinale des tables (bien que correspondant `a ce que nous avions fait jusqu’`a pr´esent, et en particulier dans le chapitre pr´ec´edant) ne paraˆıt pas forc´ement tr`es int´eressante en assurance-vie, comme nous l’´evoquions dans l’introduction. Aussi, afin de lire la fonction de survie pour un individu (ou une cohorte), on ne lit plus la base par ann´ee (ou par colonne dans une repr´ensation matricielleLx,t), mais suivant une diagonale (`at−xconstant). Il s’agit en effet de suivre un individu (ou ici une cohorte, par ann´ee de naissance) afin de valoriser un produit d’assurance-vie pour un individu (ou des individus de la mˆeme g´en´eration. Ces trois dimensions x (ˆage),t(date) et t−x (ann´ee de naissance) n’est pas sans rappeler la lecture des triangles de provisionnement j (d´eveloppement, ou ˆage d’un sinistre), i+j (ann´ee calendaire, ou date de paiement) et i(ann´ee de survenance, ou ann´ee de naissance du sinistre). Aussi, afin de lire la fonction de survie pour un individu (ou une cohorte), on ne lit plus la base par ann´ee, mais suivant une diagonale (comme le sugg`erait le diagramme de Lexis).
> Nannee <- max(Deces$Year)
> deces.trans <- function(naissance){
+ taille <- Nannee - naissance + Vage <- seq(0,length=taille+1)
+ Vnaissance <- seq(naissance,length=taille+1) + Cagreg <- Deces$Year*1000+ Deces$Age
+ Vagreg <- Vnaissance*1000+Vage + indice <- Cagreg %in% Vagreg
+ return(list(DecesT=Deces[indice,],ExpoT=Expo[indice,])) + }
> head(deces.trans(1950)$DecesT)
Year Age Female Male Total 5662 1950 0 18943.05 25912.38 44855.43 5774 1951 1 2078.41 2500.70 4579.11 5886 1952 2 693.20 810.32 1503.52 5998 1953 3 375.08 467.12 842.20 6110 1954 4 287.04 329.09 616.13 6222 1955 5 205.03 246.07 451.10
> tail(deces.trans(1950)$DecesT) Year Age Female Male Total 11262 2000 50 1051 2532 3583 11374 2001 51 1047 2702 3749 11486 2002 52 1246 2801 4047 11598 2003 53 1361 2985 4346 11710 2004 54 1371 3042 4413 11822 2005 55 1396 3217 4613
C’est `a partir de cette extraction que l’on peut construire les mˆemes types de graphiques qu’auparavant. Sur la Figure 5.5, on peut ainsi comparer l’impact sur le taux de mortalit´e d’une lecture tranversale. La fonction g´en´erique est ici
> mu.an.transv <- function(a,add=TRUE){
+ Da <- deces.trans(a)$DecesT + Ea <- deces.trans(a)$ExpoT + MUa <- Da[,3:5]/Ea[,3:5]
+ titre <- paste("Taux de mortalit\’e",a,sep=" ")
+ if(add==FALSE){plot(0:(nrow(MUa)-1),log(MUa[,1]),type="l", + xlab="Age",ylab="Taux de d\’ec`es (log)",main=titre,lwd=1.7, + ylim=c(-9.8,.5))}
+ lines(0:(nrow(MUa)-1),log(MUa[,1]),type="l",lwd=1.7,ylim=c(-9.8,.5),lty=1) + lines(0:(nrow(MUa)-1),log(MUa[,2]),col="grey",lwd=1.7,lty=1)
+ legend(75,-7.5,c("Femmes","Hommes"),lty=1,lwd=1.7, + col=c("grey","black"),bty="n")
+ if(add==TRUE){text(90,-7.45,"Transversale");text(90,-6,"Longitudinale")}}
On peut alors comparer les taux de mortalit´e pour les personnes n´ee en 1900 et celles n´ee en 1950 (comme on travaille ici par cohorte, celle n’est en 1950 n’aura ´et´e observ´ee que partiel-lement),
> par(mfrow = c(1, 2))
> mu.an(1900,pointille=2)
> mu.an.transv(1900,add=TRUE)
> mu.an(1950,pointille=2)
> mu.an.transv(1950,add=TRUE)
> par(mfrow = c(1, 1))
0 20 40 60 80 100
−10−8−6−4−20
Taux de mortalité 1900
Age
Taux de décès (log)
Femmes Hommes
Femmes Hommes Transversale Longitudinale
0 20 40 60 80 100
−10−8−6−4−20
Taux de mortalité 1950
Age
Taux de décès (log)
Femmes Hommes
Femmes Hommes Transversale Longitudinale
Figure 5.5 – Logarithmes des taux de d´ec`es : lecture transversale versus lecture longitudinale, pour une personne n´ee en 1900 (`a gauche) ou en 1950 (`a droite).
Si la lecture transversale semble plus pertinante pour suivre une individu ou une cohorte, on est limit´e par le fait qu’il faudra pr´evoir les taux de mortalit´e pour les personnes les plus jeunes pour les ann´ees `a venir. Les sections suivantes vont pr´esenter la mise en oeuvre de plusieurs mod`eles permettant de pr´edire le taux de mortalit´e.