Ce matin, je découvrais un graphique de l’INSEE qui présentait les taux de mortalité par sexe, âge et niveau de vie, avec entre autres le graphique suivant
Comme souvent avec l’INSEE, on a accès aux données… pas celles au niveau individuel (malheureusement) mais au moins on peut retravailler la visualisation. En fait, les données sont même encore plus fines, puisque les niveaux de richesses sont définis avec des tranches de 5%, et en plus, on a le détail entre hommes et femmes
b = read.csv2("MORT-RICHESSE.csv") plot(b[,1],b[,2]/1000,col="red",type="l",ylab="% de survivants",xlab="Age") lines(b[,1],b[,3]/1000,col="red",type="l",lty=2) lines(b[,1],b[,4]/1000,col="blue",type="l",lty=1) lines(b[,1],b[,5]/1000,col="blue",type="l",lty=2) legend("bottomleft",c("Femmes 95-100%","Hommes 95-100%","Femmes 0-5%","Hommes, 0-5%"), bty="n",col=c("red","blue","red","blue"),lty=c(2,2,1,1)) |
Je me demandais si on ne pouvait pas tenter une lecture inverse de ce graphique : sur ce graphique, assez naturellement, on regarde à pourcentage donné l’écart entre la courbe en trait plein (les pauvres) et celle en trait pointillé (les riches). Si c’est cette information qu’on veut avoir, on peut alors tenter de la visualiser. Pour ça, il faut inverser notre fonction de survie (je l’ai fait rapidement, avec une simple interpolation linéaire… je pense qu’on peut faire mieux)
inversef = function(p,k=2){ y=1-b[,k]/100000 idx=sum(y<=p) y1=y[idx-1] y2=y[idx] w1=(y1-p)/(y1-y2) w2=(p-y2)/(y1-y2) w2*b[idx-1,1]+w1*b[idx,1] } |
Ensuite, on peut construire les inverses, et mieux, les différences entre les courbes des riches et des pauvres
diffF = function(p) inversef(p,3)-inversef(p,2) diffH = function(p) inversef(p,5)-inversef(p,4) u = seq(.01,.99,by=.01) vF = Vectorize(diffF)(u) vH = Vectorize(diffH)(u) plot(u*100,vF,col="red",type="l",xlab="Probabilité (%)",ylab="Nombre d'années",ylim=c(0,max(vF,vH))) lines(u*100,vH,col="blue",type="l",lty=1) legend("topright",c("Femmes","Hommes"), bty="n",col=c("red","blue"),lty=c(1,1)) |
Je ne suis pas très à l’aise avec le graphique. Tout d’abord parce que je ne sais pas ce que la richesse indique (un pauvre de 20 ans peut devenir un riche de 50 ans, non ?), la richesse était souvent liée à l’âge. Après l’axe des abscisses me semble aussi avoir une interprétation compliquée : quand on regarde à 10%, on regarde les pauvres et les riches qui sont morts relativement jeunes (relativement car je regarde le quantile de la fonction de survie à tranche de richesse donnée). Autrement dit, si je me place à 10%, je compare les jeunes riches morts très jeunes (10% des riches seulement sont morts plus jeunes – c’est l’interprétation d’un quantile) et les jeunes pauvres (mort à un âge que seulement 90% des pauvres ont dépassé), on observe une différence de 20 ans environ. J’ai aussi l’impression qu’on pourrait dire que pour la majorité des hommes, les riches vivent 12 ans de plus que les pauvres, soit le double des femmes (de l’ordre de 6 ans).
On pourrait bien sûr se contenter de calculer les différences entre les aires, ce qui donne une différence entre les espérances de vie à la naissance des pauvres et des riches (comme le fait l’INSEE)
et qu’on peut visualiser sur le graphique suivant
plot(b[,1],b[,2]/1000,col="white",type="l",ylab="% de survivants",xlab="Age") polygon(c(b[,1],rev(b[,1])),c(b[,3]/1000,rev(b[,2]/1000)),col="red",border=NA) |
et un calcul donne une différence de l’ordre de 8 ans
sum(b[,3]-b[,2])/100000 [1] 8.239346 |
mais la visualisation raconte bien plus qu’un simple calcul d’aire. Par exemple, le graphique ci-dessous donne exactement le même écart entre les espérances de vie des pauvres et des riches
diff = sum(b[,3]-b[,2])/1000 y1 = b[,2]/1000 for(i in 1:100){ y1[i] = b[i,2]/1000+min(100-b[i,2]/1000,diff) diff = diff-(y1[i]-b[i,2]/1000) } plot(b[,1],b[,2]/1000,col="white",type="l",ylab="% de survivants",xlab="Age") polygon(c(b[,1],rev(b[,1])),c(y1,rev(b[,2]/1000)),col="red",border=NA) sum(b[,3]-b[,2])/100000 lines(b[,1],b[,2]/1000,col="red") |
Ici, on dit que la moitié des femmes riches meurent vers 81 ans, et les autres meurent au même âge qu’une femmes pauvre (mais une femme pauvre qui vivrait longtemps. Les distributions sont vraiment différentes, et c’est ça que je cherche à visualiser… Parce que la densité de l’âge au décès ne me semble pas forcément très simple à analyser…
Comme toujours, les commentaires sont ouverts si certains ont des idées quant à la visualisation de ces données…