Apa sajakah proyek-proyek open source Analisis Statistik yang berharga?


69

Apa saja proyek-proyek open source Analisis Statistik berharga yang tersedia saat ini?

Sunting: seperti yang ditunjukkan oleh Sharpie, berharga bisa berarti membantu Anda menyelesaikan sesuatu lebih cepat atau lebih murah.


5
Bisa jadi anak poster untuk argumentatif dan subyektif. Setidaknya, perlu mendefinisikan 'berharga'.
Sharpie

2
Mungkin fokusnya tidak harus pada "berharga" melainkan "pro" dan "kontra" dari setiap proyek?
A Lion

Atau mungkin bahkan "Bagaimana X akan membantu Anda menyelesaikan Y lebih cepat / lebih murah dan membunuh kuman yang menyebabkan bau mulut."
Sharpie

Jawaban:


88

Proyek-R

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

R berharga dan penting karena merupakan alternatif Open-Source pertama yang diterima secara luas untuk paket big-box. Ini matang, didukung dengan baik, dan standar dalam banyak komunitas ilmiah.


Ya, R itu bagus- tapi MENGAPA itu 'berharga'.
Sharpie

11
Ini matang, didukung dengan baik, dan standar dalam komunitas ilmiah tertentu (misalnya, populer di departemen AI kami)
Menno

10
Itu bisa diperluas dan tidak ada teknik statistik yang tidak dapat dilakukan di dalamnya.
aL3xa

20

Untuk melakukan berbagai tugas MCMC dengan Python, ada PyMC , yang sudah saya gunakan. Saya belum menemukan apa pun yang dapat saya lakukan dalam BUGS yang tidak dapat saya lakukan di PyMC, dan cara Anda menentukan model dan memasukkan data tampaknya jauh lebih intuitif bagi saya.


18

Ini mungkin diturunkan untuk dilupakan, tapi saya senang menggunakan klon Oktaf Matlab selama bertahun-tahun. Ada pustaka yang cukup bagus dalam bentukan oktaf untuk generasi variabel acak dari distribusi yang berbeda, tes statistik, dll, meskipun jelas itu dikerdilkan oleh R. Satu keuntungan yang mungkin dari R adalah bahwa Matlab / oktaf adalah lingua franca di antara para analis numerik, peneliti optimisasi. , dan beberapa himpunan matematikawan terapan (setidaknya ketika saya masih di sekolah), sedangkan tidak ada seorang pun di departemen saya, setahu saya, menggunakan R. kerugian saya. pelajari keduanya jika memungkinkan!


4
Komentar benar. Tetapi sebagai programmer yang berpengalaman saya merasa kotor setiap kali saya menggunakan Matlab / Oktaf, yang merupakan bahasa yang dirancang dengan mengerikan (jika dirancang sama sekali). Tentu saja, saya juga merasa ngeri di SAS, yang jelas dirancang untuk kartu berlubang.
Wayne

1
@Wayne cukup benar. Saya ingat suatu kali ketika mendengar Bob Harper menyebut bahasa Matlab sebagai 'tersangka secara semantik';) Seperti halnya banyak bahasa, begitu Anda cukup menggunakannya, Anda belajar untuk mengatasi keanehannya.
shabbychef

17

Dua proyek muncul dalam pikiran:

  1. Bug - mengambil (sebagian) dari statistik Bayesian. Ini memungkinkan pengguna untuk lebih fokus pada model dan sedikit kurang pada MCMC.
  2. Bioconductor - mungkin alat statistik paling populer di Bioinformatika. Saya tahu itu repositori R, tetapi ada banyak orang yang ingin belajar R, hanya untuk Bioconductor. Jumlah paket yang tersedia untuk analisis mutakhir, menjadikannya tidak ada duanya.

1
Andrew Gelman memiliki perpustakaan R yang bagus yang menghubungkan Bugs ke R.
bshor

4
Saya ulangi bahwa "alat statistik paling populer dalam bioinformatika" ... Bioinformatika yang melakukan analisis microarray menggunakannya secara luas, ya. Tetapi bioinformatika tidak terbatas pada itu;)
Nicojo

15

Weka untuk penambangan data - berisi banyak klasifikasi dan algoritma pengelompokan di Jawa.


bagaimana kinerja ini? (Saya berlari menjerit setiap kali saya melihat kata 'Java' ...)
shabbychef

@shabbychef Tampaknya cukup baik dari apa yang saya dengar, tetapi umumnya Weka digunakan sebagai langkah pertama untuk menguji beberapa algoritma dan melihat kinerjanya pada set data yang diberikan (atau subset daripadanya), kemudian satu recode bagian dari program inti untuk mengoptimalkan efisiensinya (mis. dengan data dimensi tinggi yang meminta cross-validation atau bootstraping), kadang-kadang dalam C atau Python.
chl

2
@shabbychef: Program Java tidak harus menjadi monster yang lambat. Saya akui bahwa kode-C yang ditulis dengan baik hampir selalu akan lebih cepat daripada implementasi serupa di Jawa tetapi kode Java yang ditulis dengan baik kemungkinan besar tidak akan menjadi super lambat. Plus berkembang di Jawa memiliki banyak keunggulan signifikan.
posdef


14

Incanter adalah platform berbasis-Clojure, seperti R (lingkungan + perpustakaan) untuk komputasi statistik dan grafik.


Lagi- mengapa? Bagaimana saya meyakinkan bos saya untuk menggunakan ini, katakanlah, Excel.
Sharpie



14

Ada juga proyek-proyek yang diprakarsai oleh FSF atau didistribusikan kembali di bawah GNU General Public License, seperti:

  • PSPP , yang bertujuan untuk menjadi alternatif gratis untuk SPSS
  • GRETL , sebagian besar didedikasikan untuk regresi dan ekonometrik

Bahkan ada aplikasi yang dirilis hanya sebagai perangkat lunak pendamping untuk buku teks, seperti JMulTi , tetapi masih digunakan oleh beberapa orang.

Saya masih bermain dengan xlispstat , dari waktu ke waktu, meskipun Lisp sebagian besar telah digantikan oleh R (lihat tinjauan Jan de Leeuw tentang Lisp vs R dalam Journal of Statistical Software ). Menariknya, salah satu pendiri bahasa R, Ross Ihaka, berpendapat sebaliknya bahwa masa depan perangkat lunak statistik adalah ... Lisp: Kembali ke Masa Depan: Lisp sebagai Basis untuk Sistem Komputasi Statistik . @Alex sudah menunjuk ke Incanter lingkungan statistik berbasis Clojure , jadi mungkin kita akan melihat kebangkitan perangkat lunak berbasis Lisp dalam waktu dekat? :-)



9

Pertama-tama izinkan saya memberi tahu Anda bahwa menurut pendapat saya alat terbaik sejauh ini adalah R, yang memiliki banyak perpustakaan dan utilitas yang tidak akan saya sebutkan di sini.

Biarkan saya memperluas diskusi tentang weka

Ada perpustakaan untuk R, yang disebut RWeka, yang dapat Anda instal dengan mudah di R, dan menggunakan banyak fungsi dari program hebat ini bersama dengan yang ada di R, izinkan saya memberi Anda contoh kode untuk melakukan pohon keputusan sederhana baca dari database standar yang disertakan dengan paket ini (juga sangat mudah untuk menggambar pohon yang dihasilkan tetapi saya akan membiarkan Anda melakukan penelitian tentang bagaimana melakukannya, yang ada dalam dokumentasi RWeka:

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

Ada juga beberapa perpustakaan python untuk melakukan ini (python sangat sangat mudah dipelajari)

Pertama, izinkan saya menghitung paket yang dapat Anda gunakan, saya tidak akan menjelaskannya secara mendetail; Weka (ya Anda memiliki perpustakaan untuk python), NLKT (paket open source paling terkenal untuk textmining selain datamining), statPy , sickits , dan scipy.

Ada juga oranye yang unggul (saya juga akan membicarakannya nanti), di sini adalah contoh kode untuk melakukan pohon dari data di tabel cmpart1, yang juga melakukan validasi 10 lipatan, Anda juga dapat membuat grafik pohon

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

Untuk mengakhiri dengan beberapa paket lain, saya menggunakan dan menemukan menarik

Oranye : visualisasi dan analisis data untuk pemula dan pakar. Penambangan data melalui pemrograman visual atau skrip Python. Komponen untuk pembelajaran mesin. Ekstensi untuk bioinformatika dan penambangan teks. (Saya pribadi merekomendasikan ini, saya banyak menggunakannya mengintegrasikan dalam python dan itu sangat baik) Saya dapat mengirimkan Anda beberapa kode python jika Anda menginginkannya.

ROSETTA : toolkit untuk menganalisis data tabular dalam kerangka teori himpunan kasar. ROSETTA dirancang untuk mendukung keseluruhan data mining dan proses penemuan pengetahuan: Dari penelusuran awal dan pemrosesan data, melalui perhitungan set atribut minimal dan pembuatan aturan if-then atau pola deskriptif, hingga validasi dan analisis aturan atau pola yang diinduksi. . (Ini saya juga menikmati menggunakan sangat banyak)

KEEL : menilai algoritma evolusioner untuk masalah Penambangan Data termasuk regresi, klasifikasi, pengelompokan, penambangan pola dan sebagainya. Hal ini memungkinkan kami untuk melakukan analisis lengkap dari setiap model pembelajaran dibandingkan dengan yang sudah ada, termasuk modul uji statistik untuk perbandingan.

DataPlot : untuk visualisasi ilmiah, analisis statistik, dan pemodelan non-linear. Target pengguna Dataplot adalah peneliti dan analis yang terlibat dalam karakterisasi, pemodelan, visualisasi, analisis, pemantauan, dan optimalisasi proses ilmiah dan teknik.

Openstats : Termasuk Primer Statistik dan Pengukuran, Statistik Deskriptif, Perbandingan Sederhana, Analisis Variasi, Korelasi, Regresi Berganda, Rangkaian Waktu Terinterupsi, Statistik Multivariat, Statistik Non-Parametrik, Pengukuran, Pengendalian Proses Statistik, Prosedur Keuangan, Jaringan Saraf Tiruan, simulasi


8

Colin Gillespie menyebutkan BUGS, tetapi pilihan yang lebih baik untuk Gibbs Sampling, dll, adalah JAGS .

Jika semua yang ingin Anda lakukan adalah ARIMA, Anda tidak bisa mengalahkan X12-ARIMA , yang merupakan standar emas di lapangan dan open source. Itu tidak melakukan grafik nyata (saya menggunakan R untuk melakukan itu), tetapi diagnostik adalah pelajaran mereka sendiri.

Menjelajah sedikit lebih jauh ke sesuatu yang baru-baru ini saya temukan dan baru saja mulai belajar ...

ADMB (AD Model Builder), yang melakukan pemodelan non-linear berdasarkan pada perpustakaan AUTODIF, dengan MCMC dan beberapa fitur lainnya dilemparkan ke dalam. Ini memproses dan mengkompilasi model ke eksekusi C ++ dan mengkompilasinya sebagai aplikasi mandiri, yang merupakan seharusnya jauh lebih cepat daripada model setara yang diimplementasikan dalam R, MATLAB, dll. Proyek ADMB

Itu dimulai dan masih paling populer di dunia perikanan, tetapi terlihat cukup menarik untuk tujuan lain. Ini tidak memiliki grafik atau fitur R lainnya, dan kemungkinan besar akan digunakan bersama dengan R.

Jika Anda ingin bekerja dengan Bayesian Networks dalam GUI: SamIam adalah alat yang bagus. R memiliki beberapa paket yang juga melakukan ini, tetapi Samam sangat bagus.



7

Saya sangat menikmati bekerja dengan RooFit untuk pemasangan distribusi sinyal dan latar belakang yang mudah dan TMVA untuk analisis komponen utama yang cepat dan pemodelan masalah multivarian dengan beberapa alat standar (seperti algoritma genetika dan jaringan saraf, juga BDT). Keduanya adalah bagian dari perpustakaan ROOT C ++ yang memiliki bias yang cukup berat terhadap masalah fisika partikel.


7

Lebih sedikit di atas yang telah disebutkan:

  • KNIME bersama dengan ekstensi integrasi R, Python, dan Weka untuk penambangan data
  • Mondrian untuk EDA cepat

Dan dari perspektif spasial:

  • GeoDa untuk EDA spasial dan pengelompokan data areal
  • SaTScan untuk pengelompokan data titik

3
Sebagai catatan GeoDa dan SatScan bukan open source, mereka freeware (bukan berarti itu membuat banyak perbedaan bagi saya!)
Andy W

1
pySal oleh GeoDa Center adalah open source (lihat di bawah)
b_dev


4

Ini berada di luar batas 'analisis statistik', tetapi Eureqa adalah program yang sangat ramah pengguna untuk penambangan data hubungan nonlinear dalam data melalui pemrograman genetik. Eureqa bukan sebagai tujuan umum, tetapi melakukan apa yang dilakukannya dengan cukup baik, dan GUI cukup intuitif. Ini juga dapat memanfaatkan kekuatan komputasi yang tersedia melalui server eureqa.


3

Meta.Numerics adalah perpustakaan .NET dengan dukungan yang baik untuk analisis statistik.

Tidak seperti R (klon S) dan Oktaf (klon Matlab), ia tidak memiliki "ujung depan". Ini lebih seperti GSL, karena itu adalah perpustakaan yang Anda tautkan ketika Anda menulis aplikasi Anda sendiri yang perlu melakukan analisis statistik. C # dan Visual Basic adalah bahasa pemrograman yang lebih umum daripada C / C ++ untuk aplikasi lini bisnis, dan Meta.Numerics memiliki dukungan yang lebih luas untuk konstruksi dan tes statistik daripada GSL.



3

Perangkat lunak matematika simbolik juga dapat menjadi pendukung yang baik untuk statistik. Berikut adalah beberapa yang saya gunakan dari waktu ke waktu:

  1. sympy berbasis python dan sangat kecil, tetapi masih bisa melakukan banyak hal: turunan, integral, jumlah simbolik, kombinatorik, ekspansi seri, manipulasi tensor, dll. Ada paket R untuk memanggilnya dari R.
  2. sage berbasis python dan BESAR! Jika sympy tidak dapat melakukan apa yang Anda inginkan, cobalah sage (tetapi tidak ada versi windows asli).
  3. maxima berbasis lisp dan sangat klasik, ukuran sedang antara (1) dan (2).

Ketiganya dalam pengembangan aktif.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.