Il y a quelques années, j'avais été sollicité pour rédiger les Annexes de l'ouvrage évaluation du préjudice corporel, de Max le Roy. Comme l'indique le descriptif du livre, j'ai un peu la pression car pas mal de jugements rendus sont basés sur mes calculs, "La résolution 75-7 du comité des ministres du Conseil de l'Europe est intervenue pour faciliter l'harmonisation des législations et des jurisprudences en matière de réparation des dommages en cas de lésion corporelle ou de décès. Elle a proposé un certain nombre de principes qui, bien que non obligatoires pour les États membres, sont très largement suivis par les juridictions françaises. Ce sont ces principes et leur application en droit français qui sont exposés et commentés dans cet ouvrage qui rend compte, notamment, de la très importante réforme apportée en matière de recours subrogatoire des caisses de sécurité sociale contre les tiers par la loi n° 2006-1640 du 21 décembre 2006. Le barème de capitalisation de rentes tient compte des plus récentes tables de mortalité et prend pour base un taux d'intérêt de 5 % conforme aux données économiques et financières actuelles. Accompagné d'un barème fonctionnel indicatif des incapacités en droit commun, de tableaux de jurisprudence et de formules de jugement, l'ouvrage fait le point sur toutes les questions auxquelles sont confrontés les magistrats, avocats, experts, médecins, assureurs."

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
En bouclant, on peut générer les tables données en Annexe.
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 . Si quelqu'un voit une coquille, merci de me signaler avant que le livre ne parte à l'éditeur...