Comparaison de R, Python, SAS, SPSS du point de vue des data scientists européens

nasa-53884-small.jpeg

Comme je l'ai mentionné dans l'article Third Wave-Democratization of AI, Machine Learning, Data Science, les données sont désormais disponibles partout dans le monde. Dans le monde de la science, les langages de programmation open source et les outils tels que R ou Python se sont généralisés.

En fait, nous interagissons souvent avec différents types de clients, en particulier dans la Silicon Valley, mais de nos jours, le coût énorme de l'utilisation d'outils d'analyse de données et de statistiques d'entreprise plus anciens tels que SAS ou SPSS dans nos entreprises. Il semble que la pression pour réviser augmente de jour en jour, et il semble qu'il soit fondamentalement impossible ou même assez difficile pour les nouveaux projets ou les personnes nouvellement embauchées d'obtenir l'approbation de ces dépenses. Donc, en fin de compte, tout ce que vous essayez de faire avec SAS ou SPSS peut être fait avec R ou Python, et avec l'accès à encore plus d'algorithmes de pointe, cette transition se produit. Il semble y avoir. C'est pourquoi pour une formation à ces langages de programmation, ou pour des outils comme notre Exploratory qui vous permettent d'accéder à diverses fonctionnalités de R sans programmation. La demande commence à augmenter.

Cependant, même ainsi, en réalité, s'il s'agit d'une ancienne entreprise ou d'une grande entreprise et que de tels coûts ne sont pas encore visibles et problématiques, de nombreuses personnes paient encore beaucoup d'argent pour utiliser SAS ou SPSS. Est aussi une réalité. Aujourd'hui, le data scientist Jeroem Kromme, consultant pour l'analyse de données en Europe, partage l'expérience de son équipe. Sur cette base, nous comparerons les principaux outils liés à la science des données tels que R, Python, SAS, SPSS d'une manière facile à comprendre, et donnerons des conseils sur l'introduction de tels outils cette personne. 2017/03/18 / python-r-vs-spss-sas /) Je voudrais vous présenter ce qui a été traduit en japonais avec le consentement de la personne elle-même. Je vais.

<Traduction d'ici>

SAS, SPSS, R et Python sont les projets les plus couramment utilisés liés à l'analyse des données clients, mais SAS et SPSS sont probablement les plus utilisés. Cependant, les clients sont de plus en plus intéressés par les langages de programmation open source R et Python. Récemment, certains de nos clients sont également passés de SAS, SPSS à R ou Python. De plus, même si vous n'avez pas encore migré, des logiciels commerciaux récents (y compris SAS et SPSS) ont pu utiliser R et Python de l'intérieur, donc en réalité c'est déjà R et J'utilise Python.

SAS a été développé à l'origine à la North Carolina State University dans le but principal d'analyser des données agricoles numériques. L'acronyme de SAS vient du Statistical Analysis System. Sur la base de la demande de tels logiciels à l'époque, SAS a été fondée en tant qu'entreprise en 1976.

Le progiciel statistique pour les sciences sociales, ou SPSS, a été initialement développé pour l'analyse des sciences sociales, mais en même temps, il était également le premier langage de programmation statistique pour PC au monde. Le développement a commencé à l'Université de Stanford, mais huit ans plus tard, la société a été fondée sous le nom de SPSS et a été acquise par IBM en 2009.

Le langage R a été développé à l'origine à l'Université d'Auckland, en Nouvelle-Zélande, dans le but principal d'analyser à l'aide de modèles statistiques, et la première version a été publiée en open source en 2000.

Comparé aux autres outils que j'ai vus jusqu'à présent, le langage Python est le seul projet qui n'a pas commencé à l'université. Python a été créé à l'origine par un Hollandais préféré de Monty Python (nommé d'après cela). Il cherchait un projet à faire pendant Noël un an et a créé un nouveau langage de développement appelé Python basé sur un langage de programmation appelé ABC. ABC a également été créé par lui pour enseigner la programmation à des non-programmeurs. Python, avec C ++ et Java, est un langage de programmation polyvalent. Cependant, il est extrêmement plus facile à apprendre que de telles langues. Depuis, de nombreux programmeurs ont développé de nombreux modules, et récemment avec des outils pour diverses analyses statistiques, c'est un niveau qui convient aujourd'hui pour être répertorié avec les outils statistiques mentionnés ci-dessus. Il est devenu.

Dans cet article, j'aimerais comparer ces quatre langages en termes de méthode, de technologie, de facilité d'apprentissage, de visualisation, de système de support et de coût. Cette fois, la comparaison se concentre sur le langage de programmation, de sorte que les interfaces utilisateur telles que SAS Enterprise Miner ou SPSS Modeler sont exclues de cette liste de comparaison.

Méthodes et techniques statistiques

En premier lieu, lors de l'analyse des données, il va et vient entre ** analyse pour explication ** et ** analyse pour prédiction **. La méthode d'analyse à utiliser dépend de vos objectifs à l'époque. Prenez, par exemple, un client qui quitte ou annule. Vous demandez peut-être d'abord pourquoi vos clients partent, ou vous demandez peut-être quels clients partent. L'objectif principal de la première question est de ** expliquer ** pourquoi le client part. La deuxième question est de ** prédire ** quels clients partiront. Ce sont des types de questions fondamentalement différents, et ces différences affecteront la méthode d'analyse que vous utiliserez ensuite. Cette prédiction est plus communément appelée exploration de données ou apprentissage automatique.

SAS et SPSS proviennent de ** l'analyse des données pour l'explication **, en partie parce que la perspective du test d'hypothèse a été développée à l'origine dans un cadre académique important. Par conséquent, le nombre d'algorithmes tels que l'apprentissage automatique et l'IA est extrêmement inférieur à celui de R et Python. Bien sûr, les deux outils sont récemment sortis avec des packages adaptés à la création de modèles prédictifs tels que SAS Enterprise Miner ou SPSS Modeler, mais ce sont des outils complètement différents du corps principal et nécessitent une licence différente. Je vais.

Il y a de nombreuses raisons pour lesquelles les logiciels open source sont excellents, mais il est particulièrement intéressant de noter qu'il est constamment amélioré par sa communauté et que des fonctionnalités sont ajoutées de plus en plus. R a été créé à l'origine dans l'espoir que le plus grand nombre possible de personnes dans le monde utiliseraient les algorithmes qu'ils ont créés pour les universitaires et les chercheurs tels que les universités. Pour cette raison, on peut dire que R est puissant dans ** l'analyse explicative ** et ** l'analyse prédictive ** en ce qui concerne les types et les nombres d'algorithmes.

D'autre part, Python a été développé à l'origine avec un accent sur la création d'applications d'entreprise plutôt que d'un point de vue académique / de recherche ou statistique, il est donc particulièrement puissant lorsque vous souhaitez l'utiliser directement dans une application. .. Pour cette raison, on peut dire que la prédiction de sa fonction statistique présente un aspect important. Python est souvent utilisé dans les applications d'apprentissage automatique où les analystes de données n'interviennent pas. Par conséquent, Python est également puissant lors du traitement et de l'analyse d'images et de vidéos. Par exemple, nous avons utilisé Python pour construire notre propre voiture radiocommandée autonome l'été dernier. Je l'ai fait. De plus, Python est probablement le langage le plus simple à utiliser lors de l'utilisation de frameworks Big Data comme Spark.

Facile à apprendre

SAS et SPSS ont une interface utilisateur complète, de sorte que les utilisateurs n'ont pas à programmer tout le temps. De plus, SPSS dispose d'une fonction Coller qui vous permet de générer du code en fonction des étapes effectuées. SAS a quelque chose appelé Proc SQL, qui peut être relativement facile pour les personnes qui connaissent SQL. Cependant, les deux outils utilisent une syntaxe complètement différente et sont complètement différents de ceux de tout autre langage de programmation, donc si vous rencontrez une situation où vous devez en apprendre un. Je suis désolé pour ça.

Il existe d'anciennes solutions basées sur l'interface utilisateur telles que Rattle in R, mais elles ne sont pas du tout comparables à SAS et SPSS. R est un langage facile à apprendre pour les programmeurs, mais la réalité est que la plupart des analystes de données n'ont aucune expérience en programmation. Donc pour ces personnes, R sera une langue difficile à apprendre. Cependant, une fois que vous avez les bases, cela devient relativement facile par la suite. Dans cet esprit, nous allons vous présenter Cours pédagogique où vous pourrez découvrir la programmation en langage R à partir de maintenant. Conçu pour ceux qui veulent l'être.

Comme je l'ai mentionné plus tôt, Python est basé sur le langage ABC, qui a été créé à l'origine pour enseigner la programmation aux non-programmeurs, de sorte que le script écrit est facile à lire. On peut dire que c'est la langue la plus facile à apprendre. Python est un langage de programmation courant, il n'y a donc pas d'interface utilisateur.

En résumé, c'est peut-être le langage le plus facile à démarrer dans la mesure où SAS / SPSS peut être analysé sans programmation en termes de début d'apprentissage.

soutien

SAS et SPSS sont des logiciels commerciaux, il existe donc un support formel. Cela peut également être une raison pour certaines entreprises de choisir ces outils. Parce qu'il y a un sentiment de sécurité que vous pouvez obtenir de l'aide si vous rencontrez des problèmes.

D'un autre côté, je pense que le grand public est conscient que le support des outils open source ne peut pas être très attendu. Mais la réalité ne l'est pas. Bien sûr, ces outils open source peuvent ne pas être directement pris en charge par leurs créateurs, mais en réalité, une communauté beaucoup plus large se forme spontanément à la fois en R et en Python. La plupart du temps, de nombreuses personnes sont prêtes à aider. Par exemple, quelqu'un a déjà signalé un problème ou une question auquel vous serez confronté avec une chance de 99% ou plus, et quelqu'un y a déjà répondu, par exemple, sur Stack Overflow (site technique de questions et réponses). C'est quelque chose qui est. De plus, certaines entreprises proposent déjà des services de support R et Python. Donc, ironiquement, il n'y a pas de support formel pour R ou Python, mais si vous avez réellement une question, vous pouvez trouver la réponse beaucoup plus rapidement que SAS ou SPSS.

Visualisation de données

En ce qui concerne la visualisation des données, bien qu'il existe SAS et SPSS, elle est extrêmement importante sur le plan fonctionnel. Vous pouvez faire de petits changements, mais c'est toujours assez ennuyeux voire impossible à personnaliser. À cet égard, vous pouvez personnaliser beaucoup plus avec R et Python. Il existe ggplot2 en tant qu'outil de visualisation largement utilisé dans le monde R, mais fondamentalement, tout peut être ajusté, et il est également possible de créer des applications interactives à l'aide d'un outil appelé shiny.

R et Python apprennent constamment l'un de l'autre, et l'un des meilleurs exemples est que même Python offre aujourd'hui l'équivalent de ce ggplot. Un autre module couramment utilisé pour visualiser des données en Python est Matplotlib.

Coût

R et Python sont tous deux open source, donc tout le monde peut les utiliser gratuitement. Bien sûr, à la baisse, comme mentionné ci-dessus, il peut être plus difficile à apprendre que quelque chose avec une interface utilisateur comme SAS ou SPSS. En conséquence, les analystes de données qui maîtrisent R et Python sont payés beaucoup plus cher que ceux qui ne le sont pas. Et le coût de l'éducation de ceux qui ne possèdent pas actuellement cette compétence n'est pas négligeable. Donc, en réalité, être open source ne signifie pas qu'il est totalement gratuit, mais même si vous le déduisez, il est toujours comparé à des outils comme SAS et SPSS qui nécessitent toujours des frais de licence extrêmement élevés. R et Python sont toujours de loin les moins chers.

Mon choix

“Software is like sex, it’s better when it’s free” 
— Linus Torvalds (creator Linux)

Le logiciel est comme le sexe, et c'est mieux quand il est gratuit.
-Linas Tobals (créateur de Linux)

En passant, les outils que j'utilise souvent pour analyser les données sont R ou Python, et j'espère qu'ils pourront être utilisés à tout moment, n'importe où, sans avoir à acheter une licence ou à s'embêter avec de telles choses. La principale raison d'utiliser R ou Python en dehors des licences est qu'il dispose d'un large éventail de méthodes statistiques. Après tout, vous pouvez choisir et utiliser n'importe quel type d'algorithme qui convient le mieux à l'analyse de données que vous effectuez à ce moment-là.

Lorsqu'on lui a demandé s'il fallait utiliser R ou Python, cela dépend du but ultime du moment. Comme je l'ai dit plus tôt, Python est un langage créé en mettant l'accent sur la création d'applications dans un langage de programmation polyvalent, il est donc fort en apprentissage automatique et en IA. Par conséquent, Python est utilisé lors de la création d'applications qui reconnaissent les visages et les objets et effectuent un apprentissage en profondeur. D'autre part, lorsqu'une analyse est nécessaire pour expliquer, comme comprendre les modèles de comportement des clients afin de comprendre pourquoi il ne s'agit pas seulement de prédire quel client annulera, etc. Est utilisé.

Cela dit, les deux langages de programmation sont complémentaires l'un de l'autre. Par exemple, il existe un outil (reticulate, rPython) pour exécuter du code Python depuis R et inversement un outil (rpy2) pour exécuter du code R depuis Python. Donc, si vous pouvez mélanger et assortir les deux langues, c'est une solution encore plus puissante.


Traduction jusqu'à ici

Alors, j'ai essayé de tout traduire en même temps, mais comment était-ce?

Je pense que les points suivants méritent d'être soulignés.

C'est juste (juste) car ce n'est pas une comparaison qui sent le vendeur qui vend le produit, ce que l'on trouve souvent dans les articles qui font de telles comparaisons, mais une comparaison du point de vue d'une personne qui a effectivement effectué une analyse de données sur le terrain pendant de nombreuses années. ), C'est un article particulièrement utile pour ceux qui ne sont pas sûrs du choix de ces outils ou qui s'intéressent à d'autres outils que ceux qu'ils utilisent actuellement, car ils sont résumés de manière facile à comprendre en affinant davantage les points. Je peux dire ça.

Formation Boot Camp sur la science des données

Enfin, j'aimerais améliorer mon entreprise avec ces outils ou algorithmes de science des données open source de pointe tels que R et Python, mais je peux commencer par le mur de la programmation. Pour ceux qui ne l'ont pas fait, nous organiserons une ** formation Bootcamp ** à Tokyo le mois prochain et en juin pour vous permettre de faire de la science des données sans programmation.

Si vous êtes intéressé, veuillez consulter cette page pour plus de détails.

By Kan (Twitter)

Recommended Posts

Comparaison de R, Python, SAS, SPSS du point de vue des data scientists européens
Points Python du point de vue d'un programmeur en langage C
Comprendre l'état de la perte de données - Python vs R
Existence du point de vue de Python
Porté du langage R de "Sazae-san's Janken Data Analysis" vers Python
Notes d'apprentissage depuis le début de Python 1
Notes d'apprentissage depuis le début de Python 2
[Introduction au Data Scientist] Bases de Python ♬
Réécrivez le nœud de création de champ de SPSS Modeler avec Python. Extraction de caractéristiques à partir de données de capteurs de séries temporelles
Récupérer le contenu de git diff depuis python
L'histoire de la lecture des données HSPICE en Python
Transition du baseball vue à partir des données
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Apprenez Nim avec Python (dès le début de l'année).
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Processus de compétition Kaggle du point de vue de la transition des scores
Étude depuis le début de Python Hour1: Hello World
Récupérer le code retour d'un script Python depuis bat
Ne pas être conscient du contenu des données en python
Utilisons les données ouvertes de "Mamebus" en Python
Étude de Python Hour8: Utilisation de packages
[Bases de la science des données] Collecte de données depuis RSS avec python
le zen de Python
Essayez de gratter les données COVID-19 Tokyo avec Python
Différent du type d'importation de python. Signification de depuis A import B
[Python] Extrayez des données texte à partir de données XML de 10 Go ou plus.
L'histoire du rubyiste aux prises avec Python :: Dict data with pycall
[Homologie] Comptez le nombre de trous dans les données avec Python
L'histoire de la copie de données de S3 vers TeamDrive de Google
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
Réécrivez le nœud d'ajout d'enregistrement de SPSS Modeler avec Python.
Comparaison de la gestion des trames de données en Python (pandas), R, Pig
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
Transmettez les données OpenCV de la bibliothèque C ++ d'origine à Python
Vers la retraite de Python2
À propos des fonctionnalités de Python
Le pouvoir des pandas: Python
Livres et sources recommandés de programmation d'analyse de données (Python ou R)
Acquisition automatique des données de niveau d'expression génique par python et R
Etudier le web scraping dans le but d'extraire des données de Filmarks # 2
Comment éviter la duplication des données lors de la saisie de Python vers SQLite.
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Réécrire le nœud d'échantillonnage de SPSS Modeler avec Python (2): échantillonnage en couches, échantillonnage en grappes
Extraction d'éléments conditionnels à partir du bloc de données: R est% en%, Python est .isin ()
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Unité importante vue à partir du matériel de conférence Python de l'Université de Kyoto
[Introduction to Data Scientists] Bases de Python ♬ Branchements conditionnels et boucles
Liste des dépêches en cas de catastrophe du service d'incendie de la ville de Sapporo [Python]
[Introduction aux Data Scientists] Bases de Python ♬ Fonctions et fonctions anonymes, etc.