web-dev-qa-db-ja.com

どのプログラミング言語が統計に適していますか?

最近、いくつかのことについてもう少し統計分析を行っています。この目的に特に適したプログラミング言語があるかどうか知りたいです。 [〜#〜] r [〜#〜] については知っていますが、もう少し汎用的なものが好きです(または、Rはかなり汎用的ですか?)。

どんな提案がありますか?構文/セマンティクスが特にこれに向けられている言語はありますか?または、非常に優れたライブラリを備えた言語はありますか?

32
Jason Baker

コンテストはありません--- [〜#〜] r [〜#〜] Sのメイン実装として(そしてたまたま適切なオープンソースであり、a GNUプロジェクトも)。

S言語がこの目的のために正確に設計したように(John Chambersの本を参照)だけでなく、ドメイン固有パッケージのかなり豊富なサポート - [〜#〜] cran [〜#〜] は他に類を見ません。適切な品質管理を備えた2000以上のパッケージで、多くの場合、この分野の専門家によって作成されています。

ACMは、1998年にジョンチェンバースに ACM Software Systems Award を次のように与えたときと同じように見ています 引用

ジョン・M・チェンバース

人々がデータを分析、視覚化、操作する方法を永遠に変えてきたSシステムの場合。

参考までに、この賞の他の受賞者は、TeX、Smalltalk、Postscript、RPC、「Web」、Mosaic、Tcl/Tk、Java、Makeなどでした...参加するのに悪い会社ではありません。

ここで、「のみ」データを収集して要約したい場合は、手続き型言語または関数型言語で十分です。しかし、dataを使用したプログラミング用に設計されたものが必要な場合は、RをメインのS実装として使用します。

52

Dirkが言うように、[〜#〜] r [〜#〜]が統計に最適な言語であることは間違いありません。これにいくつかのポイントを追加したいだけです:

まず、Rを使うべき主な理由はコミュニティのためだと思います。この段階では、学界や産業界の専門家によって非常に頻繁に使用されているため、CRANの富に匹敵する言語は他にありません。

第二に、Rという言語は一緒に仕事をする喜びであることを認識しておく必要があります。それは私の第一言語であり、代替案を試したので、私はnoすぐにそれを放棄するつもりはありません。しかし、それはまた、データを使ったプログラミングの強さを独占しておらず、この主張は行き過ぎである可能性があります。すべてのLISPおよび関数型言語はデータプログラミングに強いです。結局のところ、LISPは「リストプログラミング」から派生したものであり、言語をRに与えるのはLISPの影響です。

R言語のいくつかの深い設計上の問題のために、実際にLISPを将来の統計的言語として見ているRコミュニティのメンバー(例:Ross Ihaka)がいます(「バック・トゥ・ザ・フューチャー」の論文を参照してください)(例:マルチスレッドなし)。

したがって、Rは間違いなく統計計算に最適な言語ですが、OCaml、Haskell、または(おそらく)Clojure/Incanterなどの別の言語に精通していることにはある程度の価値があります。

15
Shane

clojure に基づいて、 Incanter を見てください。 「Incanterは、統計計算とグラフィックスのためのClojureベースのRのようなプラットフォームです。」 Clojureは、JVMの上部に実装されたLISPベースの言語です。 Javaライブラリに簡単にアクセスできます。それ以上の汎用性はありません。

10
Eduardo Leoni

私の経験から、Rはこれらの分野で非常に強力な言語です。

  1. データの操作と変換。

  2. 統計分析。

  3. グラフィック。

しかし、Rは決して3トリックのポニーではありません。また、上記のカテゴリに完全には当てはまらないタスクにもこの言語を適用しました。いくつかの例は次のとおりです。

  • 異なるアーキテクチャの静的ライブラリと動的ライブラリを識別して照合し、結果のグループをlipoで実行することにより、OSXユニバーサルバイナリの作成を支援するスクリプト。

  • Webページから情報を取得するためのスクリプト。

  • 地理参照画像を作成し、GDALを使用して画像をタイルセットにカットし、出力を説明するJSONマニフェストを形成し、結果をWebサイトにアップロードして、OpenLayers

Rを使用する上で私のお気に入りの部分は、次のように言う頻度です。

うわあ! THAT?!を実行するパッケージがあります

6
Sharpie

プログラムを見ることができます sage これはpythonインタープリターの再実装であり、統計のためにさまざまなプログラミング言語を呼び出すことができます(R、matlab 、オクターブなど)python構文を使用します。

統計を実行するプログラムを作成する際の主要な問題の1つは、それぞれが個別のタスクを実行する多くの異なる小さなスクリプトを作成することになり、結果に乱雑なフォルダーや混乱が生じる可能性があることです。

したがって、プログラミング言語を選択する以外に(他の人がすでにあなたの質問に答えていると思います)、スクリプトのパイプラインを定義するための構文も必要です。プログラム 'gnu/make'で作成できます(例:read this )またはthis sage 、または他の解決策があります。

5
dalloliogm

あなたがしているallが統計である場合、Rは素晴らしいです。それは素晴らしいインタラクティブなインターフェースと視覚化ツールを持っています。ただし、その構文とセマンティクスは統計を行うために非常に高度に最適化されているため、汎用言語として使用するのはかなり困難です。より汎用的な言語が必要な場合は、Python with SciPyを使用するのが適切ですが、私はそれを使用していて、その中の統計ルーチンがやや未熟であることがわかりました。多くの場合、非効率的です。またはコーナーケースで失敗します。

大規模なデータセットでデータマイニングを行っている場合、パフォーマンスを重要視している場合、および/またはアルファ風のツールを使用してもかまわない場合は、Dプログラミング言語と dstatsライブラリ が非常に適しています。 Dはほぼ汎用の言語ですが、テンプレートメタプログラミングにより、静的にコンパイルされた金属に近い言語でもNice APIを簡単に設計できるため、IMHOdstatsは非常に使いやすい言語です。 (完全な開示:私はほとんどのdstatsを書いたので、もちろんそれは良いことだと思います。)

4
dsimcha

私の大学の統計コースのほとんどはRを使用しており、そのようなコースを受講した友人のほとんどはその範囲と範囲に非常に満足しているため、Rと言えます。

私もMATLABを試しましたが、非常に便利でした。

乾杯

4
Arnkrishn

pystatsライブラリ (Pythonの場合)は統計分析に最適です。

3
AJ.

MatLab のようなものを使用することを検討しましたか?データ分析を実行するための多くの高度な機能があり、環境内でプログラミングを行うことができます。

3

Stata はどうですか?私には博士課程の経済学の学生である友人がいて、彼はいつもスタタについて絶賛しています。そして私は Mathematica に個人的な親和性を持っています。

3
Andrew Noyes

また、Rの+1もしたいと思います。特にプログラマーでない人にとっては、STATAやSPSSほど扱いやすいとは言えないかもしれません。平均的なstackoverflowerは、私よりもはるかにプログラマーだと思いますが。

そうは言っても、ユーザー(エコノミスト(視点)からの統計パッケージをいくつか見たので、簡単な概要を説明したいと思います。

STATAは依然として大多数のエコノミストにとっての選択であり、確かにいくつかの利点があります。 STATAs GUIは、オプションと統計機能の負荷を管理し続けるのに役立ちます。それに加えて、STATAは、ベンチマークに少なくともいくらか近いメーリングリストを持つ唯一のパッケージであるように見えます。それは、他に類を見ないRメーリングリストです。それでも、洗練された.doファイルを作成したり、Webからダウンロードしたりすることができます。 STATAはRほどプログラミング言語に近くないかもしれませんが、それでも統計目的で素晴らしいプログラミング言語を提供します。データセットのサイズに応じて、必要なライセンスを確認する必要があります。

また、STATAよりもさらにGUIツールであり、たとえばTOBITモデルやパネル回帰などの計量経済学的作業、特に離散選択モデルには少し包括的でないSPSSを使用することもできます。

Eviewsもあります-残念ながら、私はそれについてほとんど忘れており、私の研究ではいくつかの簡単な回帰にのみ使用しました。したがって、ここでは名前を付けます。 GAUSSについても同じです。これは、パックの他の部分よりも数学的に見えます。最近、より数学的なオクターブについて聞いたことがあります。

私の個人的な使用法では、Rは何よりも頭と肩です。たまにそれをPythonでペアリングするか、MySQLまたはPostgreSQLデータベースに接続します。これもうまく機能します。Rは、必要以上に何かをするためにもっと理解する必要があるため、統計を学ぶのに本当に役立ちます。 SPSSのようなものをクリックしてください。GUIが必要な場合は、RKwardを試すか、WindowsにKomodo/Sciviews-RまたはTinn-Rをインストールすることを検討してください。後者はGUIではありませんが、多かれ少なかれサポートしているエディターです。コードのハイライトとコードの提案は、それを実現するのにも役立ちます。RのFarnsworth Econometricsは良い読み物です。ああ、プロットについても忘れてはなりません。HadleyWickhamのggplot2パッケージはすぐに利用できます。最高です。インタラクティブである必要がない限り、グラフィックを作成する方法。結局のところ、Rは本当に最も柔軟なパッケージです。Webサーバーにインストールして、素敵なWebインターフェイスを構築することもできます。空が限界です。

2
Matt Bannert

Matlab 統計も得意です。ただし、完全に無料というわけではありません。

Octave は、必要なことも実行できる無料のクローンです。

2
Thomas

市場統計に焦点を当てている私の友人は [〜#〜] sas [〜#〜] を使用します。私はそれについてあまり知りません-それは「本当の」言語のようには見えませんが、チェックする価値があるかもしれません。

私はすべてPython Rバインディングを使用しています。

2
Matt Luongo

[〜#〜] root [〜#〜]RooFit パッケージを調べてください。それは例えばによって使用されます。データ分析のための素粒子物理学者。

ROOTはC++フレームワークであり、pythonおよびRubyバインディングが付属しています。また、限定されたインタラクティブC++通訳。

2

[〜#〜] apl [〜#〜] は、統計作業に最適な言語の1つです。しかし、それは汎用ではありません...

ASCIIを使用しないため、特別なキーボードとフォントが必要です。

それを使って何ができるかの概要については、 APLの1行にあるコンウェイのライフゲーム を参照してください。

1
Oded

私は統計学の学生です。私はRが他のすべての統計関連ソフトウェアの中で最高だと思いました。おそらくそれは統計で何かをする能力を持っています。

0
Zaheer Abbas