Les machines, les procédures, et la fuite de la responsabilité

On essaye de nous faire croire que l’intelligence artificielle est une « révolution ». Et s’il n’en était rien ? Ne peut-on pas voir tout simplement la logique d’un processus qui remonte au moins aux cinquante dernières années ? La bureaucratie nous a poussés à mettre en place dans tous les domaines de la vie de tous les jours des procédures simples, permettant à tout-à-chacun de se dégager de toute responsabilité, de ne plus avoir à faire preuve d’intelligence. Les algorithmes font peur, on se demande où se trouve l’ « humain » dans ces procédures décisionnelles… Et s’il avait déjà disparu depuis bien longtemps ?

Assurance et procédures bureaucratiques

Comme l’avait montré Crozier (1963), la bureaucratie apparaît comme un mode d’organisation rationnel, dans lequel les administrés sont protégés du clientélisme et de l’arbitraire par la mise en place de règles objectives. Car la bureaucratie n’est pas uniquement une administration hiérarchisée (et étatique), c’est surtout un ensemble de normes, de procédures et de formalités qui englobent toutes les activités humaines. Les assureurs, par exemple, ont rapidement compris l’intérêt de ces procédures. Dans le contexte des accidents de la route, le règlement des accidents matériels se fait selon la « Convention IRSA » (Convention d’Indemnisation directe de l’assuré et de Recours entre Sociétés d’Assurance automobile) lorsque deux véhicules sont impliqués (succédant à la convention dite IDA, créée en 1968). Après une évaluation des dommages réalisée par un expert, l’assureur établit lui-même la responsabilité de son assuré et l’indemnise directement des dommages matériels et préjudices subis. Il se retourne ensuite contre le ou les assureur(s) adverse(s) selon les modalités de recours établies par la convention. Cette convention repose sur l’utilisation de barèmes, correspondant à 13 cas d’accidents classiques : le cas 51 par exemple est relatif à une collision entre deux véhicules, dont l’un reculait ou effectuait un demi-tour, et dans ce cas, la responsabilité est normalement entière (100%) pour le conducteur du véhicule effectuant une marche arrière (ou un demi-tour). Dans le cas des accidents corporels, la procédure est moins transparente, mais la loi dite Badinter a proposé de mettre en place un mécanisme simple (pour la victime mais aussi, finalement, pour l’assureur du conducteur), avec comme objectif « d’améliorer la situation des victimes d’accidents de la circulation et d’accélérer les procédures d’indemnisation ». Pour ce faire, plusieurs barèmes sont utilisés. Par exemple, l’Incapacité Permanente Partielle (I.P.P.) mesure la « réduction de potentiel physique, psycho-sensoriel ou intellectuel dont reste atteinte une victime » et se traduit par un pourcentage d’incapacité permanente, selon une échelle de 1 à 100, correspondant à un « barème indicatif des déficits fonctionnels séquellaires en droit commun ». Si ce barème est officiellement « indicatif » , le suivre permet d’éviter d’avoir à se justifier. Toute l’évaluation de l’indemnisation va reposer sur des « certificats médicaux », devenus les pièces administratives fondamentales, eux-mêmes de plus en plus normalisés, et répondant à des formes, et des normes spécifiques. Dans une logique très bureaucratique, ces procédures entendent éviter que l’empathie ne soit favorisée. Le développement de normes procédurales a aussi cet objectif : mettre à distance les victimes, pour qu’une neutralité puisse s’exercer, que l’objectivité puisse être (prétendument) assurée et la justice être effective. Cette forme d’indifférence n’est-elle pas la base du quotidien de l’assurance ? Les gestionnaires de sinistres ne souhaitent-ils pas avoir le maximum de distance avec la personne qui appelle car le toit de sa maison a pris feu, ou parce que sa femme est à l’hôpital suite à un accident de la route ?

La production bureaucratique de l’indifférence

Bauman (2002) montre que cette « production de l’indifférence » émerge souvent d’une configuration extrêmement banale, caractéristique de toutes les sociétés modernes, à savoir le couplage de la « division fonctionnelle du travail » et la « substitution de la responsabilité technique à la responsabilité morale ». En décrivant la bureaucratie au Pakistan, Hull (2012) explique que « ces procédures sont élaborées non pas à cause d’une logique de rationalisation, mais parce que les fonctionnaires se protègent en les déployant vigoureusement et largement ». Ce n’est pas étonnant qu’Adolf Eichmann ait choisi cette ligne de défense, lors de son procès, en avril 1961. En fait, quand on relit Arendt (1966), présente lors du procès quant à la responsabilité d’Adolf Eichmann dans la mise en œuvre de la « solution finale » (envoyée alors par The New Yorker à Jérusalem pour témoigner), elle nous présente un personnage « robotisé », désubstantialisé, n’ayant fait qu’obéir aux ordres. Sans revenir sur la réalité historique du rôle d’Eichmann et la mise en scène du procès, l’analyse d’Hannah Arendt de la bureaucratie est intéressante. Le sous-titre du livre, la « banalité du mal », se caractérise par l’incapacité d’être affecté par ce que l’on fait et le refus de juger, comme tout bureaucrate analysant une situation au travers du prisme d’un formulaire, devenant un robot, dont la responsabilité serait remise en cause par une obéissance mécanique aux ordres. Ce dernier serait finalement « représentatif d’un système […] bureaucratique, dans lequel chaque individu n’est qu’un rouage aveugle […] exécutant mécaniquement des ordres venus de l’autorité respectée ». La thèse d’Arendt (pour reprendre les mots de Cesarani (2010)) est en effet « qu’Eichmann disait la vérité lorsqu’il se présentait comme un fonctionnaire dénué de passion, comme un infime rouage dans la vaste machine exterminatrice, et lorsqu’il affirma qu’il aurait très facilement pu être remplacé par quelqu’un d’autre ». Obéir aux ordres, suivre une procédure rend alors Eichmann coupable, mais la question de la responsabilité reste ouverte (en particulier en distinguant la responsabilité individuelle, et la responsabilité collective). Revenant justement sur la question de la responsabilité quelques années plus tard, Arendt (2005) s’interroge, « comment juger sans se cramponner à des standards, à des normes préconçues et à des règles générales sous lesquelles subsumer les cas particuliers ? ». La bureaucratie peut rassurer par sa rationalité, mais effrayer par l’indifférence qu’elle engendre.

Car la bureaucratie n’a rien de nouveau. Les scribes de l’antiquité étaient les premiers bureaucrates, comme l’affirme Wilford (2001). Plus récemment, si Karl Marx s’est penché sur la bureaucratie de l’industrie pour étudier la domination de la bourgeoisie et du capitalisme, Max Weber a montré que la bureaucratie s’accommode de toute forme de pouvoir. Il écrit ainsi que « la véritable domination [s’exerce] dans le maintien de l’administration au quotidien », « la bureaucratie se caractérise par l’impossibilité beaucoup plus grande que l’on a d’y échapper ». L’entreprise est le lieu privilégié du développement d’une bureaucratie, « l’exigence d’une calculabilité et d’une prévisibilité aussi rigoureuse que possible favorise l’essor d’une couche spéciale d’administrateurs et impose à celle-ci un certain type de structuration » (cité par Claude Lefort). Pour Max Weber, la bureaucratie n’est pas un parasite (comme le pensait Marx) mais une composante fondamentale du capitalisme. La sous-traitance, l’externalisation, le travail à flux tendu ne sont possibles que grâce à des pratiques basées sur une bureaucratie plus importante. Il convient de codifier toutes les informations aussi finement que possible, refuser toute approximation dans les décisions, en certifiant et en normalisant, détaillant la répartition des tâches. Le cloisonnement protège les collaborateurs du sentiment de responsabilité. Les « silos » sont devenus les « paradis des experts ». La forme segmentée et séquentielle du travail protège alors les membres de l’organisation comme le montre Dupuy (2011).

La recherche sans fin de normes

Cette production de l’indifférence a été longuement étudiée par Michael Herzfeld, qui montré la spécificité de la bureaucratie d’état en tant que puissance publique, et concrétisant le déni de toute différence : « elle offre la capacité effective et généralisée de rejeter ceux qui ne rentrent pas dans les catégories préétablies et considérées comme normale » comme le note Hibou (2012). C’est aussi ce que note Sainati & Schalchi (2007) en étudiant l’importance de la bureaucratie et des normes dans la dérive sécuritaire des dernières années, « chaque individu-citoyen est appréhendé en fonction de la catégorie délinquante à laquelle il est censé appartenir. Chacun est nécessairement suspect d’avoir commis, de vouloir ou de pouvoir commettre une infraction. Cette politique d’intolérance sociale va achever de transformer la justice (surtout la justice pénale) en système bureaucratique total… ».

L’inflation normative, qui s’observe dans le monde de la justice, aussi été observée dans monde de la finance, avec le recul des instances étatiques (banques centrales, autorité des marchés financiers, régulateurs divers) qui n’interviennent plus directement, mais au travers l’imposition de règles administratives de plus en plus strictes. On pensera aux règles de gestion de type Bâle II, mais aussi les différentes cloisons qui s’érigent entre les diverses activités (banque de dépôt et banque d’affaire, activités de conseil et activités de marché, par exemple). La gestion des risques est fondamentalement bureaucratique, passant par des normes, des grilles, des codes qui vont engendrer des réactions automatiques. Ce reporting donne une vision très simplifiée de l’activité, mais cette synthétisation de l’information permet de prendre des décisions plus rapidement. Cette phase semble indispensable compte tenu des spécificités de chacune des branches, empêchant presque d’avoir une vision globale sur l’activité de la banque. Cet ensemble de règles et de procédures permet aussi de « se protéger » : face à l’incertitude (judiciaire), la meilleure manière de se défendre est de respecter des procédures et des règles. Le but n’est pas d’éviter une faillite, mais de se protéger en cas d’accusation. Le respect des règles devient alors plus important que leur finalité. Ces règles semblent être une réponse politique aux différentes crises traversées par le monde bancaire. Cette inflation bureaucratique apporte une forme de tranquillité et de confort, tout en créant une forme de dilution des responsabilités. Comme le note Hibou (2012), « au nom de la responsabilité individuelle, chacun se doit de respecter les normes, mais le respect des normes vaut comme défaussent des responsabilité en cas de problème » (rappelant au passage l’affaire Kerviel). C’est ce que note par exemple Brunson & Jacobsson (2002) lorsqu’ils affirment que la culture de l’audit est certes une culture de la responsabilité, mais d’une responsabilité individuelle. La responsabilité collective est d’autant plus diluée que les gouvernements délèguent leur pouvoir de régulation aux acteurs privés de façon floue si la norme est adoptée, les techniques de traçabilité permettront de remonter jusqu’à l’individu responsable de l’acte à l’origine d’une défaillance; tandis que si la norme ne n’est pas, personne ne sera responsable.

Et cette recherche de normes est sans fin. Ainsi, nombre d’opposants à l’agriculture industrielle se sont opposé à la normalisation des produits alimentaires, et en réponse, ont développé des normes de consommation biologique. Ces dernières ont alors été remises en question par les réseaux locaux, qui ont souhaité soutenir le concept de « manger local », et pour être reconnu, ont adopté de nouvelles normes. La réponse à des procédures est une surenchère de procédures. Max Weber le disait en 1920, « quand ceux qui sont soumis au contrôle bureaucratique cherchent à échapper à l’influence des appareils bureaucratiques existants, normalement cela n’est possible qu’en créant une organisation propre qui sera également sujette à la bureaucratisation ».

De l’homme à la machine ou voir les machines comme des êtres humains…

MacDonald a longtemps été soucieuse d’assurer la permanence d’un produit homogène partout dans le monde. Dans la logique du mode d’organisation communément appelé Taylorisme, l’entreprise a écrit un guide de procédures, expliquant les bons gestes à faire pour saler les frites, remplir un verre de soda, etc. Dans les centres d’appels, des procédures sont suivies très scrupuleusement par les employés, avec une gestion des files d’appel, les scénarios qui s’affichant sur l’écran, et l’employé n’ayant plus qu’à le dérouler. Simone Weil évoquait une « organisation scientifique du travail », où le travail était déshumanisé, réduit à l’état d’énergie mécanique. Le Taylorisme a été l’expression dans les usines de cette fascination pour la science, voyant l’être humain comme une machine. Mais il n’y a rien de nouveau, puisqu’au milieu du XVIIème siècle Thomas Hobbes écrivait « étant donné que la vie n’est rien d’autre qu’un mouvement de membres, dont le commencement est en quelque partie principale intérieure, pourquoi ne pourrions-nous pas dire que tous les automates (des engins qui se meuvent eux-mêmes, par des ressorts et des roues, comme une montre) ont une vie artificielle? ».

Les ordinateurs ont été inventés pour soulager d’un certain nombre de tâches répétitives en déroulant un algorithme mis en œuvre par un être humain. Les tours de Hanoï sont un jeu très simple, très répétitif… mais se résolvant par un algorithme incroyablement simple. C’est probablement pour ça que ce « jeu » est encore enseigné dans tous les cours d’informatiques et d’algorithmiques, car le « jeu » en tant que tel est en fait rapidement très ennuyeuxi. Dans bon nombre de formations, on n’enseigne plus la créativité, mais des ensembles de procédures à suivre. La méthode dite de Box & Jenkins pour faire des prévision est une longue procédure qu’on se contente de suivre à la lettre, mécaniquement : on stationnarise la série, on la modéliser par un processus autorégressif, puis on valide les hypothèses. Et si ça ne marche pas, on recommence.

L’actuariat, en tant que sciences, repose sur un ensemble de procédures simples. Par exemple pour construire un tarif, on commence par constituer une base, en utilisant les informations de souscription, on va regarder le nombre de sinistres de chaque police, et on va utiliser un modèle pour décrire cette variable de comptage (classiquement une régression de Poisson). Si on souhaite faire des choses plus avancées, on va utiliser une partie des données pour construire le modèle, et une autre pour tester les prédictions de notre modèle. On fera la même chose sur les coûts de sinistres. La démarche est simple : on collecte des données, on estime un modèle, on teste le modèle, éventuellement on retient le meilleur si on a le choix entre plusieurs. C’est tellement simple qu’un ordinateur pour presque le faire tout seul…

Des machines partout !?

Depuis des dizaines d’années, les organisations essayent de mettre en place des procédures permettant d’éviter toute part d’arbitraire (d’humanité ?) dans une prise de décision. En parallèle les ingénieurs ont développés des machines de plus en plus performantes pour répéter inlassablement des tâches routinières. A partir de ce double constat, on ne peut pas s’étonner de voir les machines de plus en plus présentes, partout. C’est tout du moins la thèse défendue par Susskind & Susskind (2015) qui anticipe de nombreuses transformations de la majorité des professions, allant au delà d’une simple robotisation des tâches routinière (y compris pour des professions juridiques, comme le voit Remus & Levy (2015)).

Mais il ne faut pas se tromper, si les machines remplacent les hommes, elles ne sont pas des hommes pour autant. Par exemple, la responsabilité revient toujours à une personne : le concepteur de la machine, son opérateur – qui possède quelques connaissances techniques – ou l’utilisateur – qui bien souvent n’en possède aucune. Abiteboul (2016) va encore plus loin en posant la question éthique sous-jacente, à savoir « un système informatique peut-il se voir attribuer une responsabilité » (et rejoignant les questionnements d’Hannah Arendt). Mais au delà de la responsabilité, on peut arguer que les machines n’ont aucune intention. Elles accomplissent parfois des tâches complexes, mais parce qu’elles ont été programmées pour le faire. C’est la beauté de l’ingénierie : un téléphone (aussi intelligent soit-il) n’est qu’un ensemble de composants électroniques pouvant effectuer des calculs de plus en plus complexes (parfois il peut le localiser sur une carte et me proposer un chemin rapide pour rejoindre un restaurant), mais le téléphone ne veut rien. Un traducteur automatique permet de traduire un texte en quelques secondes, mais seulement parce qu’il a été programmé pour ça, alors que si un enfant apprend une langue, c’est parce qu’il comprend que c’est une étape indispensable pour communiquer avec ses parents. Si je tape une phrase dans une langue inconnue dans un traducteur, je suis impressionné d’obtenir une réponse qui ait du sens. Mais si je maîtrise (un tant soit peu) les deux langues, je suis au contraire souvent déçu, espérant probablement mieux. Ces machines sont souvent très prévisibles, ce qui est à la fois une qualité et un défaut. N’est-ce pas ce qu’on demande à tout ingénieur ? La machine doit être fiable, obéir au doigt et à l’œil. La première différence entre l’homme et la machine est que l’homme peut désobéir. Et c’est sa plus grande richesse !

Un mot qui revient sans cesse quand on pratique la science des données est le mot « apprentissage » (on parle de “machine learning“). On nous explique que la machine tente de reproduire la démarche humaine de l’être humain lorsqu’il apprend. L’enfant apprend à reconnaître les lettres, puis apprend à les mettre bout à bout pour écrire des mots, de manière assez consciente puisqu’il est guidé le plus souvent par son instituteur. Il apprend aussi à reconnaître de visages, de manière souvent inconsciente cette fois. La machine apprend aussi à reconnaître des écritures manuscrites, ou des visages. La machine va faire des erreurs, mais elle va aussi « apprendre de ses erreurs », et elle va s’améliorer. Comme un être humain ? Ce n’est pas aussi simple que ça. L’enfant va se décourager plusieurs fois avant de savoir lire correctement, et il va persévérer. On retrouve le « conatus » cher à Spinoza, cet effort que fait toute chose qui existe effectivement, cette persévérance dont fait preuve tout être vivant. Et souvent, cet apprentissage se fait dans la douleur. Si une machine se trompe, reconnaissant un “5” alors qu’il s’agissait d’un “3”, elle commet une erreur, et pour elle ça s’arrête là. Pour l’enfant qui espérait avoir 5 bonbons et qui n’en a que 3, il ressentira réellement l’erreur. Que dire de cette personne qui pensait avoir un rendez-vous important à 15 heures, et qui arrive deux heures en retard ?

Penser qu’un téléphone puisse être intelligent est probablement révélateur de ce qu’on pense être l’intelligence. Mais les machines sont très loin de pouvoir remplacer les êtres humains. Elles n’en ont pas l’envie, et heureusement, tant qu’elles ne seront pas programmées à le faire, cela ne risque pas d’arriver.

References

Abiteboul, Serge 2016. Informaticiens, tous coupables ? Le Monde, 1er septembre 2016

Arendt, Hannah 1966. Eichmann à Jérusalem : Rapport sur la banalité du mal. Folio Histoire.

Arendt, Hannah 2005. Responsabilité et jugement. 2005.

Bauman, Zygmunt 2002. Modernité et Holocauste. La Fabrique.

Brunson, Niels & Jacobsson, Bengt. . 2002. A World of Standards. Oxford University Press.

Cesarani. David. 2010. Adolf Eichmann .Tallandier.

Crozier, Michel. 1963. Le Phénomène bureaucratique. Seuil.

Dupuy, François. 2011. Lost in Management.: La vie quotidienne des entreprises au XXIe siècle. Seuil.

Herzfeld, Michael. 1992. The Social Production of Indifference. The University of Chicago Press.

Hibou, Isabelle. 2012. La bureaucratisation du monde à l’ère néolibérale, La Découverte.

Hobbes, Thomas. 1651. Leviathan. (version Folio Essais)

Hull, Matthew. 2012. Government of Paper The Materiality of Bureaucracy in Urban Pakistan. University of California Press.

Lefort, Claude. 1979. Éléments d’une critique de la bureaucratie, Paris, Gallimard.

Remus, Dana & Levy, Frank Can Robots Be Lawyers? Computers, Lawyers, and the Practice of Law. Working Paper

Sainati, Gilles & Schalchli, Ulrich. 2007. La décadence sécuritaire. La Fabrique.

Susskind Richard & Susskind Dana. 2015. The Future of the Professions: How Technology Will Transform the Work of Human Experts. Oxford University Press.

Weber, Max. 1921. La domination légale à direction administrative bureaucratique. Paru dans Économie et Société.

Weil, Simone 1999. L’Enracinement, Œuvres, Quarto Gallimard.

Wilford, John 2011. Greek Tablet May Shed Light on Early Bureaucratic Practices. New York Times, 4 Avril 2011

i On peut d’ailleurs se demander si les situationnistes n’avaient pas raison lorsqu’ils critiquaient la société fordiste (bureaucratique), dans laquelle la certitude de ne pas mourir de faim avait été échangé contre le risque de mourir d’ennui.

Enveloppe convexe de points tirés au hasard

Le week-end dernier, Jean-Baptiste qui était de passage à la maison, me présentait un problème amusant de géométrie, lié à un papier mis en ligne l’an dernier, monotonicity of facet numbers of random convex hulls. Dans cet article, ils montrent que quand on tire n points au hasard (dans un espace de dimension d) alors P_n, le nombre moyen de face de l’enveloppe convexe est strictement croissant avec n. Si on n’a pas regardé la démonstration (on avait mieux à faire), Jean-Baptiste me disait que ce problème très simple était en fait très complexe. Et bien entendu, comme ça m’a interpelé, j’ai voulu regarder plus en détails. En dimension d=2, et en tirant en plus uniformément sur le carré unité (oui, j’ai fait très très simple).

Pour tirer des points au hasard, et récupérer l’enveloppe convexe, c’est assez simple, par exemple avec 15 points

library(sp)
library(geosphere)
n=15
UV=matrix(runif(2*n),n,2)
CH=chull(UV)
PLCH=UV[c(CH,CH[1]),]
plot(c(0,0,1,1),c(1,0,0,1))
polygon(PLCH,border="blue",col=rgb(0,0,1,.3))
points(UV,pch=19,cex=2,col="red")

On le voit, ici l’enveloppe convexe est un polygône de 8 côtés (ou 8 sommets). On peut alors faire un petit code pour tirer des points au hasard, construire l’enveloppe convexe, et sortir des infos (nombre de points extrémaux, surface de l’enveloppe convexe, présence ou non de certains points – sur la diagonale, etc)

simu=function(n,isplot=FALSE){
UV=matrix(runif(2*n),n,2)
CH=chull(UV)
PLCH=UV[c(CH,CH[1]),]
nb_ex=length(CH)
p_in=function(u) point.in.polygon(u,u,PLCH[,1],PLCH[,2])
pts_in=Vectorize(p_in)(seq(.5,.95,by=.05))
if(isplot==TRUE) lines(PLCH,col=rgb(0,0,1,.25))
return(list(nb=nb_ex,area=areaPolygon(PLCH),pts=pts_in))}

par exemple

plot(c(0,0,1,1),c(1,0,0,1),col="white")
for(s in 1:1000){S=simu(5,isplot=TRUE)}

(on pourrait bien entendu stocker tout plein de choses)

ou encore avec n= 20 points au lieu de 5

plot(c(0,0,1,1),c(1,0,0,1),col="white")
for(s in 1:1000){S=simu(20,isplot=TRUE)}

Essayons de boucler un peu sur n maintenant

Np=c(3,4,5,6,7,8,10,15,20,30,40,50,75,100,200)
VN=VA=rep(NA,15)
NN=matrix(NA,20000,15)
VPT=matrix(NA,15,10)
for(i in 1:15){
N=A=rep(NA,20000)
PT=matrix(NA,20000,10)
np=Np[i]
for(s in 1:20000){
S=simu(np,isplot=FALSE)
N[s]=S$nb
PT[s,]=S$pts
A[s]=S$area
}
NN[,i]=N
VN[i]=mean(N,na.rm=TRUE)
VA[i]=mean(A,na.rm=TRUE)
VPT[i,]=apply(PT,2,function(x) mean(x,na.rm=TRUE))
}

Cette fois on stocke tout plein de choses. On peut juste faire un boxplot du nombre des points extrémaux en fonction de la taille de l’échantillon

VV=rep(Np,each=20000)
boxplot(as.vector(NN)~as.factor(VV))

Oui, en moyenne, ça semble croitre. Plus amusant, si on regarde la moyenne en fonction de \log(n)

plot(Np,VN,type="l",log="x",col="blue")

on obtient… une belle droite ! Le nombre moyen de points extrémaux croit en \log(n). On peut même avoir la pente de cette droite,

> lm(VN~log(Np))
Coefficients:
(Intercept) log(Np)
0.05224 2.58717717

Je laisse les plus courageux trouver du sens à ce 2.58717… Si on continue un peu, on peut regarder la probabilité que (u,u) soit à l’intérieur, pour plusieurs valeurs de u.

plot(Np,VPT[,10],type="l",log="x",col="blue")
lines(Np,VPT[,8])
lines(Np,VPT[,5],col="red",lwd=2)

On retrouve des fonctions croisantes, en fonction de n, mais la convexité semble dépendre de l’endroit où se trouve le point u. Amusant, non ?

Changement Climatique et Assurance

Mercredi, je participerais à la Journée du Marché organisée par AON, pour la table ronde du matin sur le thème du changement climatique, à Paris.

La première partie de la table-ronde portera sur l’impact du changement climatique sur l’assurance et la réassurance, et la partie sur l’impact de l’assurance sur le changement climatique. J’interviendrais principalement dans la première partie.

J’en profite pour remettre un lien vers un court article que nous avions publié il y a quelques temps, ‘Changement Climatique et Assurance‘, dans Variances.

Graduate Course on Advanced Tools for Econometrics (2)

This Tuesday, I will be giving the second part of the (crash) graduate course on advanced tools for econometrics. It will take place in Rennes, IMAPP room, and I have been told that there will be a visio with Nantes and Angers. Slides for the morning are online, as well as slides for the afternoon.

In the morning, we will talk about variable section and penalization, and in the afternoon, it will be on changing the loss function (quantile regression).

Graduate Course on Advanced Tools for Econometrics (1)

This Monday, I will be giving the first part of the (crash) graduate course on advanced tools for econometrics. It will take place in Rennes, IMAPP room, and I have been told that there will be a visio with Nantes and Angers. Slides for the morning are online, as well as slides for the afternoon.

In the morning, we will talk about smoothing techniques, and in the afternoon, it will be on simulations and bootstrap techniques.

When “learning Python” becomes “practicing R” (spoiler)

15 years ago, a student of mine told me that I should start learning Python, that it was really a great language. Students started to learn it, but I kept postponing. A few years ago, I started also Python for Kids, which is really nice actually, with my son. That was nice, but not really challenging. A few weeks ago, I also started a crash course in Python, taught by Pierre. The truth is I think I will probably give up. I keep telling myself (1) I can do anything much faster in R (2) Python is not intuitive, especially when you’re used to practice R for almost 20 years… Last week, I also had to link Python and R for our pricing game : Ali wrote some template codes in Python, and I had to translate them in R. And it was difficult…

Anyway, since it was a school break this week, I said to my son that we should try to practice together, with a nice challenge. For those willing to try it, you’d better stop here, because I will spoil it.

Continue reading When “learning Python” becomes “practicing R” (spoiler)

Démographie historique à l’aide de données généalogiques participatives

Voilà plusieurs mois qu’avec Ewen Gallic on travaille sur des données généalogiques. Le premier papier, Étude de la démographie française du XIXe siècle à partir de données collaboratives de généalogie est fini. Il s’agit d’une note métodologique, décrisant comment on a reconstitué les arbres de ces 2,45 millions de personnes (701 millions d’enregistrements dans lesquels il a fallu faire du ménage), correspondant aux descendants sur 3 générations de personnes nées en France, entre 1800 et 1804.

Pour illustrer l’apport de ces données riches, on a commencé par étudier la mortaiité au cours du XIXème siècle

et noté que, certes, on sous-estime la mortalité des moins de 20 ans, et des personnes très âgées, mais globalement, nos donnéees sont conformes à ce que nous attendions (peut être moins sur la natalité). On a également commencé à étudier la migration, de génération en génération

(ici la proportion de descendants nés dans le même département que leur aieux). Plein d’autres résultats, à lire dans le papier, en ligne sur hal et beaucoup d’autres résultats sur la page github créée par Ewen.

Données Personnelles et Assurance

Depuis plusieurs semaines (pour ne pas dire plusieurs mois), je discute avec Delphine Cocteau-Senn et Rodolphe Bigot (dialogue de juristes avec un actuaire) sur la protection des données personnelles en assurance. Tout avait commencé il y 15 mois, avec une table ronde organisée à Amiens, avec un resto la veille, les discussions pendant la table ronde, puis des dizaines et des dizaines d’échanges de messages, de coup de fils, de restos…. Rodolphe Bigot m’avait sollicité pour une autre table ronde sur le droit de l’assurance à Caen, et de mon côté, j’avais demandé à Delphine Cocteau-Senn d’intervenir dans la formation Actuariat – Data Science de l’Institut des Actuaires, depuis l’an dernier. Bref, on a eu de très nombreux échanges, et quand on voit les prises de positions ici et là (pour ne pas parler de brassage d’air), on s’était dit que nos discussions pourraient éclairer les débats qui agitent actuaires et juristes.

C’était d’autant plus intéressant, je pense, qu’on a vraiment appris, mutuellement, de ces échanges. Echanges entre un actuaire et des juristes, tous les trois universitaires. Depuis plusieurs semaines, on tente de mettre par écrit ces échanges, et le résultat est aujourd’hui en ligne. La forme retenue est une présentation juridique de plusieurs points (en lien avec des notions évoquées dans le Réglement Général sur la Protection des Données – n° 2016/679), quelques questions actuarielles, et une ébauche de réponse. On a longuement hésité sur la forme, mais on a gardé la forme de la discussion, probablement plus agréable à lire qu’un texte écrit à trois. Je mets ici l’introduction (le document complet est en ligne)

Continue reading Données Personnelles et Assurance

Actuarial Pricing Game

Within a few days, we will launch the fourth actuarial pricing game.

  1. People have to register for that new game. People have to fill a form online before February 28th to get a training dataset. As in our previous versions, players can be individuals or in a team (identified as one player).
  2. When registration closes, players will receive a training dataset (training.csv). The training dataset will be based on two years of data on household policies. There will be information about the insurance policy from underwriters, as well as, claims data. They will also receive a pricing dataset (pricing.csv) with only underwriters information and no claims. The goal is to propose a premium for all records in the pricing dataset. Note that those registered will also receive additional information and template files after registration closes.
  3. Before  April 9th, 2018, players will have to provide two files: a pricing function (either a formula.py Python function, or a formula.R R function) and a dataset with prices prices.csv). The pricing function should be an understandable explicit function which, once applied to the training dataset, will yield premium prices for each record. There will be limits on the complexity of this function. To ensure this, players will receive instructions on what can be used to construct formulas either in Python or R.
  4. Before May 14th, 2018, players are asked again to submit two files: a dataset with prices (second_prices.csv) and a pricing model (either a model.py Python file, or a model.R R file). For this round there are no restrictions on what can be used in the model, as long as, by using the model file submitted the prices dataset (second_prices.csv) can be reproduced. Players will again receive further instruction on this after registration.

Unicode, UTF-8… la base de l’encodage

Un petit billet rapide, sans aucune prétention. Juste pour revenir sur des trucs bizarres sur l’encodage… J’avais commencé à m’y intéresser il y a 3 ans, alors que je discutais avec des utilisateurs de R en Inde et au Japon. Mais revenons à la base… Si on regarde la page “unicode” de Wikipedia (ou plus précisément, si on regarde le code source, on peut avoir des informations (dans les métadonnées) : en l’occurrence, on voit que la page est encodée en UTF-8

C’est cohérent car de plus en plus de documents en ligne semblent encodé dans ce format. Si on revient à la source, l’encodage c’est lié au passage par les bytes 0/1. Plein de sites expliquent (en gros) la philosophie. Quand j’étais petit, on nous expliquait les caractères ASCII, qui utilisent 7 bits ce qui permet de disposer  128 caractères uniquement, numérotés de 0 à 127.  Genre “A” était le 65ème caractère, et “a” le 97ème. Il y avait des symboles exotiques (comme “@” qui est le 64ème) ou la ponctuation, mais pas d’accents, comme “à”. Si on veut les lettres avec des accents, il faut plus que 128 caractères. Est-alors arrivée ISO/CEI 8859, qui proposait d’encoder les caractères sur 8 bits (et pas 7). On parle aussi de ISO 8859-1 plus populaire sous le nom “latin-1” très populaires dans les pays latins, avec le “à“, et puis on a continué d’enrichir pour arriver au ISO 8859-15 (latin-9) avec dedans le symbole “€”. Pour les langues asiatiques, il a fallu enrichir encore. Bref, c’est un jeu sans fin. Dans les années 90, est arrivée la norme ISO 10646 correspondant au “jeu universel de caractères” ou UCS pour Universal Character Set (en anglais), qui donnera Unicode. Je crois que les puristes font la différence entre les jeux de caractères (l’ensemble de caractères auxquels on attribue à chacun un point de code unique, la liste des caractères ASCII par exemple) et l’encodage (qui est la façon de représenter ce point de code en mémoire). Mais on va faire simple…

Là où ça se complique c’est que les OS utilisaient (par défaut) des encodages différents. Sous Windows, UTF-16 et Unicode sont majoritairement utilisé. Sous Mac OS,il y avait un truc appelé MacRoman mais il semble que UTF-8 l’emporte aujourd’hui. Enfin, sous linux, historiquement c’était du latin-1 par défaut, mais progressivement l’UTF-8 semble prendre le dessus. Bref, tous ceux qui naviguent entre les OS le savent : les accents c’est l’enfer. Et le principal soucis c’est qu’il est impossible, quand on récupère un fichier d’avoir son encodage a priori. Regardons le fichier suivant BaseANSI.txt

On peut tenter de regarder s’il y a des sortes de méta-données dans le document…

mais ce n’est pas le cas. Le document est un document brut, avec juste les données, et aucune métadonnées. Rien sur l’encodage (en particulier, car c’est ce qui nous intéresse aujourd’hui). Pour l’anecdote, si au lieu d’ouvrir le fichier avec mon bloc-note sous Windows, on tente sur un mac, on a

Et quand je passe par le terminal DOS sous Windows, c’est la même chose (ce qui est un peu rassurant)

Regardons un autre fichier BaseUNICODE.txt. Si vous voyez une différence avec l’autre, dites le moi…

Pourtant il y en a une : la preuve, dans un terminal, on peut lire les accents du fichier,

Un dernier ? Regardons BaseUTF8.txt,Là encore, on a l’impression d’avoir le même fichier. Et pourtant non.

Commençons par récupérer les trois fichiers (via R)

download.file(url="http://freakonometrics.free.fr/BaseUTF8.txt",
destfile="BaseUTF8.txt")
download.file(url="http://freakonometrics.free.fr/BaseANSI.txt",
destfile="BaseANSI.txt")
download.file(url="http://freakonometrics.free.fr/BaseUNICODE.txt",
destfile="BaseUNICODE.txt")

Techniquement, ces documents sont différents, même si dans le bloc note, on ne voyait rien : il n’ont pas la même taille !

file.size("BaseUNICODE.txt")
[1] 322
file.size("BaseANSI.txt")
[1] 163
file.size("BaseUTF8.txt")
[1] 171

On peut essayer de les lire, pour voir…

read.table("BaseANSI.txt",header=TRUE,sep=";")
                       Département No Habitants
1                              Ain 01    631877
2                          Ardèche 07    324209
3                 Bouches-du-Rhône 13   2016622
4                     Corse-du-Sud 2A    152730
5 Côte-dOr;21;533147\nCôtes-dArmor 22    598357

On a un petit soucis avec l’apostrophe, mais rien de grave

read.table("BaseANSI.txt",header=TRUE,sep=";",quote="\"")
       Département No Habitants
1              Ain 01    631877
2          Ardèche 07    324209
3 Bouches-du-Rhône 13   2016622
4     Corse-du-Sud 2A    152730
5        Côte-d'Or 21    533147
6    Côtes-d'Armor 22    598357

R arrive parfaitement a lire (sur mon ordinateur du moins) cette première base de données. Tentons une seconde

read.table("BaseUTF8.txt",header=TRUE,sep=";",quote="\"")
    ï..DÃ.partement No Habitants
1               Ain 01    631877
2          Ardèche 07    324209
3 Bouches-du-Rhône 13   2016622
4      Corse-du-Sud 2A    152730
5        Côte-d'Or 21    533147
6    Côtes-d'Armor 22    598357

On a manifestement un soucis, un soucis d’encodage. Le soucis c’est que, d’ordinaire, on ne sait pas comment le fichier a été encodé. Et comme on l’a vu, il n’y a pas de métadonnées qui nous donne l’encodage. Comment faire ? Heureusement, il existe une fonction sous R qui devine l’encodage. Littéralement.

library(readr)
guess_encoding("BaseUTF8.txt", n_max = 1000)
# A tibble: 3 x 2
  encoding   confidence
 
1 UTF-8           1.00 
2 ISO-8859-1      0.620
3 ISO-8859-2      0.430

Autrement dit, le best-guess est ici un encodage UTF-8. Essayons pour voir,

read.table("BaseUTF8.txt",header=TRUE,sep=";",encoding="UTF-8",quote="\"")
  X.U.FEFF.Département No Habitants
1                  Ain 01    631877
2              Ardèche 07    324209
3     Bouches-du-Rhône 13   2016622
4         Corse-du-Sud 2A    152730
5            Côte-d'Or 21    533147
6        Côtes-d'Armor 22    598357

Ça marche ! ou disons que ça marche presque. J’ai un soucis dans mes libellés de variables. Mais disons que c’est anecdotique ici.

Tentons le dernier fichier

read.table("BaseUNICODE.txt",header=TRUE,sep=";",quote="\"")
  ÿþD
1  NA
2  NA
3  NA
4  NA
5  NA
6  NA
7  NA
8  NA

Comme ça ne marche pas, essayons d’avoir un best-guess sur l’encodage

guess_encoding("BaseUNICODE.txt", n_max = 1000)
# A tibble: 3 x 2
  encoding   confidence
 
1 UTF-16LE        1.00 
2 ISO-8859-1      0.530
3 ISO-8859-2      0.270

On en tient un !

read.table("BaseUNICODE.txt",header=TRUE,encoding="UTF-16LE")
  ÿþD
1  \n
2   B
3  \n
4   C
5  \n
6   C
7  \n
8   C

Damned, ça ne marche pas… Heureusement, Ewen est venu à ma rescousse. La solution est relativement étrange

read.table("BaseUNICODE.txt",header=TRUE,fileEncoding="UTF-16LE", sep=";", quote="")
       Département No Habitants
1              Ain 01    631877
2          Ardèche 07    324209
3 Bouches-du-Rhône 13   2016622
4     Corse-du-Sud 2A    152730
5        Côte-d'Or 21    533147
6    Côtes-d'Armor 22    598357

Oui, on n’utilise pas l’encodage via “encoding” mais “fileEncoding” ! Subtil non… Cela dit, si on voulait être cohérent on devrait utiliser la fonction du package pour lire la base, non ? Car dans le package “readr” il y a une fonction “read_table”

read_table("BaseUNICODE.txt",locale=locale(encoding = "UTF-16LE"))
Error in guess_types_(datasource, tokenizer, locale, n = guess_max) : 
  Incomplete multibyte sequence

Sauf que quand on la lance, on a un message d’erreur… Bref, l’encodage c’est compliqué. C’est ce qui est expliqué dans le forum de discussion du package cela dit. Je ne suis pas sûr que mon billet serve à quoi que ce soit, mais je voulais garder une trace de tout ça !

De la communication scientifique…

Vendredi dernier, j’étais convié à une matinée de discussion autour de la communication scientifique, par des universitaires, à destination des doctorants de la région. Muriel Lefebvre a fait une présentation captivante sur la communication scientifique, et comme promis, je vais mettre par écrit quelques notes prises (je pourrais préciser que j’ai rajouté des réflexions personnelles, mélées à mes notes, car je n’ai pas réussi à déméler). L’idée était de questionner la communication scientifique, et ses pratiques diverses. Le premier point était de noter la variété des formes, la variété des objectifs (écrire permet de réfléchir, de communiquer, de valider, etc), et la variété des publics. En effet, on peut écrire pour soi, pour les pairs (présents, mais aussi passés, en revisitant des études), et pour d’autres sphères. Pour illustrer ce dernier point, Muriel Lefebvre a proposé de revenir sur la rose des vents proposée par Callon, Courtial & Penan (1993), que je reprends sommairement

(bon, le géomètre qui est en moi bout, car une rose des vents est une étoile à 32 directions, pour les 32 directions du vent, car 32=25 or ici on n’a que 5 branches…. mais peu importe). La “communication scientifique” est un objet difficile à identifier parce qu’elle est confrontée à ces 5 axes, qui sont de nature très différente.

En haut à gauche, on retrouve les deux branches classiques du monde académique : la communication liée à l’enseignement, et celle liée à la recherche académique. Dans ces deux sphères, l’enseignant-chercheur est légitime parce que c’est dans son nom : il est enseignant et chercheur. Le terme “média” est à entendre au sens large, il s’agit de toucher un grand public. La “sphère économique” est liée à d’autres termes importants aujourd’hui, comme l’innovation, ou la valorisation. Pour ce dernier, si on pense naturellement aux applications industrielles, on peut toutefois rajouter des activités commerciales au sens large, comme cela peut se voir en droit. Enfin, les “institutions” pourrait être un terme fourre-tour, dès lors que l’enseignant-chercheur est appelé à partager son expertise (par exemple dans des discussions en lien avec la bioéthique).

Il y a aussi une confusion sur les termes, où les termes de publication, de médiation, de vulgarisation, sont utilisés dans tous les sens. Historiquement, la communication scientifique passe par l’écriture, qui légitime le travail. La publication permet de diffuser des travaux, tout en servant d’instrument de validation, d’assurer la paternité d’une découverte, de valoriser un travail, et elle sert aujourd’hui de base pour évaluer la recherche. Cette publication scientifique passe par un processus éditorial et une évaluation par les pairs. La chaîne de l’écriture scientifique est un processus non linéaire, largement décrit par Hans Reichenbach et Karl Popper, mais qui historiquement, restait dans la sphère académique. La vulgarisation (du latin vulgaris) vise à transmettre un contenu (scientifique) d’une manière aisément compréhensible par un large public. Son apogée a été au XIXème siècle, et a été basé sur une relation fondamentalement hiérarchique, du savant vers l’ignorant, du sacré vers le profane. La transmission est alors unidirectionnelle. Ce terme a aujourd’hui une connotation négative, on lui préferera celui d’instruction, ou d’éducation populaire. Cette vulgarisation n’est alors pas une fin en soi, mais une méthode. Puis dans les années 60/70, on voit arriver l’idée de médiation scientifique. Il s’agit alors de mettre du lien, de dialoguer, dans une époque qui remet en question l’autorité de la science, qui n’associe plus science et progrès aussi aisément. Ce dialogue qui doit être rétabli entre science et société se retrouve plus généralement entre la culture et la société. C’est l’époque des maisons de la culture, nées de l’idée d’ouvrir et de rentre accessible l’art (et la culture) à tout le monde. Par la suite, dans les années 80, la notion de culture va s’élargir, en reconnaissant des formes plurielles et diverses. Et la science va bénéficier de ce mouvement. C’est l’idée de “(re)mettre la science en culture“. La culture scientifique est alors une sous partie de la culture commune.

Ces changements vont se traduire par des nouvelles formes de publicisation de la science, pour reprendre la terminologie de Jürgen Habermas. Il s’agit pour le scientifique de rendre public ses travaux, d’être visible. La publicisation se fait par les revues savantes traditionnelles, mais aussi les revues électroniques, les archives ouvertes (hal, arxiv, etc), les réseaux sociaux académiques (research gate, academia, etc), qui restent tous dans la sphère académique traditionnelle. Mais il y a aujourd’hui également de la publicisation vers un publique non-académique, qui peut être atteint par les carnets et blogs de recherche, ou par des chaînes youtube. Depuis 1982, et la redéfinition du rôle de l’enseignant-chercheur, l’importance de la diffusion n’a cessé d’augmenter.

Les expériences de vulgarisation/médiation ne cessent de se multiplier, allant de la fête de la science, à la nuit européenne des chercheurs ou MT180. L’objectif n’est plus très clair, même si les institutions académiques semblent valoriser ces activités, allant d’un souhait de partager des savoirs à une forme d’injonction de visibilité. Pour conclure, Muriel Lefebvre est longuement revenue sur cette double injonction, de qualité et de visibilité. Les fontières semblent se brouiller, Il y a une demande d’humanisation (voire une personnalisation) de la recherche.

On a ensuite eu une table ronde, et ma prise de notes en a pâti (on s’est un peu écouté parler). Il y a eu de nombres interrogations sur la légitimité pour faire de la médiation, et sur l’ouverture des revues savantes. Mais une intervention a aussi souligné l’émergence d’un nouvel acteur depuis quelques années dans la médiation : les associations. Le point de départ semble avoir été les associations en lien avec les personnes malades, atteintes du HIV, dans les années 80, qui ont voulu comprendre. Ces associations peuvent jouer un rôle important dans la médiation. L’histoire amusante est un article de Muriel Lefebvre, intitulé The Circulation of Scientific Articles in the Sphere of Web-Based Media: Citation Practices, Communities of Interests and Local Ties. Dans cet article, elle s’interroge sur la vie d’un article paru en 2012, dans PLoS, intitulé “Freshwater Killer Whales”: Beaching Behavior of an Alien Fish to Hunt Land Birds, et plus particulièrement qui mentionne cet article. Pour information, cet article étudie un gros poisson, la silure (Silurus glanis)

et ce poisson semble avoir tendance à manger des oiseaux, comme ces pigeons (Columbia livia). L’article illustre avec quelques photos (les plus courageux pour aussi trouver en ligne des vidéos).

La question n’était pas de savoir qui dans les revues scientifiques citent cet article (comme peut le faire la bibliométrie traditionnelle) mais plutôt de comprendre au sens large qui a pu mentionner cette étude (publiée en accès ouvert). En fait, cet article a été énormément mentionné sur des sites internet d’associations de pêcheurs (comme seriouslyfish), qui peuvent relayer une information publiée par des chercheurs, pour la diffuser auprès d’un public beaucoup plus large. En fait, le processus de la production scientifique est complexe, car ces associations peuvent aussi faire remonter un problème auprès de scientifiques, qui prendront alors le temps de creuser, et de comprendre. Il s’agit alors véritablement d’échanges. Plus généralement aujourd’hui, on retrouvera beaucoup d’association de malades, qui tentent de comprendre la recherche, mais qui tentent aussi de sensibiliser (et donc de financer). Il n’y a plus de hiérarchie, entre sachants et profanes, mais au contraire une vraie médiation jouée par le chercheur.

Seven Questions Raised by the Bootstrap

Pour le cours de magistère, suite à la première partie du cours, présentant les méthodes de simulation, faite par Magali Fromont, nous allons travailler sur le boostrap, en partant de l’article de Bradly EfronSix Questions Raised by the Bootstrap. L’article date un peu (il a été publié en 1990) mais il pose six questions qui permettront de revenir sur le fonctionnement du bootstrap (et de la statistique mathématique).

  • why do maximum likelihood estimated distributions tend to be short-tailed ?
  • why does the delta method tend to underestimate standard errors ?
  • why are cross-validation estimators so variable ?
  • what is a correct confidence interval ?
  • what is a good nonparametric pivotal quantity ?
  • what are computationally efficients ways to bootstrap ?

Je me permets d’en rajouter une septième

  • why generate samples of size n, why not try smaller sizes ?

Ce dernier point pose la question du subsampling. Je renvoie aux notes de cours de Charles Geyer qui présente ce concept. Je recommande à tous la lecture de What Teachers Should Know about the Bootstrap. Enfin, pour un ouvrage de référence plus moderne que l’article de Bradley Efron, je ne peux que recommander les chapitres 10 et 11 de Computer Age Statistical Inference.

 

An Open Lab-Notebook Experiment