貴重な統計分析のオープンソースプロジェクトとは何ですか?


69

現在利用可能ないくつかの貴重な統計分析のオープンソースプロジェクトは何ですか?

編集:Sharpieが指摘したように、価値があるとは、物事をより速く、またはより安く行うのに役立つことを意味します。


5
議論的で主観的なポスターの子供になる可能性があります。少なくとも、「貴重」を定義する必要があります。
シャーピー

2
たぶん、各プロジェクトの「価値ある」ではなく、「長所」と「短所」に焦点を当てるべきでしょうか?
ライオン

あるいは、「XがYをより速く/より安く仕上げ、口臭の原因となる細菌を殺すのにどのように役立つか」ということもあります。
シャーピー

回答:


88

Rプロジェクト

http://www.r-project.org/

Rは、ビッグボックスパッケージに代わる最初の広く受け入れられたオープンソースの代替であったため、価値があり、重要です。成熟しており、十分にサポートされており、多くの科学コミュニティで標準となっています。


はい、Rはいいですが、なぜ「貴重な」のですか。
シャーピー

11
成熟しており、十分なサポートがあり、特定の科学コミュニティ内の標準です(たとえば、AI部門で人気があります)
Menno

10
それは拡張可能であり、その中で実行できない統計的手法はありません。
aL3xa

20

PythonでさまざまなMCMCタスクを実行するためにPyMCがあります。これはかなり使い道があります。PyMCでできないことをBUGSでできることは何もありませんでした。モデルを指定してデータを取り込む方法は、はるかに直感的に思えます。


18

これは忘れられてしまうかもしれませんが、長年にわたってMatlabクローンOctaveを喜んで使用していました。かなり良いライブラリが明確にそれはR.によって矮小化されているがR以上の一つの可能な利点は、MATLAB /オクターブであることである、などの異なる分布からの確率変数の生成、統計的検定のためのオクターブ鍛造であり、共通語の最適化の研究者は、数値アナリストの間で、および適用された数学者の一部のサブセット(少なくとも学校にいたとき)ですが、私の知る限り、私の学部の誰もRを使用していませんでした。可能であれば両方を学んでください!


4
本当のコメント。しかし、経験豊富なプログラマーとして、Matlab / Octaveを使用するたびに汚い気分になります。Matlab/ Octaveは恐ろしく設計された(まったく設計されていれば)言語です。もちろん、私は明らかにパンチカード用に設計されたSASにも夢中です。
ウェイン

1
@ウェインは十分に真実。ボブ・ハーパーがMatlab言語を「意味論的に疑わしい」と呼ぶのを聞いたことを思い出します;)多くの言語と同様に、十分に使用すると、その奇妙なことに対処することを学びます。
みすぼらしいシェフ

17

2つのプロジェクトが思い浮かびます。

  1. バグ -ベイズ統計から(一部の)痛みを取り除く。これにより、ユーザーはモデルに集中し、MCMCに少し集中できます。
  2. バイオコンダクター -おそらくバイオインフォマティクスで最も人気のある統計ツール。私はそれがRリポジトリであることを知っていますが、バイオコンダクターのためだけにRを学びたい人が大勢います。最先端の分析に利用できるパッケージの数は、他に類を見ません。

1
Andrew Gelmanには、バグをRにリンクする素晴らしいRライブラリがあります
。– bshor

4
私は「バイオインフォマティクスで最も人気のある統計ツール」と言い換えたいと思います... しかし、バイオインフォマティクスはそれに限定されるものではありません;)
ニコジョ

15

データマイニング用のWeka -Javaの多くの分類およびクラスタリングアルゴリズムが含まれています。


これのパフォーマンスはどうですか?(「Java」という言葉を見るたびに叫び声を上げます...)
shabbychef

@shabbychef私が聞いたことからはかなり良いようですが、一般的にWekaはいくつかのアルゴリズムをテストし、特定のデータセット(またはそのサブセット)のパフォーマンスを確認する最初のステップとして使用され、コアプログラムの一部を再コーディングして効率を最適化する(例:交差検証またはブートストラップを要求する高次元データを使用)、場合によってはCまたはPythonで。
chl

2
@shabbychef:Javaプログラムは遅いモンスターである必要はありません。よく書かれたCコードは、ほとんどの場合、Javaでの同様の実装よりも速くなりますが、よく書かれたJavaコードはおそらく非常に遅くなりません。さらに、Javaでの開発には多くの重要な利点があります。
posdef


14

Incanterは、統計計算とグラフィックスのためのClojureベースのRライクなプラットフォーム(環境+ライブラリ)です。


繰り返しますが、なぜですか?たとえば、Excelでこれを使用するように上司を説得するにはどうすればよいでしょうか。
シャーピー


1
CHL

14

FSFによって開始されたプロジェクト、またはGNU General Public Licenseの下で再配布されたプロジェクトもあります。

  • PSSSは、SPSSの無料の代替手段を目指しています
  • GRETL、ほとんどが回帰と計量経済学専用

JMulTiのように、教科書のコンパニオンソフトウェアとしてリリースされたアプリケーションもありますが、まだ少数の人しか使用していません。

私はまだで遊んでいますxlispstat Lispは、主にR(上のヤン・デ・レーウの概要を参照してくださいに取って代わられたが、随時、R対のLispにおける統計ソフトウェアのジャーナル)。興味深いことに、R言語の共同創設者の1人であるRoss Ihakaは、統計ソフトウェアの未来は...と反対に主張しました... Lisp:Back to the Future:Lisp as Base as Statistics Computing System。@AlexはすでにClojureベースの統計環境Incanterを指していたので、近い将来Lispベースのソフトウェアの復活が見られるでしょうか?:-)



9

まず第一に、私の意見ではすべての中で最も優れたツールはRであり、ここには列挙しないライブラリとユーティリティがたくさんあることを教えてください。

wekaについての議論を広げましょう

RにはRWekaと呼ばれるRのライブラリがあります。これはRに簡単にインストールでき、この素晴らしいプログラムの多くの機能とRの機能を使用します。簡単な決定木を作成するためのコード例を示します。このパッケージに付属している標準データベースから読み取ります(結果のツリーを描画することも非常に簡単ですが、その方法についてはRWekaのドキュメントにある研究を行うようにします。

library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)

これを行うためのpythonライブラリもいくつかあります(pythonは非常に簡単に習得できます)

まず、使用できるパッケージを列挙します。詳細については説明しません。Weka(はい、Python用のライブラリがあります)、NLKT(データマイニングに加えてテキストマイニング用の最も有名なオープンソースパッケージ)、statPysickits、およびscipy。

優れたオレンジもあります(後で説明します)。ここに、テーブルcmpart1のデータからツリーを作成するためのコード例があります。これは、10倍の検証も実行します。

import orange, orngMySQL, orngTree

data = orange.ExampleTable("c:\\python26\\orange\\cmpart1.tab")

domain=data.domain
n=10
buck=len(data)/n
l2=[]
for i in range(n):
    tmp=[]
    if i==n-1:
        tmp=data[n*buck:]
    else:
        tmp=data[buck*i:buck*(i+1)]
    l2.append(tmp)

train=[]
test=[]
di={'yy':0,'yn':0,'ny':0,'nn':0}
for i in range(n):
    train=[]
    test=[]
    for j in range(n):
        if j==i:
            test=l2[i]
        else:
            train.extend(l2[j])
    print "-----"
    trai=orange.Example(domain, train)
    tree = orngTree.TreeLearner(train)
    for ins in test:
        d1= ins.getclass()
        d2=tree(ins)
        print d1
        print d2
        ind=str(d1)+str(d2)
        di[ind]=di[ind]+1
print di

最後に、私が使用した興味深いパッケージをいくつか紹介します

オレンジ:初心者と専門家向けのデータの視覚化と分析。ビジュアルプログラミングまたはPythonスクリプトによるデータマイニング。機械学習のコンポーネント。バイオインフォマティクスおよびテキストマイニングの拡張機能。(私は個人的にこれをお勧めします、私はそれを多くのPythonに統合して使用しました、そしてそれは優秀でした)あなたが私に望むなら、私はあなたにいくつかのPythonコードを送ることができます。

ROSETTA:ラフセット理論の枠組み内で表形式データを分析するためのツールキット。ROSETTAは、データマイニングおよび知識発見プロセス全体をサポートするように設計されています:データの初期ブラウジングおよび前処理から、最小限の属性セットの計算およびif-thenルールまたは記述パターンの生成、誘導されたルールまたはパターンの検証および分析まで(これもとても楽しかったです)

KEEL:回帰、分類、クラスタリング、パターンマイニングなどを含むデータマイニング問題の進化的アルゴリズムを評価します。これにより、比較用の統計的テストモジュールなど、既存のモデルと比較した学習モデルの完全な分析を実行できます。

DataPlot:科学的な視覚化、統計分析、および非線形モデリング用。ターゲットDataplotユーザーは、科学プロセスおよび工学プロセスの特性評価、モデリング、視覚化、分析、監視、および最適化に携わる研究者およびアナリストです。

Openstats:統計および測定入門、記述統計、単純比較、分散分析、相関、重回帰、中断時系列、多変量統計、非パラメトリック統計、測定、統計プロセス制御、財務手順、ニューラルネットワーク、シミュレーションが含まれます


8

Colin GillespieはBUGSについて言及しましたが、Gibbs Samplingなどのより良いオプションはJAGSです。

やりたいのがARIMAだけなら、X12-ARIMAに勝るものはありません。X12-ARIMAは、フィールドおよびオープンソースのゴールドスタンダードです。実際のグラフは実行しません(Rを使用して実行します)が、診断はそれ自体でのレッスンです。

私が最近発見したこと、そして学習し始めたばかりのことを少し遠ざけて...

ADMC(AD Model Builder)は、AUTODIFライブラリに基づく非線形モデリングを行い、MCMCおよびその他のいくつかの機能をスローします。モデルをC ++実行可能ファイルに前処理およびコンパイルし、スタンドアロンアプリとしてコンパイルします。 R、MATLABなどで実装された同等のモデルよりもはるかに高速であると考えられていました。ADMB Project

漁業の世界では今でも最も人気がありますが、他の目的には非常に興味深いようです。Rのグラフやその他の機能はありません。Rと組み合わせて使用​​される可能性が高いでしょう。

GUIでベイジアンネットワークを使用する場合:SamIamは素晴らしいツールです。Rにはこれを行うパッケージがいくつかありますが、SamIamは非常に優れています。



7

RooFitを使用して、信号およびバックグラウンド分布を簡単に適切に調整し、TMVAを使用していくつかの標準ツール(遺伝的アルゴリズムやニューラルネットワーク、BDTも行う)で多変量問題をすばやく分析できます。どちらもROOT C ++ライブラリの一部であり、粒子物理学の問題に対してかなり大きな偏見を持っています。


7

すでに述べたものに加えて、さらにいくつか:

  • データマイニング用のR、Python、およびWeka統合拡張機能と KNIME
  • 迅速なEDAのための モンドリアン

そして空間的観点から:

  • 空間EDAおよびエリアデータのクラスタリングのためのGeoDa
  • ポイントデータのクラスタリングのためのSaTScan

3
メモとして、GeoDaとSatScanはオープンソースではなく、フリーウェアです(ただし、私にとって大きな違いはありません!)
Andy W

1
GeoDa CenterによるpySalはオープンソースです(以下を参照)
b_dev

6

私は2番目のジェイ。Rが貴重なのはなぜですか?理由の簡単なリストを以下に示します。http://www.inside-r.org/why-use-r。また、ggplot2も確認してください。これは、R用の非常に優れたグラフィックパッケージです。ここに、いくつかの優れたチュートリアルがあります


9
なぜここで質問するのですか?すべてがコミュニティウィキです。正規の答えを修正するだけではどうですか?
ジェイスティーブンス

4

これは「統計分析」の外側の限界に該当しますが、Eureqaは遺伝的プログラミングによるデータの非線形関係をデータマイニングするための非常にユーザーフレンドリーなプログラムです。Eureqaは汎用的ではありませんが、かなりうまく機能し、GUIは非常に直感的です。また、eureqaサーバーを介して利用可能な計算能力を利用することもできます。


3

Meta.Numericsは、統計分析を適切にサポートする.NETライブラリです。

R(Sクローン)およびOctave(Matlabクローン)とは異なり、「フロントエンド」はありません。統計分析を行う必要がある独自のアプリケーションを作成するときにリンクするライブラリであるという点で、GSLに似ています。C#とVisual Basicは、基幹業務アプリのC / C ++よりも一般的なプログラミング言語であり、Meta.NumericsはGSLよりも統計的な構成とテストをより広範囲にサポートしています。


3
  • 分析的な地域化または地理空間クラスタリングのためのclusterPy
  • 空間データ分析のためのPySal

3

シンボリック数学ソフトウェアも統計の優れたサポートとなります。時々使用するGPLのいくつかを以下に示します。

  1. sympyはpythonベースで非常に小さいですが、まだ多くのことができます:導関数、積分、シンボリック和、組み合わせ論、級数展開、テンソル操作など。Rから呼び出すRパッケージがあります。
  2. セージはpythonベースで巨大です!sympyが思い通りにできない場合は、sageを試してください(ただし、ネイティブWindowsバージョンはありません)。
  3. maximaはLispベースで非常に古典的で、サイズが(1)と(2)の中間です。

3つはすべて活発に開発されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.