Les actuaires explorent de plus en plus les profondeurs de la science des données et de l’apprentissage automatique, où les logiciels de source ouverte sont largement utilisés. Deux des langages de programmation de source ouverte les plus populaires auprès des actuaires sont R et Python. Les deux offrent à l’utilisateur un nombre considérable de fonctions qui lui permettent d’effectuer le type d’analyse de données dont les actuaires ont besoin, notamment la manipulation des données, la visualisation des données et le calcul des modèles statistiques.
De nombreux professionnels du domaine de la science des données débattent déjà de la confrontation entre R et Python. Les discussions pourraient ne pas être aussi longues que celles qui concernent l’usage des retraits par rapport aux espaces, mais R c. Python fait encore l’objet de nombreux articles fondés sur des opinions et des faits. Il est également raisonnable de supposer que le débat se poursuivra si la popularité de ces deux langages de programmation est maintenue.
Le présent article vise trois objectifs principaux :
- Fournir au lecteur des ressources utiles lorsque les faits ont été présentés et que la question a déjà été débattue;
- Ajouter l’opinion d’un actuaire à la documentation existante;
- Présenter un argument selon lequel, à long terme, l’interopérabilité devrait être au cœur des organisations.
Articles existants
(Veuillez noter que tous les hyperliens mènent à des documents en anglais seulement.)
Si vous prévoyez faire vos propres recherches sur R contre Python, assurez‑vous que votre source est crédible et que l’article a été rédigé au cours des dernières années (plus il est récent, mieux c’est). Comme ces deux langages évoluent rapidement, il est essentiel que la source soit récente et crédible.
- Datacamp fournit une infographie facile à lire et visuellement attrayante. Il commence par cerner quatre questions clés auxquelles il faut répondre, et il reconnaît qu’il n’y a pas de réponse universelle pour R contre Python.
- L’article d’IBM fait ressortir un point fondamental qui est essentiel et précis : [traduction] « De plus en plus, la question n’est pas de savoir quel langage choisir, mais comment utiliser le mieux possible les deux langages de programmation pour vos besoins spécifiques. »
L’une des failles (et ceci est vrai pour de nombreux articles portant sur la confrontation entre R et Python) porte sur la supposition que R n’est utilisé que par des non‑programmeurs :
« R est un outil statistique utilisé par des universitaires, des ingénieurs et des scientifiques ne possédant aucune compétence en programmation. Python est un langage prêt pour la production qui est utilisé pour une vaste gamme de tâches industrielles, de recherche et de génie. »
Dans les faits, R et Python sont faciles à apprendre et ont toujours eu la cote auprès de collectivités diverses.
- RStudio ajoute des nuances intéressantes au débat R contre Python, exprimant une opinion semblable à celle d’IBM : [traduction] « les deux langages sont précieux et ils sont là pour de bon ».
Le scientifique des données en chef de RStudio, et sans doute l’un des programmeurs de R les plus en vue, Hadley Wickham, affirme : [traduction] « Utilisez le langage qui vous rend heureux. » Une entreprise dont la principale source de revenus a initialement été la livraison de produits logiciels commerciaux qui appuyaient des équipes utilisant leur interface utilisateur graphique R s’est fait un devoir de souligner son appui à Python et à d’autres logiciels de la science des données de source ouverte.
L’opinion d’un actuaire
J’ai passé ma juste part de temps à utiliser Python, mais j’ai une préférence personnelle pour R jumelé à l’interface graphique RStudio. Avec R, j’ai effectué des tâches générales de gestion et de manipulation des données, de visualisation des données, de modélisation prédictive, de tarification, de constitution de réserves et de modélisation du capital qui, à ma connaissance, peuvent toutes être rédigées à l’aide de Python. Ce sont mes cours universitaires et les préférences de mon équipe et de mes clients qui m’ont orienté vers R comme principal outil d’analyse des données actuarielles. Je n’ai toutefois pas été guidé par une différence importante entre R et Python au chapitre de la fonctionnalité ou de la performance.
De nombreux articles ou billets de blogue qui nourrissent le débat entre R et Python accordent trop d’importance à la comparaison des caractéristiques. Cela ne tient pas compte du fait que, dans la plupart des cas, les deux langages de programmation peuvent faire tout ce dont un actuaire a besoin. Le débat ne devrait pas déboucher sur une réponse évidente et, à mon avis, il n’est pas nécessaire qu’il ait lieu.
L’avenir passe par l’interopérabilité
Les organisations auraient avantage à reconnaître que les équipes d’actuaires pourraient ne pas vouloir se limiter à une seule option. Cela est plus important que de choisir le « meilleur » logiciel. Dans ce contexte, l’interopérabilité1 signifie qu’une équipe d’actuaires dispose de nombreuses options logicielles sans perdre d’efficience lorsqu’il s’agit d’utiliser ou d’échanger des données, des codes et des modèles.
L’avantage évident d’une organisation qui accorde la priorité à l’interopérabilité est la souplesse. L’augmentation du nombre d’options de langage de programmation entraînera une hausse des fonctions destinées à un public plus vaste. Un autre effet secondaire intéressant est la « diversité cognitive ». Il n’est pas prouvé qu’une organisation qui mise sur l’interopérabilité est plus diversifiée sur le plan cognitif; toutefois, il est raisonnable de supposer que si deux utilisateurs abordent le problème à partir de deux langages de programmation différents, ils envisageront probablement le problème de façons différentes. Il a été démontré que la diversité cognitive offre de nombreux avantages, mobilise les employés (surtout ceux des jeunes générations), favorise la résolution de problèmes et élimine la « pensée de groupe ».
L’inconvénient de l’intégration de l’interopérabilité dans une organisation, c’est l’intégration. La transition n’est pas toujours facile. Elle nécessite un travail initial et l’adhésion de tous les membres de l’équipe. Un logiciel peut faciliter ce travail :
- RStudio et Jupyter Notebook permettent aux utilisateurs d’écrire un code en R et en Python.
- Feather (V2) est un format de fichier portable servant à stocker des bases de données en R et en Python.
- reticulate est un ensemble R qui permet à l’utilisateur d’exécuter un code Python, et rpy2 est un ensemble Python qui permet à l’utilisateur d’exécuter un code en R.
Conclusion
Dans la plupart des dossiers en actuariat, les différences au chapitre des caractéristiques entre R et Python sont négligeables. Toutefois, la majorité des actuaires ont une préférence entre les deux langages de programmation, ce qui est acceptable. Ils pourraient donc préférer une autre option, comme Julia, un langage de programmation ouvert qui gagne en popularité en raison de sa rapidité de traitement et de sa communauté de soutien croissante.
En fin de compte, les organisations devraient s’adapter et bâtir un environnement diversifié sur le plan cognitif grâce à l’interopérabilité. Des travaux devront être exécutés pour parvenir à cette fin, mais ils se traduiront par d’importants avantages à long terme.
Autres références
- Coursera
- Panel | Debunking the R vs. Python Myth | RStudio (2020)
- reticulate R package
- rpy2 Python package
- Interoperable data storage using Feather V2
1 J’utilise le terme interopérabilité à partir d’une vision étroite de l’utilisation actuarielle de logiciels de source ouverte. Le présent article fournit une explication plus détaillée de l’idée générale de l’interopérabilité logicielle : https://www.formstack.com/resources/blog-software-interoperability