Comme je l’avais mentionné à propos d’un vieux papier paru dans Le Canard, c’est souvent compliqué de communiquer sur les retraites. C’est un sujet complexe et assez rapidement technique. Historiquement, les abaques sont les tables de calculs,
Mais il faut admettre que retrouve un peu n’importe quoi dans ce terme d’abaque…. Certaines sont évoquées ici ou là, voire làpour quelque chose de très joli. On notera qu’il existe une idée sous-jacente commune, à savoir construire un outil graphique permettant de visualiser comment 3 paramètres peuvent être liés (généralement, ils sont liés par une fonction complexe).
- Abaques et retraites
Parmi les outils que l’on retrouve dans les documents du COR, j’ai été surpris de voir ressortir l’utilisation des abaques (par exemple ici). On nous en fait même la promotion en vidéo,
Pour la petite histoire, j’avais évoqué son utilisation dans un graphique ici sur les problèmes d’échantillonnage. C’est effectivement un outil graphique intéressant, à condition de savoir le décoder…
L’idée est simple, à savoir lier les trois paramètres essentiels(ou supposés comme tels) du bilan d’un système de retraite, à savoir
- le niveau des prélèvements,
- le niveau de l’âge effectif de départ en retraite
- le niveau des pensions.
La difficulté est de trouver une forme graphique permettant de relier ces trois niveaux (la dimension 3 étant souvent trop abstraite). Par exemple dans les sondages, pour construire un intervalle de confiance, les abaques sont utilisées (comme ici) pour relier
- le niveau des intervalles de confiance (5%-95% ou 10%-90%)
- le niveau de probabilité attendu dans le sondage
- la taille de l’échantillon interrogé
On peut d’ailleurs trouver d’autres exemple en statistiques ici ou là. Mais pour revenir au problème des retraite, sur le graphique ci-dessous (appendix 1 ici), en abscisse on met le taux de remplacement (c’est à dire le ratio de la pension moyenne par rapport au revenu moyen) et en ordonnée on met le niveau d’un hausse du taux de cotisation (en points de cotisation). chaque ligne représente un âge moyen de départ en retraite effectif.
On se fixe alors des scénarios d’équilibre et on regarde la manière dont se déplacent les équilibres. J’avais prévu toute une analyse technique, mais je viens de me rendre compte qu’Antoine a mis en ligne un billet remarquable sur le sujet sur http://www.ecopublix.eu/2010/…, que je ne pourrais jamais égaler en clarté. Donc je vais proposer une autre construction d’abaque afin de montrer son intérêt pédagogique.
- Comprendre l’actualisation
Sur le site http://images.math.cnrs.fr/…, Xavier Caruso explique son émerveillement devant la difficulté de faire des calculs d’actualisation. En un sens, ça me rassure de voir que les calculs actuariels ne paraissent pas triviaux à tout le monde (et surtout plein de contre-intuitions). Xavier essaye d’expliquer la différence entre
- ouvrir un compte rémunéré à 4,5% sur lequel on dépose 500 euros chaque mois pendant 10 ans
- ouvrir un compte rémunéré à 4,5% sur lequel on dépose 60000 euros initialement sans plus jamais l’alimenter ensuite.
Si effectivement la somme des 120 versements de 500 euros correspond aux 60000 euros, la valeur intégrant les intérêts n’est pas du tout la même au bout de 10 ans, car dans le premier car, comme le disent les banquiers, “les intérêts se capitalisent“. Bon, si Xavier fait des maths (et donc des développements limités par avoir des formules fermés), on va plutôt faire ici un peu de calculs numériques. Tout d’abord, pour visualiser l’évolution des montants disponibles sur les comptes, rien de plus simple,
> tps=1/12*(1:120) > plot(tps,60000*(1+0.045)^tps,ylim=c(0,100000)) > lines(tps,cumsum(500*(1+0.045)^(tps)))
les montants au bout de 10 ans étant
> sum(500*(1+0.08525)^(1/12*(1:120))) [1] 93180.33 > sum(500*(1+0.045)^(1/12*(1:120))) [1] 75514.32
Ce qui confirme l’intuition que nous avions. Comme le note Xavier, il faudrait un taux d’intérêt deux fois plus grand pour le placement mensuel, la preuve
> sum(500*(1+0.09)^(1/12*(1:120))) [1] 95543 > sum(500*(1+0.08525)^(1/12*(1:120))) [1] 93180.33
Xavier obtient cette valeur en effectuant des développements limités. Il résume ça à l’aide du dessin
On peut aller plus loin, en notant qu’à taux sur le placement mensuel donné, ainsi que la maturité, le taux sur le placement bloqué qui rapporte la même valeur à échéance est donné par
>1))/(500*12*10))^(1/10)-1 [1] 0.04762238
(dans le cas d’un placement rapportant 9%). En fait, si on regarde le montant dont on dispose sur les comptes à chaque date, on obtient précisément les valeurs suivantes, en fonction du temps,
on retrouve effectivement qu’à 4,5%, les deux placements ne donnent pas le même montant à échéance (ici 10 ans). Alors que si le placement alimenté tous les mois rapportait 8,525%, on aurait exactement la même somme au bout de 10 ans
ou si on compare avec un placement à 9% (le double, ce qui est obtenu par développement limité), on obtient
Pour trouver la valeur exacte du multiplicateur en fonction du taux offert sur le compte bloqué et la maturité, la fonction est tout simplement
> taux=4.5/100 > T=10 > f=function(k){(1*12*T)*(1+taux)^T-sum(1*(1+k*taux)^(1/12*(1:(12*T)))) } > uniroot(f,interval=c(0,20))$root [1] 1.894332
L’idée d’utiliser une abaque peut s’avérer intéressante, car on essaye ici de relier
- le taux de rendement de l’argent bloqué
- le taux proposé pour le placement alimenté tous les mois
- la durée envisagée du placement
Je peux mettre en abscisse le taux du placement bloqué. En ordonné, je met le multiplicateur utilisé pour le placement alimenté tous les mois. A maturité donné (par exemple 10 ans en rouge), on peut regarder la valeur du multiplicateur pour que les valeurs à échéance coïncident,
On retrouve directement que le taux équivalent pour un placement alimenté tous les mois doit être 1,89 fois le taux offert sur le placement bloqué si on se fixe une échéance de 10 ans pour égaliser les placements. Le code est simplement le suivant
> tx=seq(0.005,.05,by=.001) > tps=seq(5,25,by=.25) > M=matrix(NA,length(tps),length(tx)) > for(i in 1:length(tps)){ + for(j in 1:length(tx)){ + T=tps[i] + taux=tx[j] + f=function(k){ + (1*12*T)*(1+taux)^T-sum(1*(1+k*taux)^(1/12*(1:(12*T)))) + } + M[i,j]=uniroot(f,interval=c(0,2))$root + }} > contour(tps,tx,M,lwd=2, + xlab="Durée du placement (en années)",ylab="Taux (du placement bloqué)") > abline(v=seq(5,25,by=1),lty=2,col="grey") > abline(h=seq(0,.05,by=.005),lty=2,col="grey")
Bref, l’actualisation est un sujet délicat (même ce n’est que des calculs de sommes et de puissances). Et faire des petits dessins permet souvent de mieux comprendre…