Pour quiconque en est resté au Fortran et à SAS® – et tout aussi digne d’intérêt pour les plus jeunes – voici d’agréables occasions de découvrir la programmation orientée objet avec deux publications au volume contenu (240 et 136 pages), que le lecteur curieux mais pressé verra d’un bon œil. Les deux livres ont en commun un point de vue largement guidé par la pratique des mathématiques dans un spectre d’applications assez large, néanmoins nettement orienté vers la modélisation et la simulation de l’aléatoire.

Statistique, actuariat et finance avec R

L’ouvrage de Nicolas Baradel consacré au langage R, un des outils les plus populaires au sein de la communauté des sciences des données, ne vise pas à présenter de façon exhaustive toutes les fonctionnalités et possibilités du langage. Ce serait d’ailleurs assez vain pour un livre au format papier, compte tenu de toutes les ressources disponibles et actualisées en ligne sur le sujet. L’objectif est davantage de mettre l’accent sur les concepts fondamentaux du langage et d’illustrer le traitement de problèmes d’estimation et de simulation en statistique, actuariat et finance.

Dans cette optique, la présentation est organisée autour de deux parties à peu près égales. L’apprentissage du langage est développé dans un premier temps, sans privilégier un type particulier d’applications ni supposer de prérequis spécifiques en informatique. Pour commencer, cette première partie aborde donc logiquement les notions de base : l’installation (R est un logiciel libre), les types, objets et fonctions. Une attention particulière est ensuite portée à l’efficacité de la programmation, notamment en termes de temps de calcul et de gestion de la mémoire. La simulation de variables aléatoires, qui préfigure la suite de l’ouvrage, et les représentations graphiques font l’objet de chapitres dédiés. Dès les premiers chapitres et tout au long de la première partie, des exercices corrigés accompagnent les exposés. La plupart traitent de questions de mathématiques générales ; les amateurs apprécieront en particulier la génération d’une représentation de l’ensemble fractal de Mandelbrot.

La seconde partie du livre est consacrée au traitement de cas pratiques avec R, relevant pour l’essentiel de besoins génériques d’estimation et de simulation de modèles économétriques et de séries temporelles. Pour faciliter une lecture autonome, l’auteur prend utilement soin de rappeler au passage nombre de définitions et de résultats fondamentaux de statistique mathématique et de finance quantitative (avec le support de la bibliographie). Différents outils fondamentaux de modélisation viennent ensuite illustrer et mesurer la puissance du langage dans leur mise en œuvre numérique. Sont en particulier abondamment traités : les processus de diffusion, les équations différentielles stochastiques, la modélisation multivariée par copules. Le dernier chapitre se distingue par la présentation d’une problématique métier plus spécifique : le calcul des provisions pour sinistres inconnus en assurance (ou IBNR pour Incurred But Not Reported). Cet exemple est une bonne illustration de la création rapide d’un code efficace avec l’appui d’une bibliothèque (package) disponible sur le sujet. Comme la plupart des langages modernes, R a vocation à être utilisé avec des bibliothèques de programmes qui vont compléter les possibilités offertes par le code de base. Un de ses points forts est précisément la disponibilité de nombreux algorithmes avancés de statistique et science des données, développés et testés par une large communauté d’utilisateurs.

Programmer des mathématiques avec Julia

Echappé des laboratoires du MIT il y a une quinzaine d’années à peine, le langage Julia a rencontré une rapide popularité, grâce à un petit côté « couteau suisse » et quelques traits déterminants :

  • Une syntaxe à haute productivité qui ne déroutera pas les adeptes des langages de script bien établis, comme Python et R ou encore Matlab.
  • Une compilation à la volée, source de performances d’exécution inatteignables avec les langages ci-dessus, presque au niveau de C/C++ ou Fortran.
  • Une distribution open source et un écosystème de packages, dans le même esprit que ceux de R.

Dans cette introduction au format très condensé, Olivier Garet adopte le cheminement d’un mathématicien enthousiaste, séduit par la possibilité de s’affranchir du « problème des deux langages ». C’est ainsi que les praticiens du calcul scientifique désignent couramment le fait d’expérimenter et prototyper rapidement leurs idées avec un langage de script et de devoir passer ensuite à un langage de plus bas niveau pour une mise en œuvre opérante en situation réelle. Typiquement pour passer à l’échelle sur des problèmes de grande taille.

Au-delà de l’aide à la prise en main et de l’exposé des éléments génériques du langage, l’attrait de la présentation réside dans le choix d’illustrations mathématiques souvent peu triviales, précédées d’un exposé concis des notions utiles à la compréhension. Certains exemples associent des techniques issues de plusieurs domaines, comme les probabilités et la théorie analytique des nombres [1]. Des branches variées des mathématiques sont donc abordées, de l’algèbre à l’analyse en passant par la combinatoire et les probabilités : corps quadratiques et application à un calcul de probabilité [2], modèle proie-prédateur de Lotka-Volterra, polynôme chromatique d’un graphe, théorème de dénombrement de Pólya, systèmes de particules en interaction et percolation, calcul symbolique. Au fil des pages on rencontre quelques petits « défis mathématiques » qui conduiront parfois au plaisir de renouer avec de vieilles connaissances (comme l’algorithme de rejet en simulation de Monte-Carlo) à l’aide de nouveaux outils d’expérimentation. D’utiles renvois vers des sites thématiques d’utilisation avancée sont également suggérés, notamment sur les équations différentielles (ordinaires, aux dérivées partielles, stochastiques, etc.), ainsi que sur les structures algébriques et l’arithmétique.

Une version numérique librement accessible est disponible sur le site de l’auteur, où figurent aussi les codes des exemples du livre.

 

Mots-clés : Programmation objet – Calcul scientifique – R – Julia

 

Nicolas BARADEL (2012) est ingénieur de recherche à l’Ecole polytechnique. Il a travaillé auparavant au Group Risk Management d’AXA et a soutenu une thèse en mathématiques appliquées à l’Université Paris-Dauphine. Il est également le co-fondateur de la société PGM Solutions (conception et commercialisation du logiciel RPGM pour R).

Olivier GARET est professeur à l’Université de Lorraine, directeur du département de mathématiques de la faculté des sciences. Après des études à l’ENS Cachan, l’agrégation et un doctorat de mathématiques, ses enseignements et travaux de recherches se sont principalement orientés dans le domaine probabiliste, notamment en mécanique statistique.

 

* « Langage R, application à la statistique, à l’actuariat et à la finance » de Nicolas Baradel, aux éditions Economica, collection « Economie et statistiques avancées »

** « Introduction à Julia – Programmer des mathématiques » d’Olivier Garet, disponible sur Amazon


[1] En particulier l’utilisation des lois zêta, à la fois liées à la célèbre fonction de Riemann du même nom et aux distributions de Pareto, dont elles forment une sorte d’équivalent discret. On peut aussi les voir comme un lot de consolation à l’inexistence d’une loi de probabilité uniforme sur l’ensemble des entiers naturels. Le sujet est approfondi par l’auteur dans l’article suivant (en libre accès sur son site) : Olivier GARET, les lois zêta pour l’arithmétique, Quadrature n°96 (2015).

[2] Dont l’énoncé a l’air au premier abord aussi innocent que la résolution est particulièrement coriace : On lance une pièce équilibrée jusqu’à ce que le nombre de piles soit égal au double du nombre de faces. Quelle est la probabilité qu’on ne s’arrête jamais ? De quoi ressusciter quelques souvenirs des jeunes années (Réponse : \frac{3\sqrt{5} - 5}{4} soit une probabilité d’environ 42,7%).

 

 

 

Olivier Thöni