32 votes

Quels langages de programmation sont bons pour les statistiques ?

Je fais un peu plus d'analyse statistique sur certaines choses ces derniers temps, et je suis curieux de savoir s'il y a des langages de programmation qui sont particulièrement bons à cet effet. Je connais R mais je préférerais quelque chose d'un peu plus polyvalent (ou R est-il plutôt polyvalent ?).

Quelles sont vos suggestions ? Existe-t-il des langages dont la syntaxe et la sémantique sont particulièrement adaptées à cet objectif ? Ou y a-t-il des langages dont les bibliothèques sont exceptionnellement bonnes ?

52voto

Dirk Eddelbuettel Points 134700

Sans conteste R comme l'implémentation principale de S (et qui se trouve être un projet Open Source et GNU).

Non seulement comme la langue S conçue précisément dans ce but (voir les livres de John Chambers), mais la prise en charge plutôt riche des paquets spécifiques à un domaine chez CRAN est inégalée : plus de 2000 paquets avec un contrôle de qualité approprié, souvent rédigés par des experts dans le domaine.

L'ACM voit les choses de la même manière lorsqu'elle a donné à la Prix ACM Software Systems à John Chambers en 1998 avec le texte suivant citation

John M. Chambers

Pour le système S, qui a toujours changé la façon dont les gens analysent, visualisent, et manipulent les données.

Pour mémoire, les autres lauréats de ce prix sont TeX, Smalltalk, Postscript, RPC, "the web", Mosaic, Tcl/Tk, Java, Make, ... Ce n'est pas une mauvaise compagnie.

Maintenant, si vous voulez "seulement" collecter et résumer quelques données, n'importe quel langage procédural ou fonctionnel fera l'affaire. Mais si vous voulez quelque chose qui conçu pour la programmation avec des données puis R comme la principale implémentation S qu'elle est.

15voto

Shane Points 40885

Il ne fait aucun doute que R est le meilleur langage pour les statistiques, comme le dit Dirk. Je voudrais juste ajouter quelques points à cela :

Tout d'abord, je pense que la première raison pour laquelle vous devriez utiliser R est la communauté. Il est tellement utilisé par les experts du monde universitaire et de l'industrie à ce stade, qu'aucun autre langage n'arrive à rivaliser avec la richesse de CRAN.

Deuxièmement, il faut reconnaître que la langue R est un plaisir à travailler. Il s'agit de mon langage principal et, après avoir essayé d'autres langages, j'ai pas de l'intention de l'abandonner de sitôt. Mais il n'a pas non plus le monopole de sa force pour la programmation avec des données et cette affirmation peut être poussée trop loin. Tous les langages Lisp et fonctionnels sont forts en programmation de données. Lisp, après tout, est dérivé de la "programmation par listes", et c'est l'influence de Lisp sur R qui fait de ce langage ce qu'il est.

Certains membres de la communauté R (par exemple Ross Ihaka) considèrent actuellement Lisp comme le langage statistique du futur (voir l'article "back to the future" pour une référence) en raison de certains problèmes de conception profonds dans le langage R (par exemple, pas de multithreading).

Ainsi, bien que R soit sans aucun doute le meilleur langage pour le calcul statistique, je vois un intérêt à se familiariser avec un autre langage comme OCaml, Haskell ou (éventuellement) Clojure/Incanter.

10voto

Eduardo Leoni Points 4470

Jetez un coup d'œil à Incantateur sur la base de clojure . "Incanter est une plateforme basée sur Clojure, de type R, pour le calcul statistique et les graphiques." Clojure est un langage basé sur le lisp et implémenté au sommet de la JVM. Il a un accès facile aux bibliothèques Java. On ne peut pas faire plus généraliste que ça.

6voto

Sharpie Points 6291

D'après mon expérience, R est un langage exceptionnellement puissant dans ces domaines :

  1. Manipulation et transformation des données.

  2. Analyse statistique.

  3. Graphiques.

Mais R n'est en aucun cas un poney à trois cordes. J'ai également appliqué le langage à des tâches qui n'entraient pas entièrement dans les catégories susmentionnées. En voici quelques exemples :

  • Un script pour aider à la création de binaires universels OSX en identifiant et en faisant correspondre les bibliothèques statiques et dynamiques des différentes architectures, puis en faisant passer les groupes résultants par lipo .

  • scripts pour extraire des informations des pages web.

  • Un ensemble de scripts permettant de créer des images géoréférencées, de découper les images en tuiles à l'aide de GDAL forment un JSON qui décrit le résultat et télécharge le résultat sur un site web pour qu'il soit immédiatement affiché par les utilisateurs de l'UE. OpenLayers .

Ce que je préfère dans l'utilisation du R c'est la fréquence à laquelle j'ai l'occasion de dire :

WHOA ! Il y a un paquet qui fait CELA ? !

5voto

dalloliogm Points 2628

Vous pouvez consulter le programme sage qui est une réimplémentation de l'interpréteur python qui vous permet d'appeler différents langages de programmation pour les statistiques (R, matlab, octave, etc.) en utilisant une syntaxe python.

Un des problèmes majeurs lors de l'écriture de programmes pour faire des statistiques est que vous pouvez vous retrouver avec de nombreux petits scripts différents, chacun faisant une tâche séparée, et vous pouvez vous retrouver avec des dossiers désordonnés et une confusion dans vos résultats.

Donc, en dehors du choix d'un langage de programmation (je pense que d'autres personnes ont déjà répondu à votre question), vous avez également besoin d'une syntaxe pour définir des pipelines de scripts : vous pouvez le faire avec le programme 'gnu/make' (par exemple lire este ) ou avec ce sage ou il existe d'autres solutions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X