Ruby als Statistik-Workbench

13

Dies ist auch eine Frage, die sehr viel mit Python als Statistik-Workbench und mit Excel als Statistik-Workbench zu tun hat . Ich weiß, es gibt eine große Diskussion über Ruby gegen Python, aber das ist nicht der Punkt in dieser Frage. Ich dachte, dass Ruby, der schneller als Python ist und eine sehr natürliche Syntax hat, mir dabei helfen könnte, Statistiken zu verstehen, und auch eine gute Alternative zu R sein könnte (was auch von meinem Interesse ist und bei meiner anderen Frage zu R hier zitiert wurde). Beispielsweise beklagt sich der Kursleiter in einer der Google Tech-Vorlesungen, die ich gesehen habe (zitiert auf die hier verlinkte Frage, dass R beim Erstellen einer for-Schleife langsam ist). Mit Ruby gibt es auch Rails, also gibt es vielleicht die Möglichkeit, beides zusammenzubringen (Python hat Django, aber auch hier komme ich nicht rein).

Die Frage bleibt also die gleiche, aber für mein Interesse an Ruby:

  • Was können Sie empfehlen, wenn ich Ruby als "Statistik-Workbench" verwenden wollte, um R, SPSS, Python, Excel usw. zu ersetzen ?

  • Was würde ich aufgrund Ihrer Erfahrung gewinnen und verlieren?

Bitte beachten Sie, dass ich diese Frage basierend auf der vorherigen Python- und Excel-Frage erwäge. Wenn Sie der Meinung sind, dass die Verwendung von Ruby und Python (oder Excel) die gleichen Auswirkungen haben würde, sagen Sie dies bitte und verweisen Sie auf die Argumente einer früheren Frage. Mit dieser Frage sollen nicht die vorherigen Fragen für die gleichen Antworten repliziert werden. Ich glaube jedoch, dass es Unterschiede gibt (wie die Geschwindigkeit der Sprache und die Syntax), aber ich würde auch besonders gerne die Empfehlungen für Ruby kennen oder wenn es zum Beispiel viel weniger dafür gibt als zum Beispiel dafür Python oder Excel. Berücksichtigen Sie daher bitte die vorherigen Antworten für diese sehr ähnlichen Fragen, jedoch für eine andere Sprache / ein anderes Programm.

Bearbeiten: Um nur hervorzuheben, dass die Antworten in die andere Richtung zu gehen scheinen, habe ich nach einer Antwort gesucht, wie zum Beispiel der Antwort, die ich bei der Python-Frage gewählt habe, auf die ich verlinkt habe. Es geht nicht darum, gemeinsam mit Ruby Statistik zu lernen. Ich habe auf die Frage hingewiesen, Statistik mit R zu lernen . Wenn es möglich ist großartig, aber ich erwarte nicht, gleichzeitig mit Ruby Statistik zu lernen. Sie können für diese Frage einen statistischen Hintergrund annehmen.

Oeufcoque Penteano
quelle
danke fürs bearbeiten! Ich bemerke, dass mein Dank ausgelöscht wurde. Ist es eine schlechte Idee, sich bei den Fragen zu bedanken? (Ich möchte nur bestätigen, kein Problem auf meiner Seite - kommentiere ein wenig das Thema der Frage, aber ich wollte nicht nur dafür eine Frage auf Meta starten).
Oeufcoque Penteano
1
Die Meinungen gehen etwas auseinander. Ein kurzes "Danke" am Ende einer Frage ist üblich, aber mehr als das wird normalerweise als unnötige Ablenkung angesehen. Auf der Site-weiten Meta-Site finden Sie schnell Anleitungen, z. B. auf der SE-FAQ-Seite .
Whuber

Antworten:

9

Ich benutze Ruby + R.

Sie können den Artikel lesen: RinRuby: Zugriff auf den R-Interpreter über Pure Ruby

http://www.jstatsoft.org/v29/i04/paper

und dieses blog:

http://rubyforscientificresearch.blogspot.com

http://sciruby.com/

(Der Autor von sciruby ist auch ein R-User.)

Ouyang
quelle
Vielen Dank, Ihre Antwort richtet sich nach dem, wonach ich suche. Mir ist aufgefallen, dass die Referenzen aus den Jahren 2009 und 2011 stammen. Ich frage mich, ob es aktuellere Literatur zu diesem bestimmten Rubin gibt, der eine beträchtliche neue Sprache ist und ständig wächst. Trotzdem denke ich, dass dies ein guter Ausgangspunkt ist. Schön, dass der Blog Ruby für wissenschaftliche Forschung hält, was genau mein Fall ist.
Oeufcoque Penteano
Hallo, ich liebe Ruby und Rails. Ich liebe R auch. Sie können finden, dass Rubygems immer mehr zunehmen. rubygems.org/stats R auch. 2003, R cran ist 200, jetzt ist 3600+ !!! im Jahr 2011 ist Ruby Juwel 28000, jetzt ist 36874 Juwel! Sie können Ruby + R: D
ouyang
Toller Punkt bei den Rubinsteinen, die habe ich vergessen. Vielleicht können andere Leute ein paar Rubinsteine ​​in Bezug auf die Verwendung von Rubin als Werkbank vorschlagen, die bekanntermaßen funktionieren und robust sind? Vielen Dank, dass Sie eine Antwort auf das, was ich wieder suche, zusammengestellt haben.
Oeufcoque Penteano
4

ALTE (VORBEARBEITETE) ANTWORT:

Wenn Sie glauben, dass Sie Statistik lernen, indem Sie alles selbst programmieren, steht Ihnen eine lange Zeit voller Debugging und kein statistisches Lernen bevor. Außerdem benötigen Sie eine Sprache wie R, um Ihre Antworten trotzdem zu überprüfen.

Ich denke, user765195 hat einen Punkt in Bezug auf R schwieriger zu debuggen als viele andere Sprachen, was wichtig ist, aber "schlimmste"? Ich glaube nicht.

BEARBEITEN:

Wenn ich also Ihr EDIT zusammenfassen kann: Wenn Sie bereits Statistiken erstellen und Ruby wirklich anstelle eines tatsächlichen Statistikprogramms (R, gretl, SAS usw.) verwenden möchten, wie können Sie Ihr Leben vereinfachen? . Ist das richtig?

Ich kann keine Ruby-Antwort geben, aber ich denke, die allgemeine Frage sollte auch angesprochen werden. Zumal Sie auf andere Instanzen der gleichen Frage zurückgreifen: "Ich würde gerne Python / perl / java / Clojure / C / whatever verwenden, um Statistiken zu erstellen."

Ich denke, die Antwort wird immer lauten: "Warum sollten Sie ein generalisiertes, primitives (statistisches) Tool verwenden, um eine Aufgabe zu erledigen, die ein spezialisiertes Tool viel besser erledigt?" Und ich kann sechs grundlegende Antworten sehen:

  1. Ich möchte einfach keine andere Sprache lernen, und da ich mit Python / Ruby / Excel / Java vertraut bin, bestehe ich darauf, diese Sprache zu verwenden.

  2. Die Statistiken, die ich machen möchte, müssen in ein größeres Projekt passen (z. B. ein webbasiertes Tool), und die von diesem Projekt verwendeten Tools funktionieren nicht mit externen Tools. Daher muss Python / Ruby / Java verwendet werden. (Oder es handelt sich möglicherweise um die Bereitstellung einer Anwendung, und es ist nicht möglich, beliebige ausführbare Dateien bereitzustellen.)

  3. Ich würde ein spezielles Tool verwenden, aber diejenigen, auf die ich Zugriff habe (z. B. R, das kostenlos ist), sind zu langsam oder können die enormen Datenmengen / Echtzeitanforderungen für mein Projekt nicht bewältigen.

  4. Mein Arbeitgeber / Kunde besteht darauf, dass ich die Allzwecksprache Python / Ruby / Excel / Java verwende. Ich habe keine andere Wahl und suche nach dem am wenigsten schmerzhaften Weg, um dieser Forderung nachzukommen.

  5. Mit "Statistik" meine ich sehr einfache Dinge wie Mittelwerte / Mediane, Varianzen usw. Warum ein spezielles Paket einholen, das Mischeffektmodelle über MCMC berechnen kann, wenn ich nur berechnen möchte, welche Punkte außerhalb von 1-Sigma liegen weg von der Mitte?

  6. Ich mache etwas sehr Spezielles, und für das sogar statistische Pakete wie R keine Pakete / Bibliotheken / Funktionen haben. Es ist nicht nur topaktuell, sondern erfordert eine überragende Leistung, und ich muss es von Grund auf neu machen. (Oder vielleicht Bibliotheken verwenden, die ich bereits in Sprache X entwickelt habe.)

Meiner Meinung nach ist Antwort 1 keine gute Antwort, Antwort 2 ist möglicherweise legitim, bietet jedoch möglicherweise Problemumgehungen, die Ihnen nicht bekannt sind. Antwort 3 ist mit höherer Wahrscheinlichkeit legitim, bietet jedoch möglicherweise Problemumgehungen und die anderen drei Antworten Hoffentlich bekommst du eine bessere Antwort als meine.

Wayne
quelle
In dieser Frage geht es nicht darum, Statistiken zusammen mit Ruby zu lernen. Bitte sehen Sie sich die Bearbeitung an. Vielen Dank für Ihre Gedanken und entschuldigen Sie, wenn die Frage irreführend ist.
Oeufcoque Penteano
Danke, du hast es richtig gemacht . Die Annahme von statistischen Kenntnissen ist in Ordnung, und jetzt suche ich nach Bibliotheken, um zu lernen, wie man das in Ruby macht, wie es für Python vorgeschlagen wurde. Ich stimme Ihnen zu, viele Motivationen sind möglich, aber auch hier (nur für die nächsten Leser, die auf diese Seite stoßen) ist die erwartete Antwort eine, die Bibliotheken vorschlägt und wie sie in der Python-Frage erwähnt wurden. Ich glaube, wenn es Platz für viele unterschiedliche Meinungen darüber gibt, welches Statistik-Tool verwendet werden soll, muss auch Wissen über sie in dieser Community verfügbar gemacht werden. Vielen Dank!
Oeufcoque Penteano
+1. Höchstwahrscheinlich sprechen wir über verschiedene Wörter, die "Statistik" geschrieben sind. Eine Website-Nutzungsstatistik, die mit Python oder Ruby leicht aus den Protokollen abgerufen werden kann, unterscheidet sich von der Notwendigkeit, das Cox-Modell oder die Varianz des Verhältnisschätzers einer Gesamtsumme basierend auf einer zweistufigen geschichteten Umfrage mit Ruby zu programmieren. (Man muss absolut verzweifelt nach den Grundsätzen der Antworten 2, 3 und 4 sein, um überhaupt an Ruby als die Sprache der Wahl zu denken.) Man kann seine Lernstatistik durch Simulationen ergänzen, in der Sprache, die am bequemsten ist, und dann 1 ist eine gültige Antwort.
StasK
@OeufcoquePenteano: Am Ende denke ich, dass mein Problem auf "Workbench" hinausläuft. Die Gewinnerantwort im Python-Thread ist eigentlich ziemlich spartanisch. Alle aufgeführten Ressourcen zusammen stimmen nicht einmal mit Basis-R überein, geschweige denn mit R-Paketen. Wenn Sie in Python einige Statistiken erstellen MÜSSEN, haben Sie einige eingeschränkte Möglichkeiten, aber Sie sollten nicht verwirrt sein und glauben, dass Python eine gute statistische "Workbench" ist. Ich hoffe, Sie bekommen einige Antworten, aber Ruby ist noch schlechter dran als Python.
Wayne
@ Wayne, das ist in Ordnung. Ich plane nicht, R gegen Ruby, Python oder Excel auszutauschen. Aber ich bin gespannt, was Ruby zu bieten hat. Vielleicht sind einige Edelsteine ​​von Ruby besser als bestimmte Eier (ist das Ei, das sie bei Python aufrufen? Nicht sicher) und umgekehrt. Vielleicht ist Excel für einige Dinge besser. Zum Beispiel denke ich, dass Excel helfen könnte, eine sehr oberflächliche Analyse durchzuführen und dann ernsthaft in R oder ein anderes Tool einzutauchen. Es geht also nicht darum, sich für eine zu entscheiden, sondern zu wissen, was von jeder Welt am besten ist und sie zu kennen. Wählen Sie diejenige, die für das jeweilige Problem besser geeignet ist. Danke für deinen Rat.
Oeufcoque Penteano
-1

Ein paar zufällige Gedanken:

  • Sie erwähnen, dass Sie eine Workbench suchen, um Statistiken zu lernen. IMHO, keine der Plattformen, die Sie erwähnen, ist gut für das Erlernen von Statistiken. Es wird zu viel Ablenkung geben, wenn man die Syntax und die Semantik der spezifischen Sprache lernt. Wenn Sie Statistiken lernen möchten, nehmen Sie einfach ein Buch (ich empfehle Tukey's EDA) und vielleicht einen Taschenrechner. Das Erlernen einer Sprache über statistische Konzepte hinaus ist eine unnötige Ablenkung.
  • Die Person, die sich über langsame Schleifen in R beschwert, verrät seine Unwissenheit: Schleifen sind nicht in jeder Sprache ein natürliches Konstrukt. Sie sind in den meisten funktionalen Programmiersprachen langsam. Die Alternative ist Funktionsanwendung, und das ist normalerweise schnell.
  • Wenn es um Programmiersprachen geht, sollte Geschwindigkeit Ihre letzte Sorge sein. Ein viel, viel wichtigeres Problem ist das einfache Debuggen des Codes.
  • Wenn es um das Debuggen geht, ist R vielleicht die schlechteste Programmiersprache, die ich kenne. Es ist manchmal unmöglich, den Code zu debuggen. Darüber hinaus ist die Dokumentation für vorhandene Pakete in der Regel sehr schlecht geschrieben. Insgesamt ist mein Rat, wenn Sie R vermeiden können, tun Sie es.
  • Ich bin mit dem statistischen Inhalt von Python nur am Rande vertraut. Ich verstehe, dass NumPy nicht wirklich professionell geschrieben ist und numerische Probleme nicht berücksichtigt.
  • Hast du über Haskell nachgedacht? Es ist definitiv die beste Programmiersprache da draußen.
user765195
quelle
Hallo! Danke für deine Meinung. Ich freue mich, eine andere Meinung gegen R zu sehen. Ich werde auch berücksichtigen, was Sie sagen, da ich mich auch mit anderen Tools befasse, die hier nicht erwähnt werden. Vielleicht war meine Frage irreführend. Ich lerne immer noch Statistik und meine Frage zu R war tatsächlich darüber, aber für Ruby ist es etwas anderes. Ich bin gespannt, was für Ruby als Workbench verfügbar ist, wie es für Python und Excel verfügbar ist. Ich werde auch einen Blick auf Haskell werfen, aber wenn Sie Vorschläge zu Ruby haben, würde ich mich auch freuen! Vielen Dank!
Oeufcoque Penteano
Haskell für Statistiken? Sprechen Sie über eine unnötige Ablenkung ...
Phillip Cloud
-1, unmöglich, Code in r zu debuggen?
mpiktas
Ich sollte beachten, dass nur der Absatz über das Debuggen in R in dieser Antwort nicht richtig ist. Alles andere scheint eine Gegenstimme zu verdienen. Bis auf Haskell, den ich noch nicht erlebt habe. Aber der Hinweis zum Debuggen ist genau richtig.
mpiktas
1
@cpcloud: Die Sprache der Mathematik und Statistik ist Lambda-Kalkül. Haskell ist nichts als Lambda-Kalkül. Mathematische Konstrukte werden in Haskell genauso ausgedrückt wie in einem Mathematikbuch. Aus diesem Grund ist der Aufwand für die Sprache fast Null. In der Tat lehrt das Buch "The Haskell Road to Logic" Mathematik mit Haskell. Ich schlage vor, Sie werfen einen Blick auf dieses Buch.
user765195