

Avec la mise à jour des tables de mortalité en France, j'ai du remonter mes manches et reprogrammer tous les calculs. Sauf que cette fois, j'ai proposé un petit code R pour générer à nouveau ces tables. Le but est de calculer le prix de mille euros de rente viagère ou temporaire limitée. Une petite option permet de dire si on veut la nouvelle table, ou l'ancienne (ce qui m'a permis de vérifier que je ne disais pas des bêtises).
LF=read.table("http://perso.univ-rennes1.fr/arthur.charpentier/TV8890.csv",
header=TRUE,sep=";")
LH=read.table("http://perso.univ-rennes1.fr/arthur.charpentier/TD8890.csv",
header=TRUE,sep=";")
PRIX=function(annee=2011,age,sex="HOM",taux=0.04,
duree,C=1000,old=FALSE){
if(old==FALSE){
file = paste("http://freakonometrics.blog.free.fr/public/data/",
sex,"-table-SPLx.csv",sep="")
B = read.table(file,header=TRUE,sep=",")
an = annee-age; if(an>2005){an=2005}
nom = paste("X",an,sep="")
L = B[,nom]}
if(old==TRUE){
if(sex=="HOM"){L = c(LH$Lx,rep(0,20))}
if(sex=="FEM"){L = c(LF$Lx,rep(0,20))}}
Q = L[(age+1):length(L)]/L[(age+1)]
actualisation = (1+taux)^(0:min(duree,120-age))
prixsup = sum(Q[2:(min(duree,120-age)+1)]/
actualisation[2:(min(duree,120-age)+1)] )
prixinf = sum(Q[1:(min(duree,120-age))]/
actualisation[1:(min(duree,120-age))] )
return(C*c(prixsup,prixinf))}
Les tables TGH-05 et TGF-05 sont issues d'une population de rentiers et on peut consulter les tables ici (pour les 38 pages du Journal Officiel). Ces tables ont été construites sur une population différente des tables TH et TF (construites sur l'ensemble de la population française). La méthodologie est décrite ici (merci d'ailleurs à Fred qui a approuvé mon utilisation de ces tables).
Par exemple, on peut retrouver la valeur figurant dans les anciennes Annexes (ici),
> PRIX(age=50,sex="HOM",duree=150,taux=.05,old=TRUE)
[1] 13452.15 14452.15
AGES=c(150,65,60,55,25,20,18,16)
tableH=matrix(0,106,length(AGES))
for(i in 1:length(AGES)){
for(a in 0:min(c(AGES[i]-1,105))){
tableH[a+1,i]=PRIX(age=a,sex="FEM",duree=
AGES[i]-a,taux=.04,old=FALSE)[1]
}}
write(tableH,"table-femme-nouvelle-04.csv",sep=";")
(on utilise la première valeur var on veut des rentes versées en fin d'année, en cas de vie). Avec un taux de 4%, on a pour les hommes la table ici, et pour les femmes la table là. Si quelqu'un voit une coquille, merci de me signaler avant que le livre ne parte à l'éditeur...
Un article passionnant dans le NBER (






