{"id":8333,"date":"2024-10-17T07:22:23","date_gmt":"2024-10-17T05:22:23","guid":{"rendered":"https:\/\/variances.eu\/?p=8333"},"modified":"2024-10-17T07:22:23","modified_gmt":"2024-10-17T05:22:23","slug":"notes-de-lecture-langage-r-de-nicolas-baradel-et-introduction-a-julia-dolivier-garet","status":"publish","type":"post","link":"https:\/\/variances.eu\/?p=8333","title":{"rendered":"Notes de lecture : \u00ab Langage R \u00bb* de Nicolas Baradel et \u00ab Introduction \u00e0 Julia  \u00bb** d&rsquo;Olivier Garet"},"content":{"rendered":"<p>Pour quiconque en est rest\u00e9 au Fortran et \u00e0 SAS\u00ae &#8211; et tout aussi digne d\u2019int\u00e9r\u00eat pour les plus jeunes &#8211; voici d\u2019agr\u00e9ables occasions de d\u00e9couvrir la programmation orient\u00e9e objet avec deux publications au volume contenu (240 et 136 pages), que le lecteur curieux mais press\u00e9 verra d\u2019un bon \u0153il. Les deux livres ont en commun un point de vue largement guid\u00e9 par la pratique des math\u00e9matiques dans un spectre d\u2019applications assez large, n\u00e9anmoins nettement orient\u00e9 vers la mod\u00e9lisation et la simulation de l\u2019al\u00e9atoire.<\/p>\n<h3><strong>Statistique, actuariat et finance avec R<\/strong><\/h3>\n<p>L\u2019ouvrage de Nicolas Baradel consacr\u00e9 au langage R, un des outils les plus populaires au sein de la communaut\u00e9 des sciences des donn\u00e9es, ne vise pas \u00e0 pr\u00e9senter de fa\u00e7on exhaustive toutes les fonctionnalit\u00e9s et possibilit\u00e9s du langage. Ce serait d\u2019ailleurs assez vain pour un livre au format papier, compte tenu de toutes les ressources disponibles et actualis\u00e9es en ligne sur le sujet. L\u2019objectif est davantage de mettre l\u2019accent sur les concepts fondamentaux du langage et d\u2019illustrer le traitement de probl\u00e8mes d\u2019estimation et de simulation en statistique, actuariat et finance.<\/p>\n<p>Dans cette optique, la pr\u00e9sentation est organis\u00e9e autour de deux parties \u00e0 peu pr\u00e8s \u00e9gales. L\u2019apprentissage du langage est d\u00e9velopp\u00e9 dans un premier temps, sans privil\u00e9gier un type particulier d\u2019applications ni supposer de pr\u00e9requis sp\u00e9cifiques en informatique. Pour commencer, cette premi\u00e8re partie aborde donc logiquement les notions de base\u00a0: l\u2019installation (R est un logiciel libre), les types, objets et fonctions. Une attention particuli\u00e8re est ensuite port\u00e9e \u00e0 l\u2019efficacit\u00e9 de la programmation, notamment en termes de temps de calcul et de gestion de la m\u00e9moire. La simulation de variables al\u00e9atoires, qui pr\u00e9figure la suite de l\u2019ouvrage, et les repr\u00e9sentations graphiques font l\u2019objet de chapitres d\u00e9di\u00e9s. D\u00e8s les premiers chapitres et tout au long de la premi\u00e8re partie, des exercices corrig\u00e9s accompagnent les expos\u00e9s. La plupart traitent de questions de math\u00e9matiques g\u00e9n\u00e9rales\u00a0; les amateurs appr\u00e9cieront en particulier la g\u00e9n\u00e9ration d\u2019une repr\u00e9sentation de l\u2019ensemble fractal de Mandelbrot.<\/p>\n<p>La seconde partie du livre est consacr\u00e9e au traitement de cas pratiques\u00a0avec R, relevant pour l\u2019essentiel de besoins g\u00e9n\u00e9riques d\u2019estimation et de simulation de mod\u00e8les \u00e9conom\u00e9triques et de s\u00e9ries temporelles. Pour faciliter une lecture autonome, l\u2019auteur prend utilement soin de rappeler au passage nombre de d\u00e9finitions et de r\u00e9sultats fondamentaux de statistique math\u00e9matique et de finance quantitative (avec le support de la bibliographie). Diff\u00e9rents outils fondamentaux de mod\u00e9lisation viennent ensuite illustrer et mesurer la puissance du langage dans leur mise en \u0153uvre num\u00e9rique. Sont en particulier abondamment trait\u00e9s\u00a0: les processus de diffusion, les \u00e9quations diff\u00e9rentielles stochastiques, la mod\u00e9lisation multivari\u00e9e par copules. Le dernier chapitre se distingue par la pr\u00e9sentation d\u2019une probl\u00e9matique m\u00e9tier plus sp\u00e9cifique\u00a0: le calcul des provisions pour sinistres inconnus en assurance (ou IBNR pour <em>Incurred But Not Reported<\/em>). Cet exemple est une bonne illustration de la cr\u00e9ation rapide d\u2019un code efficace avec l\u2019appui d\u2019une biblioth\u00e8que (<em>package)<\/em> disponible sur le sujet. Comme la plupart des langages modernes, R a vocation \u00e0 \u00eatre utilis\u00e9 avec des biblioth\u00e8ques de programmes qui vont compl\u00e9ter les possibilit\u00e9s offertes par le code de base. Un de ses points forts est pr\u00e9cis\u00e9ment la disponibilit\u00e9 de nombreux algorithmes avanc\u00e9s de statistique et science des donn\u00e9es, d\u00e9velopp\u00e9s et test\u00e9s par une large communaut\u00e9 d\u2019utilisateurs.<\/p>\n<h3><strong>Programmer des math\u00e9matiques avec Julia<\/strong><\/h3>\n<p>Echapp\u00e9 des laboratoires du MIT il y a une quinzaine d\u2019ann\u00e9es \u00e0 peine, le langage Julia a rencontr\u00e9 une rapide popularit\u00e9, gr\u00e2ce \u00e0 un petit c\u00f4t\u00e9 \u00ab\u00a0couteau suisse\u00a0\u00bb et quelques traits d\u00e9terminants\u00a0:<\/p>\n<ul>\n<li>Une syntaxe \u00e0 haute productivit\u00e9 qui ne d\u00e9routera pas les adeptes des langages de script bien \u00e9tablis, comme Python et R ou encore Matlab.<\/li>\n<li>Une compilation \u00e0 la vol\u00e9e, source de performances d\u2019ex\u00e9cution inatteignables avec les langages ci-dessus, presque au niveau de C\/C++ ou Fortran.<\/li>\n<li>Une distribution <em>open source<\/em> et un \u00e9cosyst\u00e8me de <em>packages<\/em>, dans le m\u00eame esprit que ceux de R.<\/li>\n<\/ul>\n<p>Dans cette introduction au format tr\u00e8s condens\u00e9, Olivier Garet adopte le cheminement d\u2019un math\u00e9maticien enthousiaste, s\u00e9duit par la possibilit\u00e9 de s\u2019affranchir du \u00ab\u00a0probl\u00e8me des deux langages\u00a0\u00bb. C\u2019est ainsi que les praticiens du calcul scientifique d\u00e9signent couramment le fait d\u2019exp\u00e9rimenter et prototyper rapidement leurs id\u00e9es avec un langage de script et de devoir passer ensuite \u00e0 un langage de plus bas niveau pour une mise en \u0153uvre op\u00e9rante en situation r\u00e9elle. Typiquement pour passer \u00e0 l\u2019\u00e9chelle sur des probl\u00e8mes de grande taille.<\/p>\n<p>Au-del\u00e0 de l\u2019aide \u00e0 la prise en main et de l\u2019expos\u00e9 des \u00e9l\u00e9ments g\u00e9n\u00e9riques du langage, l\u2019attrait de la pr\u00e9sentation r\u00e9side dans le choix d\u2019illustrations math\u00e9matiques souvent peu triviales, pr\u00e9c\u00e9d\u00e9es d\u2019un expos\u00e9 concis des notions utiles \u00e0 la compr\u00e9hension. Certains exemples associent des techniques issues de plusieurs domaines, comme les probabilit\u00e9s et la th\u00e9orie analytique des nombres [1]. Des branches vari\u00e9es des math\u00e9matiques sont donc abord\u00e9es,\u00a0de l\u2019alg\u00e8bre \u00e0 l\u2019analyse en passant par la combinatoire et les probabilit\u00e9s\u00a0: corps quadratiques et application \u00e0 un calcul de probabilit\u00e9 [2], mod\u00e8le proie-pr\u00e9dateur de Lotka-Volterra, polyn\u00f4me chromatique d\u2019un graphe, th\u00e9or\u00e8me de d\u00e9nombrement de P\u00f3lya, syst\u00e8mes de particules en interaction et percolation, calcul symbolique. Au fil des pages on rencontre quelques petits \u00ab\u00a0d\u00e9fis math\u00e9matiques\u00a0\u00bb qui conduiront parfois au plaisir de renouer avec de vieilles connaissances (comme l\u2019algorithme de rejet en simulation de Monte-Carlo) \u00e0 l\u2019aide de nouveaux outils d\u2019exp\u00e9rimentation. D\u2019utiles renvois vers des sites th\u00e9matiques d\u2019utilisation avanc\u00e9e sont \u00e9galement sugg\u00e9r\u00e9s, notamment sur les \u00e9quations diff\u00e9rentielles (ordinaires, aux d\u00e9riv\u00e9es partielles, stochastiques, etc.), ainsi que sur les structures alg\u00e9briques et l\u2019arithm\u00e9tique.<\/p>\n<p>Une version num\u00e9rique librement accessible est disponible sur le site de l\u2019auteur, o\u00f9 figurent aussi les codes des exemples du livre.<\/p>\n<p>&nbsp;<\/p>\n<p><em>Mots-cl\u00e9s : Programmation objet &#8211; Calcul scientifique &#8211; R &#8211; Julia<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Nicolas BARADEL (2012) est\u00a0ing\u00e9nieur de recherche \u00e0 l&rsquo;Ecole polytechnique. Il a travaill\u00e9 auparavant au Group Risk Management d&rsquo;AXA et a soutenu une th\u00e8se en math\u00e9matiques appliqu\u00e9es \u00e0 l&rsquo;Universit\u00e9 Paris-Dauphine. Il est \u00e9galement le co-fondateur de la soci\u00e9t\u00e9 PGM Solutions (conception et commercialisation du logiciel RPGM pour R).<\/p>\n<p>Olivier GARET est professeur \u00e0 l\u2019Universit\u00e9 de Lorraine, directeur du d\u00e9partement de math\u00e9matiques de la facult\u00e9 des sciences. Apr\u00e8s des \u00e9tudes \u00e0 l\u2019ENS Cachan, l\u2019agr\u00e9gation et un doctorat de math\u00e9matiques, ses enseignements et travaux de recherches se sont principalement orient\u00e9s dans le domaine probabiliste, notamment en m\u00e9canique statistique.<\/p>\n<p>&nbsp;<\/p>\n<p>* \u00ab <em>Langage R, application \u00e0 la statistique, \u00e0 l\u2019actuariat et \u00e0 la finance<\/em> \u00bb de Nicolas Baradel, <span style=\"text-decoration: underline;\"><span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"https:\/\/www.economica.fr\/livre-langage-r-baradel-nicolas-c2x32211261\">aux \u00e9ditions Economica, collection \u00ab Economie et statistiques avanc\u00e9es \u00bb<\/a><\/span><\/span><\/p>\n<p>** \u00ab <em>Introduction \u00e0 Julia &#8211; Programmer des math\u00e9matiques<\/em> \u00bb d&rsquo;Olivier Garet, disponible sur <span style=\"text-decoration: underline;\"><span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"https:\/\/www.amazon.fr\/Introduction-%C3%A0-Julia-Programmer-math%C3%A9matiques\/dp\/295595831X\">Amazon<\/a><\/span><\/span><\/p>\n<hr \/>\n<p>[1] En particulier l\u2019utilisation des lois z\u00eata, \u00e0 la fois li\u00e9es \u00e0 la c\u00e9l\u00e8bre fonction de Riemann du m\u00eame nom et aux distributions de Pareto, dont elles forment une sorte d\u2019\u00e9quivalent discret. On peut aussi les voir comme un lot de consolation \u00e0 l\u2019inexistence d\u2019une loi de probabilit\u00e9 uniforme sur l\u2019ensemble des entiers naturels. Le sujet est approfondi par l\u2019auteur dans l\u2019article suivant (en libre acc\u00e8s sur son site)\u00a0: Olivier GARET, les lois z\u00eata pour l\u2019arithm\u00e9tique, <em>Quadrature n\u00b096<\/em> (2015).<\/p>\n<p>[2] Dont l\u2019\u00e9nonc\u00e9 a l\u2019air au premier abord aussi innocent que la r\u00e9solution est particuli\u00e8rement coriace\u00a0: <em>On lance une pi\u00e8ce \u00e9quilibr\u00e9e jusqu&rsquo;\u00e0 ce que le nombre de piles soit \u00e9gal au double du nombre de faces. Quelle est la probabilit\u00e9 qu&rsquo;on ne s&rsquo;arr\u00eate jamais ? <\/em>De quoi ressusciter quelques souvenirs des jeunes ann\u00e9es (R\u00e9ponse : <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/variances.eu\/wp-content\/ql-cache\/quicklatex.com-aeef41feb3a9a39343c76d93e85f2f02_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#102;&#114;&#97;&#99;&#123;&#51;&#92;&#115;&#113;&#114;&#116;&#123;&#53;&#125;&#32;&#45;&#32;&#53;&#125;&#123;&#52;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"26\" width=\"46\" style=\"vertical-align: -6px;\"\/> soit une probabilit\u00e9 d\u2019environ 42,7%).<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour quiconque en est rest\u00e9 au Fortran et \u00e0 SAS\u00ae &#8211; et tout aussi digne d\u2019int\u00e9r\u00eat pour les plus jeunes &#8211; voici d\u2019agr\u00e9ables occasions de d\u00e9couvrir la programmation orient\u00e9e objet avec deux publications au volume contenu (240 et 136 pages), que le lecteur curieux mais press\u00e9 verra d\u2019un bon \u0153il. Les deux livres ont en [&hellip;]<\/p>\n","protected":false},"author":401,"featured_media":8334,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[15],"tags":[],"class_list":["post-8333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-science","et-has-post-format-content","et_post_format-et-post-format-standard"],"_links":{"self":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts\/8333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/users\/401"}],"replies":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8333"}],"version-history":[{"count":9,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts\/8333\/revisions"}],"predecessor-version":[{"id":8343,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts\/8333\/revisions\/8343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/media\/8334"}],"wp:attachment":[{"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}