Le langage R est-il fiable pour le domaine de l'économie?

64

Je suis un étudiant diplômé en sciences économiques récemment converti à R d’autres logiciels de statistiques très connus (j’utilisais principalement SPSS). Mon petit problème pour le moment est que je suis le seul utilisateur R de ma classe. Mes camarades de classe utilisent Stata et Gauss et un de mes professeurs a même dit que R était parfait pour l’ingénierie, mais pas pour l’économie. Il a dit que beaucoup de paquets sont construits par des personnes qui en savent beaucoup sur la programmation, mais pas beaucoup sur l'économie et qui ne sont donc pas fiables. Il a également mentionné le fait que, puisque l’argent n’est pas impliqué dans la construction d’un paquet R, il n’ya donc aucune incitation à le faire correctement (contrairement à Stata par exemple) et qu’il a utilisé R pendant un certain temps et a obtenu des résultats "ridicules". ses tentatives d'estimer certaines choses. En outre, il s'est plaint du générateur de nombres aléatoires dans R qu'il a qualifié de "

J'utilise R depuis un peu plus d'un mois et je dois dire que j'en suis tombé amoureux. Tout ce que mon professeur me dit ne fait que me décourager.

Ma question est donc la suivante: "R est-il fiable pour le domaine de l’économie?".

SauvéParJESUS
la source
30
"beaucoup de paquets sont construits par des gens qui en savent beaucoup sur la programmation, mais pas beaucoup sur l'économie". Les auteurs de paquet sont pratiquement toujours des scientifiques ou des universitaires et les programmeurs une seconde (très) lointaine (dernière). En fait, je pense que ce serait un défi de trouver un paquetage écrit par un "programmeur".
Brandon Bertelsen
9
Puis-je vous inviter, vous et nos autres économistes des statistiques, également à economics.stackexchange.com - nous répondrons à vos questions et à vos réponses sur les questions économiques ici
EnergyNumbers le
18
Il semble qu'il y ait aussi un peu de chauvinisme professionnel dans les commentaires de votre professeur. Comment un économiste est-il un gage de fiabilité? J'avais plutôt confiance dans les développeurs de logiciels (c'est en fait un métier, ce que personne ne peut faire sans une expérience ou une formation particulière) et des statisticiens pour produire des logiciels statistiques fiables.
Gala
23
"Parfait pour l'ingénierie mais pas pour l'économie" pour des raisons de fiabilité? Il préférerait un gratte-ciel effondré qu'une économie? Cet homme est un idiot. Quittez cette école et trouvez-en une qui ne soit pas dotée d'idiots.
Spacedman
10
Un logiciel commercial peut être bon ou mauvais. Les logiciels open source peuvent être bons ou mauvais. Ce qui compte, c'est de savoir si le logiciel que vous utilisez est bon. Ne décidez pas cela en fonction des préjugés et du dogme. Utilisez des preuves réelles.
David Heffernan

Réponses:

83

Permettez-moi de partager un point de vue contrasté. Je suis un économiste. J'ai été formé en économétrie à l'aide de SAS. Je travaille dans les services financiers et ce soir j'ai mis à jour des modèles basés sur R que nous utiliserons demain pour mettre des millions de dollars en péril.

Votre professeur a tout simplement tort. Mais l'erreur qu'il commet est TRÈS commune et mérite d'être discutée. Ce que votre professeur semble faire, c'est de brouiller les idées du logiciel R (implémentation GNU du langage S) par rapport aux packages (ou autre code) implémentés dans R. Je peux écrire des implémentations complexes d'une régression linéaire à l'aide de SAS IML. En fait, j'ai fait la même chose. Est-ce que cela signifie que SAS est de la merde? Bien sûr que non. SAS est un merdique parce que leurs prix sont non transparents, ridiculement chers, et que leurs consultants internes sur promettent, sous-livrent et facturent une prime pour le plaisir. Mais je m'égare ...

L'ouverture de R est une épée à double tranchant: L'ouverture permet à tout Tom, Dick ou Harry d'écrire une implémentation de n'importe quel algorithme imaginé en fumant de la marijuana dans le sous-sol du bâtiment économique. La même ouverture permet aux économistes praticiens de partager le code ouvertement et d'améliorer le code de chacun. Les règles de licence avec R signifient que je peux écrire du code de parallélisation pour exécuter R en parallèle sur le cloud d'Amazon sans avoir à me soucier des frais de licence pour un cluster de 30 nœuds. C'est une victoire énorme pour l'analyse basée sur la simulation, ce qui est une grande partie de ce que je fais.

Le commentaire de votre professeur selon lequel "beaucoup de paquets sont construits par des gens qui en savent beaucoup sur la programmation, mais pas beaucoup sur l'économie" est sans doute correct. Mais il y a 3716 paquets sur CRAN. Vous pouvez être sûr que beaucoup d'entre eux n'ont pas été écrits par des économistes. De la même manière, vous pouvez être sûr que bon nombre des 105 089 modules de CPAN n’ont pas été écrits par des économistes.

Choisissez votre logiciel avec soin. Assurez-vous de comprendre et d’avoir testé les outils que vous utilisez. Assurez-vous également de bien comprendre la véritable économie derrière la mise en œuvre de votre choix. S'enfermer dans une solution logicielle fermée coûte plus cher que les droits de licence.

JD Long
la source
Merci pour votre réponse. Alors, suggérez-vous que j'essaie d'apprendre autre chose? Que suggéreriez-vous alors que j'apprenne?
SavedByJESUS
5
Non, j'utilise R presque complètement. Y a-t-il des formules que votre professeur ou d'autres économistes utilisent beaucoup? Je n'utilise aucun paquet spécifique à econ. J'utilise plyr, matrix et de nombreux autres packages, mais aucun n'est conçu uniquement pour les économistes.
JD Long
Vous parliez donc de "packages" et vous avez dit que je ne devrais pas être enfermé dans une solution logicielle fermée?
SavedByJESUS
3
"L’ouverture permet à tout Tom, Dick ou Harry d’écrire une implémentation de n'importe quel algorithme" - cela n’a rien à voir avec l’ouverture, c’est purement le résultat de la présence d’une API publique, dont de nombreux produits à sources fermées (c’est-à-dire toute logiciel qui a une interface de plugin). Bonne réponse cependant.
naught101
3
"Il n’existe pas, ni n’a jamais eu et il n’y aura jamais de langage de programmation dans lequel il est le moins difficile d’écrire un code incorrect."
Ardave
33

Ce n'est pas plus ou moins fiable que les autres logiciels. R de base et recommandé est probablement moins sujet aux erreurs que les packages contribués, mais cela dépend des auteurs.

Mais le plus gros avantage de R est que vous pouvez vérifier vous-même si c'est le cas! C'est un logiciel libre, pas comme Stata, SPSS ou similaire. Par conséquent, même s'il n'était pas fiable, il serait détecté éventuellement. Ce n'est peut-être pas le cas pour les logiciels propriétaires. Et vous pouvez même aider à le rendre plus fiable.

Pour le reste des commentaires de votre professeur, il a clairement tort et est une personne qui diffuse du FUD. Mais permettez-moi de dire que les logiciels non fiables devraient être la moindre des préoccupations de l'économiste, à en juger par les modèles et les hypothèses utilisés et les prédictions établies dans ce domaine.

Tenez-vous-en à R si vous l'aimez et peut-être que vous et le professeur pourrez même contribuer à développer de bons logiciels pour l'économie. Voici un point de départ éventuellement intéressant http://cran.r-project.org/web/views/Econometrics.html et http://cran.r-project.org/web/views/TimeSeries.html

Momo
la source
1
Merci beaucoup! Je veux vraiment rester avec R. Je pense que c'est un excellent logiciel. De plus, j'ai toujours été un grand fan de l'open source.
SavedByJESUS
17
+1 pour avoir énoncé une triste vérité sur notre époque. "Les logiciels non fiables devraient être la moindre des préoccupations de l'économiste, à en juger par les modèles et les hypothèses utilisés et les prévisions établies dans ce domaine."
digitalmaps
2
J'apprécie le ton tordu ici, mais un certain désaccord est possible. Les erreurs dans les logiciels propriétaires peuvent être signalées de différentes manières, par exemple en cas de désaccord clair avec les résultats de R qui semblent tout à fait corrects. Il existe un certain FUD ici concernant les logiciels propriétaires qui est tout aussi inapproprié qu'un stupide FUD sur R. La vérifiabilité dans R est la vérifiabilité en principe pour pratiquement tous les utilisateurs de R; c'est une fonctionnalité qu'elle existe, mais dire que vous pouvez vérifier le code vous-même est un peu rhétorique aussi. Notez que pour Stata, une grande partie du code est visible pour les utilisateurs. c'est juste l'exécutable qui ne l'est pas.
Nick Cox
23

Votre professeur fait des déclarations audacieuses. Je soupçonne que le problème n'était pas familier avec le langage R, pas avec les résultats réels produits. Je travaille dans une entreprise qui fait beaucoup de modélisation économétrique et nous faisons tout en R. J'ai également converti mon collègue économiste en R.

En ce qui concerne l’économie dans mon expérience personnelle, le problème de la fiabilité peut aller dans le sens inverse. Par exemple, la version 5 d'EVIEWS présentait des bugs étranges lors de l'utilisation de données de panneau. Et il a rapporté les statistiques habituelles de Durbin-Watson pour les MLS en pool, ce qui dans le réglage des données du panneau est tout simplement faux. Le paquet R pour travailler avec des données de panel a aussi ses problèmes, mais l'argument de l'argent joue ici fortement en faveur de R.

Récemment, je suivais des cours sur les méthodes de série chronologique de panels non stationnaires. Le conférencier a utilisé le logiciel RATS. Lors de la démonstration du code, il a conseillé de cliquer sur une icône qui nettoie l’espace de travail plusieurs fois, au cas où. Parlez de la fiabilité.

mpiktas
la source
20

Je suis économiste et je travaille dans la recherche depuis 4 ans, principalement en économétrie appliquée. Il existe de nombreux progiciels économétriques et de la place pour chacun d'entre eux. À mon avis, en économie, Stata est utilisé pour presque tout, sauf les séries chronologiques, Rats, Eviews et Ox pour les séries chronologiques, Matlab et Gauss pour davantage de programmation bas niveau.

L'avantage de R est qu'il est capable de faire presque tout ce que font les autres programmes, et il est gratuit et ouvert. Cela nécessite plus de programmation et moins de procédures prédéfinies, mais cela permet de faire avancer les choses à la fin. J'utilise Stata la plupart du temps, mais si je devais choisir un logiciel pour tout faire, je choisirais R.

R est assez fiable sur la plupart des problèmes d’économétrie, mais je peux donner des exemples de routines écrites pour R qui ne sont pas fiables. J'ai eu des problèmes avec 3SLS et les routines d'estimation du système de la demande. Les routines d'optimisation numériques ne sont pas aussi robustes que dans Stata ou Gauss. D'autre part, R est bien meilleur pour des problèmes tels que la régression quantile. Néanmoins, avec une bonne connaissance pratique de R, vous pouvez savoir quel est le problème dans les routines écrites par l'utilisateur de R, le résoudre et continuer à travailler. Je ne pense donc pas que le manque de fiabilité de certaines routines soit une raison impérieuse de ne pas utiliser R du tout.

Mon conseil serait de continuer à utiliser R, mais d’avoir de l’expérience dans d’autres programmes largement utilisés dans votre domaine, par exemple Stata pour la microéconométrie ou Rats pour les séries chronologiques.

Jorpppp
la source
13

Quand j’enseignais les statistiques de deuxième cycle, je disais à mes étudiants: "Je me moque du paquet que vous utilisez, et vous pouvez utiliser n’importe quoi pour vos devoirs, car je m'attends à ce que vous fournissiez des explications de fond, et vous enlèverez des points si je voir tr23y5mnoms de variables dans vos soumissions. Je peux très bien soutenir votre apprentissage à Stata et raisonnablement bien à R. Avec SAS, vous êtes seul, car vous affirmez avoir suivi un cours. Avec SPSS ou Minitab, Dieu vous bénisse ". J'imagine que les employeurs raisonnables penseraient la même chose. Ce qui compte, c’est votre productivité en termes de résultats du projet. Si vous pouvez atteindre l’objectif de R avec 40 heures de travail, tant mieux. vous pouvez y arriver en C ++ en 40 heures de travail, c'est bien; si vous savez comment faire cela en R en 40 heures, mais que votre superviseur vous demande de le faire en SAS, vous devez passer 60 heures pour apprendre les bases. et là où vont les points-virgules, cela ne peut être que sage dans le contexte de la grande image du reste du code en SAS ... et ensuite le responsable n’a pas été très sage d’avoir embauché un programmeur R.

Dans cette perspective du coût total, "gratuit" R est un mythe extrêmement démesuré. Tout projet sérieux nécessite un code personnalisé, ne serait-ce que pour la saisie de données et le formatage de la sortie, ce qui représente un coût non nul en temps professionnel. Si cette entrée de données et ce formatage nécessitent 10 heures de code SAS et 20 heures de code R, R est un logiciel plus coûteux à la marge , comme le dirait un économiste, c'est-à-dire en termes de coût supplémentaire pour la production d'une fonctionnalité donnée. . Si un grand projet nécessite 200 heures de temps de programmeur R et 100 heures de temps de programmeur Stata pour fournir une fonctionnalité identique, Stata est globalement moins cher., même en tenant compte de la licence de 1 000 USD que vous devez acheter. Il serait intéressant de voir de telles comparaisons directes; J'ai été impliqué dans la réécriture d'un énorme désordre de 2 Mo de code SPSS qui aurait été accumulé pendant environ 10 années-personnes en environ 150 000 code Stata qui a fonctionné à peu près aussi vite, peut-être un peu plus vite; c'était environ un projet d'une année-personne. Je ne sais pas si ce rapport d'efficacité de 10: 1 est typique des comparaisons SPSS: Stata, mais je ne serais pas surpris s'il en était ainsi. Pour moi, travailler avec R est toujours une grosse dépense à cause des coûts de recherche: je dois déterminer lequel des cinq paquets avec des noms similaires fait ce que je dois faire, et jauger s'il est suffisamment fiable pour que je puisse l'utiliser mon travail. Cela signifie souvent qu'il est moins coûteux pour moi d'écrire mon propre code Stata en moins de temps que je passerais à trouver comment faire fonctionner R dans une tâche donnée. Il faut comprendre que ceci est mon idiosyncrasie personnelle; la plupart des gens sur ce site sont de meilleurs utilisateurs que moi.

C'est drôle que votre prof préfère Stata ou GAUSS à R parce que "R n'a pas été écrit par des économistes". Stata et GAUSS non plus. ils sont écrits par des informaticiens utilisant des outils informatiques. Si votre prof a des idées sur la programmation de CodeAcademy.com, c'est mieux que rien, mais le développement de logiciels de niveau professionnel est aussi différent de taper dans la zone de texte de CodeAcademy.com que conduire un camion de fret est différent du vélo. (Stata a été lancé par un économiste du travail reconverti en informaticien, mais il ne fait plus cette activité d'économétrie du travail depuis environ 25 ans maintenant.)

Mise à jour : Comme AndyW l'a commenté ci-dessous, vous pouvez écrire du code déplorable dans n'importe quelle langue. La question du coût devient alors, quelle langue est plus facile à déboguer. Pour moi, cela ressemble à une combinaison de précision et d’information du résultat, et de simplicité et de transparence de la syntaxe, et je n’ai bien sûr pas de bonne réponse à cela. Par exemple, Python applique l'indentation du code, ce qui est une bonne idée. Stata et le code R peuvent être repliés entre les crochets, et cela ne fonctionnera pas avec SAS. L'utilisation de sous-routines est une arme à double tranchant: l'utilisation de s *apply()ad-hoc functiondans R est évidemment très efficace, mais plus difficile à déboguer. De la même manière, Stata localpeut masquer presque tout, et le fait de choisir une chaîne vide, même s’il est utile, peut également entraîner des erreurs difficiles à détecter.

StasK
la source
1
C'est une bonne réponse, mais les généralisations excessives de l'OMI ne sont pas très utiles (vous pouvez écrire du code mauvais ou bon dans pratiquement toutes les langues, Stata n'est pas magique pour imposer de bonnes normes de codage). J'ai du mal à comprendre à quel point 2 mb de code SPSS est un code SPSS efficace pour commencer (avec les versions plus récentes avec une syntaxe en surbrillance, il serait mal avisé d'ouvrir même un tel fichier dans l'éditeur). Il semble y avoir une bonne chance que ce soit du temps passé à réécrire dans n'importe quelle langue.
Andy W
1
Je n’écris pas du tout le code SPSS, et j’ai bien compris que le code avec lequel je travaillais n’était pas non plus écrit sous forme de code, mais plutôt enregistré à partir de l’interface pointer-cliquer, et pouvait ensuite être légèrement modifié. J'imagine que SPSS mettrait toutes les valeurs par défaut, notamment avec la conversion d'interface en code, de sorte que ce n'était pas un code terriblement efficace pour commencer.
StasK
12

Je ferais très attention à quiconque prétend un fait mais ne le confirme jamais avec quelque chose de substantiel.

Vous pouvez facilement inverser ses arguments.

Par exemple, les personnes payées pour écrire du code pourraient être MOINS motivées à le faire correctement, car on s'attend à ce que leur code soit correct, alors que le résidant du sous-sol veut s'engager de manière à impressionner les responsables du projet. Peut-être ne se souciait-il pas de combien de temps supplémentaire il passait à le faire gratuitement si cela signifiait un travail de qualité.

Si le générateur de nombres aléatoires est «désordonné» (ce qui est un terme vague; remplacer facilement un fait réel pour étayer son argument), il devrait alors être en mesure de le prouver ou de vous montrer quelqu'un qui peut le faire.

S'il obtient des résultats incohérents d'un paquet, il devrait pouvoir indiquer les étapes qu'il a suivies pour obtenir ce résultat. Si c'est vraiment un bug et que vous avez de bonnes compétences en programmation, vous pouvez même essayer de le réparer pour lui!

Je réalise que ma réponse ne répond pas directement à votre question (désolé). Simplement à la façon dont il formule ses points, vous pouvez voir qu’il n’ya pas de viande derrière. Si tel est le cas, n'hésitez pas à le modifier dans votre question pour que les personnes ici présentes puissent en discuter plus à fond!

gparent
la source
5

Dans le ReplicationWiki (sur lequel je travaille), vous pouvez voir que R était l'un des progiciels utilisés le plus souvent pour quelques 2000 études empiriques publiées dans des revues bien établies dès les années 2000-2013. Il semble que cela ait été plus utilisé ces dernières années. Stata a été utilisé le plus souvent (> 900 fois), suivi de MATLAB (280), SAS (60), GAUSS (60), Excel (50), R (30), FORTRAN (30), Mathematica (19), EViews (18), z-Tree (16), dynare (15), RATS (12), C (8), C ++ (6), python (5, études plus récentes), SPSS (5) et quelques autres. Souvent, plus d'un paquet est utilisé.

Jan Höffler
la source
Ceci est une preuve intéressante sur l'utilisation du logiciel. Mais cela ne concerne pas directement la question si ce n’est en fournissant des indications claires que R est largement utilisé (l’inférence selon laquelle on fait aussi largement confiance à lui est fondamentale).
Nick Cox
2

J'utilise R depuis une demi-décennie et j'utilise aussi SAS, SPSS, Calc, WEKA et quelques autres outils. Je n'ai jamais autant aimé un outil que ce que j'ai utilisé avec R. En gros, R est destiné à ceux qui pensent de manière indépendante et essaient quelque chose par eux-mêmes. Quand il s’agit de statistiques, il s’agit de méthodes. Les utilisateurs peuvent ne pas savoir comment les méthodes ont été définies et modélisées dans un logiciel commercial, et elles peuvent être correctes ou incorrectes. R est pour ceux qui voudraient définir des méthodes et utiliser les méthodes qui conviennent à leurs besoins. Tout est question de liberté. Cette liberté n’existe pas avec les logiciels commerciaux malgré les dépenses et l’achat d’argent. Le savoir est la propriété de la communauté (société), personne ne peut prétendre en être l'auteur. La recherche consiste à trouver des solutions aux problèmes. En ce qui concerne R, il n’est pas nécessaire de s’inquiéter des méthodes que les utilisateurs sont libres de définir et de réorganiser. Par exemple, s’il existe un problème spécifique au modèle ou des méthodes définies de manière erratique qui peuvent être corrigés en corrigeant ou en développant un nouveau code. Ce faisant, un chercheur développe non seulement des connaissances mais évolue également.

L'avantage de R est qu'il n'est pas nécessaire d'être un programmeur. Les méthodes statistiques consistent à écrire des fonctions uniquement avec des instructions de contrôle et des boucles (pour commencer, les choses de niveau supérieur viennent plus tard). R a un environnement de programmation très facile pour les débutants.

M Kamakshaiah
la source