Quali sono alcuni preziosi progetti open source di analisi statistica disponibili in questo momento?
Modifica: come sottolineato da Sharpie, prezioso potrebbe significare aiutarti a fare le cose più velocemente o in modo più economico.
Quali sono alcuni preziosi progetti open source di analisi statistica disponibili in questo momento?
Modifica: come sottolineato da Sharpie, prezioso potrebbe significare aiutarti a fare le cose più velocemente o in modo più economico.
Risposte:
Il progetto R
R è prezioso e significativo perché è stata la prima alternativa open-source ampiamente accettata ai pacchetti big-box. È maturo, ben supportato e uno standard in molte comunità scientifiche.
Questo può essere annullato dall'oblio, ma ho usato felicemente il clone Matlab Octave per molti anni. Ci sono abbastanza buone librerie nella fucina di ottava per la generazione di variabili casuali da diverse distribuzioni, test statistici, ecc., Sebbene chiaramente sia sminuito da R. Un possibile vantaggio rispetto a R è che Matlab / ottava è la lingua franca tra analisti numerici, ricercatori di ottimizzazione e alcuni sottogruppi di matematici applicati (almeno quando ero a scuola), mentre nessuno nel mio dipartimento, per quanto ne so, ha usato R. la mia perdita. impara entrambi se possibile!
Mi vengono in mente due progetti:
Weka per il data mining: contiene molti algoritmi di classificazione e clustering in Java.
ggobi "è un programma di visualizzazione open source per esplorare dati ad alta dimensione".
Mat Kelcey ha una buona introduzione di 5 minuti su ggobi .
Incanter è una piattaforma di tipo R basata su Clojure (ambiente + librerie) per elaborazione statistica e grafica.
Ci sono anche quei progetti avviati dalla FSF o ridistribuiti sotto GNU General Public License, come:
Esistono anche applicazioni che sono state rilasciate proprio come software di accompagnamento per un libro di testo, come JMulTi , ma sono ancora in uso da poche persone.
Di tanto in tanto gioco ancora con xlispstat , sebbene Lisp sia stato ampiamente sostituito da R (vedi la panoramica di Jan de Leeuw su Lisp vs. R nel Journal of Statistical Software ). È interessante notare che uno dei cofondatori del linguaggio R, Ross Ihaka, ha sostenuto al contrario che il futuro del software statistico è ... Lisp: Ritorno al futuro: Lisp come base per un sistema di calcolo statistico . @Alex ha già indicato l' Incanter di ambiente statistico basato su Clojure , quindi forse vedremo un rilancio del software basato su Lisp nel prossimo futuro? :-)
RapidMiner per il data mining e il text mining
Prima di tutto, lascia che ti dica che secondo me lo strumento migliore di tutti è di gran lunga R, che ha tonnellate di librerie e utilità che non ho intenzione di elencare qui.
Vorrei espandere la discussione su Weka
C'è una libreria per R, che si chiama RWeka, che puoi facilmente installare in R, e usare molte delle funzionalità di questo fantastico programma insieme a quelle in R, lascia che ti dia un esempio di codice per fare un semplice albero decisionale leggere da un database standard fornito con questo pacchetto (è anche molto facile disegnare l'albero risultante, ma ho intenzione di lasciarti fare le ricerche su come farlo, che è nella documentazione di RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Ci sono anche diverse librerie di Python per farlo (python è molto molto facile da imparare)
Prima di tutto fammi elencare i pacchetti che puoi usare, non ho intenzione di approfondirli; Weka (sì, hai una libreria per Python), NLKT (il pacchetto open source più famoso per il textmining oltre al datamining), statPy , sickits e scipy.
C'è anche l'arancione che è eccellente (ne parlerò anche più avanti), ecco un esempio di codice per fare un albero dai dati nella tabella cmpart1, che esegue anche una convalida di 10 volte, puoi anche rappresentare graficamente l'albero
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
Per finire con alcuni altri pacchetti che ho usato e trovato interessanti
Arancione : visualizzazione e analisi dei dati per principianti ed esperti. Data mining tramite programmazione visiva o script Python. Componenti per l'apprendimento automatico. Estensioni per bioinformatica e text mining. (Lo consiglio personalmente, l'ho usato molto integrandolo in Python ed era eccellente) Posso inviarti del codice Python se vuoi che lo faccia.
ROSETTA : toolkit per l'analisi dei dati tabulari nell'ambito della teoria degli insiemi approssimativi. ROSETTA è progettato per supportare l'intero processo di data mining e di scoperta delle conoscenze: dalla navigazione iniziale e preelaborazione dei dati, attraverso il calcolo di insiemi di attributi minimi e la generazione di regole if-then o modelli descrittivi, alla convalida e all'analisi delle regole o dei modelli indotti (Anche questo mi è piaciuto molto)
KEEL : valuta gli algoritmi evolutivi per i problemi di data mining tra cui regressione, classificazione, clustering, pattern mining e così via. Ci consente di eseguire un'analisi completa di qualsiasi modello di apprendimento rispetto a quelli esistenti, incluso un modulo di test statistico per il confronto.
DataPlot : per visualizzazione scientifica, analisi statistica e modellistica non lineare. L'utente di Dataplot target è il ricercatore e l'analista impegnato nella caratterizzazione, modellizzazione, visualizzazione, analisi, monitoraggio e ottimizzazione dei processi scientifici e ingegneristici.
Openstats : include un primer per statistiche e misurazioni, statistiche descrittive, confronti semplici, analisi di varianza, correlazione, regressione multipla, serie temporali interrotte, statistiche multivariate, statistiche non parametriche, misurazione, controllo di processo statistico, procedure finanziarie, reti neurali, simulazione
Colin Gillespie ha menzionato BUG, ma un'opzione migliore per il campionamento di Gibbs, ecc., È JAGS .
Se tutto ciò che vuoi fare è ARIMA, non puoi battere X12-ARIMA , che è un gold standard nel campo e open source. Non fa grafici reali (io uso R per farlo), ma la diagnostica è una lezione a parte.
Avventurarsi un po 'più in là di qualcosa che ho scoperto di recente e ho appena iniziato a imparare ...
ADMB (AD Model Builder), che esegue la modellazione non lineare basata sulla libreria AUTODIF, con MCMC e alcune altre funzioni integrate. Preelabora e compila il modello in un eseguibile C ++ e lo compila come un'app standalone, che è dovrebbe essere molto più veloce dei modelli equivalenti implementati in R, MATLAB, ecc. Progetto ADMB
È iniziato ed è ancora più popolare nel mondo della pesca, ma sembra abbastanza interessante per altri scopi. Non ha grafici o altre caratteristiche di R, e molto probabilmente verrebbe usato insieme a R.
Se vuoi lavorare con le reti bayesiane in una GUI: SamIam è un ottimo strumento. R ha anche un paio di pacchetti che lo fanno, ma SamIam è molto carino.
GSL per quelli di voi che desiderano programmare in C / C ++ è una risorsa preziosa in quanto fornisce diverse routine per generatori casuali, algebra lineare ecc. Mentre GSL è disponibile principalmente per Linux, ci sono anche porte per Windows. (Vedi: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php e http://david.geldreich.free.fr/dev.html )
Mi piace molto lavorare con RooFit per un facile adattamento delle distribuzioni di segnali e di sfondo e TMVA per analisi rapide dei componenti principali e modellazione di problemi multivariati con alcuni strumenti standard (come algoritmi genetici e reti neurali, anche BDT). Fanno entrambi parte delle librerie ROOT C ++ che hanno un pregiudizio piuttosto pesante nei confronti dei problemi di fisica delle particelle.
Pochi altri in aggiunta a quelli già menzionati:
E dal punto di vista spaziale:
Secondo me Jay. Perché R ha valore? Ecco un breve elenco di motivi. http://www.inside-r.org/why-use-r . Dai un'occhiata anche a ggplot2 - un pacchetto grafico molto carino per R. Alcuni tutorial qui .
Ciò rientra nei limiti esterni dell '"analisi statistica", ma Eureqa è un programma molto intuitivo per le relazioni non lineari di data mining nei dati attraverso la programmazione genetica. Eureqa non è uno scopo generale, ma fa quello che fa abbastanza bene e la GUI è abbastanza intuitiva. Può inoltre sfruttare la potenza di calcolo disponibile tramite il server eureqa.
Meta.Numerics è una libreria .NET con un buon supporto per l'analisi statistica.
A differenza di R (un clone S) e Octave (un clone Matlab), non ha un "front-end". È più simile a GSL, in quanto è una libreria a cui ti colleghi quando scrivi la tua applicazione che deve fare analisi statistiche. C # e Visual Basic sono linguaggi di programmazione più comuni di C / C ++ per le app line-of-business e Meta.Numerics ha un supporto più esteso per costrutti e test statistici rispetto a GSL.
Anche il software di matematica simbolica può essere un buon supporto per le statistiche. Ecco alcuni di quelli GPL che utilizzo di volta in volta:
Tutti e tre sono in fase di sviluppo attivo.