Ist die R-Sprache für das Gebiet der Ökonomie zuverlässig?


64

Ich bin ein Doktorand der Wirtschaftswissenschaften, der kürzlich von anderen sehr bekannten statistischen Paketen auf R umgestellt hat (ich habe hauptsächlich SPSS verwendet). Mein kleines Problem im Moment ist, dass ich der einzige R-User in meiner Klasse bin. Meine Klassenkameraden benutzen Stata und Gauss und einer meiner Professoren sagte sogar, dass R perfekt für Ingenieurwissenschaften ist, aber nicht für Wirtschaftswissenschaften. Er sagte, dass viele Pakete von Leuten erstellt werden, die viel über Programmierung wissen, aber nicht viel über Wirtschaftlichkeit und daher nicht zuverlässig sind. Er erwähnte auch die Tatsache, dass kein Geld in die Erstellung eines R-Pakets involviert ist und es daher keinen Anreiz gibt, dies korrekt zu tun (anders als zum Beispiel in Stata) seine Versuche, ein paar Dinge abzuschätzen. Außerdem beklagte er sich über den Zufallsgenerator in R, der laut seiner Aussage "

Ich benutze R erst seit etwas mehr als einem Monat und muss sagen, dass ich mich in es verliebt habe. All das Zeug, das ich von meinem Professor höre, entmutigt mich nur.

Meine Frage lautet also: "Ist R zuverlässig für den Bereich der Wirtschaft?".


30
"Viele Pakete werden von Leuten erstellt, die viel über Programmierung wissen, aber nicht viel über Wirtschaftlichkeit". Paketautoren sind praktisch immer zuerst Wissenschaftler oder Akademiker und Programmierer eine (sehr) entfernte (letzte) Sekunde. Eigentlich halte ich es für eine Herausforderung, ein Paket zu finden, das von einem "Programmierer" verfasst wurde.
Brandon Bertelsen

9
Kann ich lade Sie und unsere andere Statistiken Ökonomen über economics.stackexchange.com auch - wir Ihre Fragen und Ihre Antworten auf Wirtschaft dort gern gesehen werden
EnergyNumbers

18
Es scheint, dass die Kommentare Ihres Professors auch ein wenig professionellen Chauvinismus enthalten. Wie ist es eine Garantie für Zuverlässigkeit, ein Ökonom zu sein? Ich hatte eher Vertrauen in Softwareentwickler (es ist eigentlich ein Beruf, den niemand ohne besondere Erfahrung oder Ausbildung gut kann) und Statistiker, um zuverlässige Statistiksoftware zu erstellen.
Gala

23
"Perfekt für das Engineering, aber nicht für die Wirtschaftlichkeit" wegen Zuverlässigkeit? Lieber ein zusammengebrochener Wolkenkratzer als eine Volkswirtschaft? Der Mann ist ein Idiot. Verlasse diese Schule und finde eine, die nicht von Idioten besetzt ist.
Spacedman

10
Kommerzielle Software kann gut oder schlecht sein. Open Source Software kann gut oder schlecht sein. Es kommt darauf an, ob die von Ihnen verwendete Software gut ist oder nicht. Entscheide das nicht aufgrund von Vorurteilen und Dogmen. Verwenden Sie echte Beweise.
David Heffernan

Antworten:


83

Lassen Sie mich einen kontrastierenden Standpunkt teilen. Ich bin ein Ökonom. Ich wurde in Ökonometrie mit SAS ausgebildet. Ich arbeite im Finanzdienstleistungssektor und habe heute Abend R-basierte Modelle aktualisiert, die wir morgen nutzen werden, um Millionen von Dollar in Gefahr zu bringen.

Ihr Professor ist einfach falsch. Aber der Fehler, den er macht, ist SEHR verbreitet und es lohnt sich, darüber zu diskutieren. Anscheinend vermischt Ihr Professor die Idee der R-Software (der GNU-Implementierung der S-Sprache) mit Paketen (oder anderem Code), die in R implementiert sind. Mit SAS IML kann ich Mistimplementierungen einer linearen Regression schreiben. In der Tat habe ich genau das getan. Heißt das, SAS ist Mist? Natürlich nicht. SAS ist Mist, weil ihre Preise undurchsichtig, lächerlich teuer und ihre internen Berater zu viel versprechend sind, zu wenig liefern und eine Prämie für das Vergnügen verlangen. Aber ich schweife ab...

Die Offenheit von R ist ein zweischneidiges Schwert: Offenheit ermöglicht es jedem Tom, Dick oder Harry, eine beschissene Implementierung eines Algorithmus zu schreiben, den sie sich ausgedacht haben, während sie im Keller des Wirtschaftsgebäudes Pott rauchten. Dieselbe Offenheit ermöglicht es praktizierenden Ökonomen, Code offen zu teilen und sich gegenseitig zu verbessern. Die Lizenzierungsregeln mit R bedeuten, dass ich Parallelisierungscode für die parallele Ausführung von R in der Amazon Cloud schreiben kann und mich nicht um Lizenzgebühren für einen 30-Knoten-Cluster kümmern muss. Dies ist ein RIESIGER Gewinn für simulationsbasierte Analysen, der einen großen Teil meiner Arbeit ausmacht.

Die Bemerkung Ihres Professors, dass "viele Pakete von Leuten erstellt werden, die viel über Programmierung wissen, aber nicht viel über Wirtschaft", ist zweifellos richtig. Aber es gibt 3716 Pakete auf CRAN. Sie können verdammt sicher sein, dass viele von ihnen nicht von Ökonomen geschrieben wurden. Genauso wie Sie sicher sein können, dass viele der 105.089 Module in CPAN nicht von Ökonomen geschrieben wurden.

Wählen Sie Ihre Software sorgfältig aus. Stellen Sie sicher, dass Sie die von Ihnen verwendeten Tools verstanden und getestet haben. Stellen Sie außerdem sicher, dass Sie die wahre Wirtschaftlichkeit der von Ihnen gewählten Implementierung verstehen. Sich auf eine geschlossene Softwarelösung einzulassen, ist teurer als nur die Lizenzgebühren.


Danke für Ihre Antwort. Schlagen Sie also vor, dass ich versuche, etwas anderes zu lernen? Was würden Sie mir dann vorschlagen, um zu lernen?
SavedByJESUS

5
Nein, ich benutze R fast vollständig. Gibt es Pakete, die Ihr Professor oder andere Ökonomen häufig verwenden? Ich verwende keine econ-spezifischen Pakete. Ich verwende plyr, matrix und viele andere Pakete, aber keines ist speziell für Ökonomen konzipiert.
JD Long

Also haben Sie sich auf "Pakete" bezogen und gesagt, dass ich mich nicht auf eine geschlossene Softwarelösung festlegen sollte?
SavedByJESUS

3
"Offenheit ermöglicht es Tom, Dick oder Harry, eine beschissene Implementierung eines Algorithmus zu schreiben" - dies hat nichts mit Offenheit zu tun, sondern ist lediglich das Ergebnis einer öffentlichen API, die viele Closed-Source-Produkte haben (dh proprietär) Software mit Plugin-Schnittstelle). Gute Antwort.
Naught101

3
"Es gibt weder jetzt noch jemals eine Programmiersprache, in der es am wenigsten schwierig ist, schlechten Code zu schreiben."
Ardave

33

Es ist nicht mehr oder weniger zuverlässig als andere Software. Base und Recommended R sind wahrscheinlich weniger fehleranfällig als Contributed Packages. Dies hängt jedoch von den Autoren ab.

Der größte Vorteil von R ist jedoch, dass Sie selbst überprüfen können, ob dies der Fall ist! Es ist freie Software, nicht wie Stata oder SPSS oder ähnliches. Selbst wenn es unzuverlässig wäre, würde es irgendwann entdeckt werden. Dies ist bei proprietärer Software möglicherweise nicht der Fall. Und Sie können sogar dazu beitragen, die Zuverlässigkeit zu verbessern.

Für den Rest der Kommentare Ihres Professors ist er eindeutig falsch und eine Person, die FUD verbreitet. Lassen Sie mich jedoch sagen, dass unzuverlässige Software die geringste Sorge des Ökonomen sein sollte, wenn man die in diesem Bereich verwendeten Modelle, Annahmen und Vorhersagen berücksichtigt.

Bleiben Sie bei R, wenn Sie es mögen, und vielleicht können Sie und der Professor sogar dazu beitragen, eine gute Software für die Wirtschaft zu entwickeln. Hier ist ein möglicherweise interessanter Ausgangspunkt: http://cran.r-project.org/web/views/Econometrics.html und http://cran.r-project.org/web/views/TimeSeries.html


1
Vielen Dank! Ich möchte wirklich bei R. bleiben. Ich denke, es ist eine großartige Software. Außerdem war ich schon immer ein großer Fan von Open Source.
SavedByJESUS

17
+1 für die Angabe einer unglücklichen Wahrheit unserer Zeit. "Unzuverlässige Software sollte die geringste Sorge des Ökonomen sein, wenn man die in diesem Bereich verwendeten Modelle, Annahmen und Vorhersagen berücksichtigt."
Digitalmaps

2
Ich schätze den schiefen Ton hier, aber einige Meinungsverschiedenheiten sind möglich. Fehler in proprietärer Software können auf verschiedene Arten angezeigt werden, z. B. wenn eindeutige Meinungsverschiedenheiten mit Ergebnissen in R bestehen, die völlig korrekt erscheinen. Es gibt hier einige FUD über proprietäre Software, die genauso unangemessen sind wie dumme FUD über R. Überprüfbarkeit in R ist im Prinzip Überprüfbarkeit für praktisch alle R-Benutzer; Es ist eine Funktion, die es gibt, aber zu sagen, dass Sie den Code selbst überprüfen können, ist auch ein wenig rhetorisch. Beachten Sie, dass für Stata ein Großteil des Codes für Benutzer sichtbar ist. es ist nur die ausführbare Datei, die nicht ist.
Nick Cox

23

Ihr Professor macht einige kühne Behauptungen. Ich vermute, dass das Problem nicht mit der R-Sprache vertraut war, sondern mit den tatsächlich erzielten Ergebnissen. Ich arbeite in einem Unternehmen, das viel ökonometrisches Modellieren betreibt, und wir tun alles in R. Ich habe auch meinen Ökonomen-Kollegen in die Verwendung von R konvertiert.

In Bezug auf das Gebiet der Wirtschaftswissenschaften könnte nach meiner persönlichen Erfahrung das Problem der Zuverlässigkeit in die entgegengesetzte Richtung gehen. Zum Beispiel hatte EVIEWS Version 5 einige seltsame Fehler beim Arbeiten mit Paneldaten. Und es wurde die übliche Durbin-Watson-Statistik für gepoolte OLS gemeldet, die in der Panel-Dateneinstellung eindeutig falsch ist. Das R-Paket für die Arbeit mit Paneldaten hat auch seine Probleme, aber das Geldargument spielt hier eine starke Rolle für R.

Kürzlich war ich in Kursen über nichtstationäre Panel-Zeitreihenmethoden. Der Dozent verwendete RATS-Software. Bei der Demonstration von Code riet er, auf ein Symbol zu klicken, das den Arbeitsbereich für alle Fälle mehrmals aufräumt. Sprechen Sie über Zuverlässigkeit.


20

Ich bin Ökonom und arbeite seit 4 Jahren in der Forschung, hauptsächlich in der angewandten Ökonometrie. Es gibt viele ökonometrische Pakete, und für alle ist Platz. Meiner Meinung nach wird Stata in der Wirtschaft für fast alles außer für Zeitreihen verwendet. Ratten, Eviews und Ochsen werden für Zeitreihen verwendet, Matlab und Gauss werden für die Programmierung auf niedrigerer Ebene verwendet.

Der Vorteil von R ist, dass es fast alles kann, was die anderen Programme tun, und es ist kostenlos und offen. Es erfordert etwas mehr Programmierung und hat weniger festgeschriebene Prozeduren, aber es erledigt die Dinge am Ende. Ich benutze die meiste Zeit Stata, aber wenn ich eine Software auswählen müsste, um alles zu erledigen, würde ich R wählen.

R ist bei den meisten ökonometrischen Problemen ziemlich zuverlässig, aber ich kann Beispiele für einige Routinen liefern, die für R geschrieben wurden und nicht zuverlässig sind. Ich hatte Probleme mit 3SLS- und Nachfragesystem-Schätzroutinen. Numerische Optimierungsroutinen sind nicht so robust wie in Stata oder Gauss. Andererseits ist R bei Problemen wie der Quantilregression viel besser. Mit guten R-Kenntnissen können Sie das Problem in den benutzerdefinierten Routinen von R herausfinden, beheben und weiterarbeiten. Ich glaube nicht, dass die mangelnde Zuverlässigkeit bei bestimmten Routinen ein zwingender Grund ist, R überhaupt nicht zu verwenden.

Mein Rat wäre, weiterhin R zu verwenden, aber Erfahrung mit anderen Programmen zu haben, die in Ihrem Bereich weit verbreitet sind, z. B. Stata für Mikroökonometrie oder Rats für Zeitreihen.


13

Als ich Absolventenstatistik unterrichtete, sagte ich meinen Schülern: "Es ist mir egal, welches Paket Sie verwenden, und Sie können alles für Ihre Hausaufgaben verwenden, da ich davon ausgehe, dass Sie fundierte Erklärungen liefern und Punkte entfernen, wenn ich sehen tr23y5mVariablennamen in Ihren Einsendungen. Ich kann Ihr Lernen in Stata sehr gut und in R ziemlich gut unterstützen. Mit SAS sind Sie auf sich allein gestellt, da Sie behaupten, einen Kurs darin belegt zu haben. Mit SPSS oder Minitab segne ich Sie. "Ich stelle mir vor, dass die vernünftigen Arbeitgeber dasselbe denken würden. Entscheidend ist Ihre Produktivität in Bezug auf die Projektergebnisse. Wenn Sie das Ziel in R mit 40 Stunden Arbeit erreichen können, gut, wenn Sie können es in C ++ in 40 Stunden erreichen, gut, wenn Sie wissen, wie man dies in R in 40 Stunden macht, aber Ihr Vorgesetzter möchte, dass Sie dies in SAS tun, und Sie müssen 60 Stunden damit verbringen, nur um einige Grundlagen zu erlernen und wo die Semikolons hingehen, das kann nur im Zusammenhang mit dem großen Bild des restlichen Codes in SAS klug sein ... und dann war der Manager nicht sehr klug darin, einen R-Programmierer engagiert zu haben.

Aus dieser Perspektive der Gesamtkosten ist "freies" R ein enorm überzähliger Mythos. Jedes ernsthafte Projekt erfordert benutzerdefinierten Code, allein für die Dateneingabe und die Formatierung der Ausgabe, und das ist ein Zeitaufwand ungleich Null. Wenn diese Dateneingabe und -formatierung 10 Stunden SAS-Code und 20 Stunden R-Code erfordert, ist R eine teurere Software am Rande , wie ein Ökonom sagen würde, dh im Hinblick auf die zusätzlichen Kosten, um ein bestimmtes Stück Funktionalität zu produzieren . Wenn für ein großes Projekt 200 Stunden R-Programmiererzeit und 100 Stunden Stata-Programmiererzeit erforderlich sind, um identische Funktionen bereitzustellen, ist Stata insgesamt günstiger, auch für die ~ $ 1K Lizenz, die Sie kaufen müssen. Es wäre interessant, solche direkten Vergleiche zu sehen; Ich war daran beteiligt, ein riesiges Durcheinander von 2 MB SPSS-Code umzuschreiben, das sich über einen Zeitraum von etwa 10 Personenjahren in etwa 150 KB Stata-Code angesammelt haben soll. das war ungefähr 1 Person-Jahr-Projekt. Ich weiß nicht, ob dieses Verhältnis von 10: 1 typisch für SPSS: Stata-Vergleiche ist, aber ich würde mich nicht wundern, wenn es so wäre. Für mich ist die Arbeit mit R aufgrund der Suchkosten immer ein großer Aufwand: Ich muss feststellen, welches der fünf Pakete mit ähnlichen Namen das tut, was ich tun muss, und abschätzen, ob es zuverlässig genug ist, damit ich es verwenden kann meine Arbeit. Es bedeutet oft, dass es für mich billiger ist, meinen eigenen Stata-Code in kürzerer Zeit zu schreiben, als ich dafür aufwenden würde, um herauszufinden, wie R in einer bestimmten Aufgabe funktioniert. Es versteht sich, dass dies meine persönliche Eigenart ist; Die meisten Leute auf dieser Site nutzen R besser als ich.

Komisch, dass Ihr Profi Stata oder GAUSS R vorziehen würde, weil "R nicht von Wirtschaftswissenschaftlern geschrieben wurde". Weder Stata noch GAUSS; Sie werden von Informatikern mit den Werkzeugen von Informatikern geschrieben. Wenn Ihr Profi von CodeAcademy.com Anregungen zum Programmieren bekommt, ist das besser als gar nichts. Die professionelle Softwareentwicklung unterscheidet sich jedoch ebenso vom Eingeben in das Textfeld von CodeAcademy.com wie das Fahren eines Lastwagens vom Radfahren. (Stata wurde von einem zu einem Arbeitsökonomen konvertierten Informatiker gegründet, aber er macht diese Sache der Arbeitsökonometrie seit etwa 25 Jahren nicht mehr.)

Update : Wie AndyW unten kommentierte, können Sie schrecklichen Code in jeder Sprache schreiben. Dann stellt sich die Frage nach den Kosten, welche Sprache leichter zu debuggen ist. Für mich ist das eine Kombination aus der Genauigkeit und Aussagekraft der Ausgabe und der Einfachheit und Transparenz der Syntax selbst, auf die ich natürlich keine gute Antwort habe. Zum Beispiel erzwingt Python das Einrücken von Code, was eine gute Idee ist. Stata- und R-Code können über die Klammern geklappt werden, was bei SAS nicht funktioniert. Die Verwendung von Unterprogrammen ist ein zweischneidiges Schwert: Die Verwendung von *apply()Ad-hoc-Funktionen functionin R ist offensichtlich sehr effizient, aber schwieriger zu debuggen. Aus einem ähnlichen Grund können Stata locals fast alles maskieren, und wenn standardmäßig eine leere Zeichenfolge verwendet wird, kann dies zwar nützlich sein, aber auch zu schwer zu fassenden Fehlern führen.


1
Dies ist eine gute Antwort, aber IMO-Überverallgemeinerungen sind nicht sehr hilfreich (Sie können schlechten oder guten Code in praktisch jeder Sprache schreiben, Stata ist nicht magisch, wenn es darum geht, gute Codierungsstandards durchzusetzen). Es fällt mir schwer zu erkennen, wie effizient 2 MB SPSS-Code sind. SPSS-Code ist zunächst effizient (bei neueren Versionen mit hervorgehobener Syntax ist es nicht ratsam, eine solche Datei im Editor zu öffnen.) Anscheinend besteht eine gute Chance, dass es Zeit war, in jeder Sprache gut umzuschreiben.
Andy W

1
Ich schreibe überhaupt keinen SPSS-Code, und ich verstehe, dass der Code, mit dem ich gearbeitet habe, auch nicht als Code geschrieben, sondern von der Point-and-Click-Oberfläche gespeichert und dann möglicherweise ein wenig aufgeräumt wurde. Ich würde mir vorstellen, dass SPSS alle Standardeinstellungen und dergleichen für die Konvertierung von Schnittstelle zu Code übernimmt, sodass dies zunächst kein besonders effizienter Code war.
StasK

12

Ich wäre sehr vorsichtig mit allen, die eine Tatsache behaupten, diese aber niemals mit etwas Wesentlichem untermauern.

Sie können seine Argumente leicht umdrehen.

Zum Beispiel könnten Leute, die dafür bezahlt werden, Code zu schreiben, WENIGER Anreize haben, ihn richtig zu machen, da erwartet wird, dass ihr Code korrekt ist, während der typische Kellerbewohner eine Verpflichtung eingehen möchte, die die Projektleiter beeindruckt. Vielleicht ist es ihm egal, wie viel zusätzliche Zeit er damit verbringt, es kostenlos zu machen, wenn es bedeutet, dass gute Arbeit geleistet wird.

Wenn der Zufallszahlengenerator "chaotisch" ist (was eine vage Bezeichnung ist; eine reale Tatsache kann leicht ersetzt werden, um seine Argumentation zu untermauern), sollte er dies beweisen oder Ihnen jemanden zeigen können, der dies kann.

Wenn er inkohärente Ergebnisse aus einem Paket erhält, sollte er in der Lage sein, auf die Schritte hinzuweisen, die er unternommen hat, um dieses Ergebnis zu erzielen. Wenn es wirklich ein Fehler ist und Sie gute Programmierkenntnisse haben, können Sie sogar versuchen, ihn zu beheben!

Mir ist klar, dass meine Antwort Ihre Frage nicht direkt beantwortet (sorry). Einfach aus der Art, wie er seine Punkte ausdrückt, kann man sehen, dass kein Fleisch dahinter steckt. Wenn dies der Fall ist, können Sie es in Ihrer Frage bearbeiten, damit die Leute hier weiter darüber diskutieren können!


5

Im ReplicationWiki (an dem ich arbeite) können Sie sehen, dass R eines der am häufigsten verwendeten Softwarepakete für etwa 2000 empirische Studien war, die bereits in den Jahren 2000-2013 in einigen etablierten Fachzeitschriften veröffentlicht wurden. Es scheint, dass es in den letzten Jahren mehr verwendet wurde. Stata wurde mit Abstand am häufigsten verwendet (> 900-mal), gefolgt von 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, neuere Studien), SPSS (5) und einige andere. Oft wird mehr als eine Packung verwendet.


Dies ist ein interessanter Beweis für die Nutzung von Software. Es hat jedoch keinen direkten Einfluss auf die Frage, außer dass es eindeutige Hinweise darauf gibt, dass R weit verbreitet ist (die Schlussfolgerung, dass es auch weit verbreitet ist, ist eindeutig).
Nick Cox

2

Ich benutze R seit einem halben Jahrzehnt und benutze auch SAS, SPSS, Calc, WEKA und einige andere Tools. Ich habe mit keinem Werkzeug so viel Spaß gehabt wie mit R. Grundsätzlich ist R für diejenigen gedacht, die selbständig denken und etwas ausprobieren, um es selbst zu lernen. In der Statistik dreht sich alles um Methoden. Benutzer wissen möglicherweise nicht, wie Methoden in kommerzieller Software definiert und modelliert wurden, und sie sind möglicherweise richtig oder falsch. R ist für diejenigen, die Methoden definieren und die für ihre Bedürfnisse geeigneten Methoden anwenden möchten. Es geht nur um Freiheit. Diese Freiheit gibt es bei kommerzieller Software nicht, obwohl man Geld ausgibt und diese kauft. Wissen ist das Eigentum der Gemeinschaft (Gesellschaft), auf das sich niemand berufen kann. In der Forschung geht es darum, Lösungen für Probleme zu finden. In Bezug auf R muss man sich nicht um Methoden kümmern, die der Benutzer frei definieren und überarbeiten kann. Zum Beispiel, wenn es ein modellspezifisches Problem oder fehlerhaft definierte Methoden gibt, die entweder durch Korrigieren oder Entwickeln eines neuen Codes behoben werden können. Auf diese Weise entwickelt ein Forscher nicht nur Wissen, sondern entwickelt sich auch weiter.

Der Vorteil von R ist, dass man kein Computerprogrammierer sein muss. Bei statistischen Methoden dreht sich alles darum, Funktionen nur mit Steueranweisungen und Schleifen zu schreiben (zu Beginn: Die Dinge auf höherer Ebene kommen später). R hat eine sehr einfache Programmierumgebung für Anfänger.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.