Quais são alguns projetos valiosos de código aberto da Análise Estatística disponíveis no momento?
Edit: como apontado por Sharpie, valioso pode significar ajudar você a fazer as coisas mais rápido ou mais barato.
Quais são alguns projetos valiosos de código aberto da Análise Estatística disponíveis no momento?
Edit: como apontado por Sharpie, valioso pode significar ajudar você a fazer as coisas mais rápido ou mais barato.
Respostas:
O projeto R
R é valioso e significativo, porque foi a primeira alternativa de código aberto amplamente aceita aos pacotes grandes. É maduro, bem suportado e é um padrão em muitas comunidades científicas.
Isso pode ser prejudicado pelo esquecimento, mas eu felizmente usei o clone Matlab Octave por muitos anos. Existem bibliotecas razoavelmente boas na oitava para a geração de variáveis aleatórias a partir de diferentes distribuições, testes estatísticos, etc., embora seja claramente ofuscada por R. Uma vantagem possível sobre R é que Matlab / oitava é a língua franca entre analistas numéricos, pesquisadores de otimização , e alguns subconjuntos de matemáticos aplicados (pelo menos quando eu estava na escola), enquanto que, no meu conhecimento, ninguém no meu departamento usava R. minha perda. aprenda ambos, se possível!
Dois projetos vêm à mente:
Weka para mineração de dados - contém muitos algoritmos de classificação e clustering em Java.
O ggobi "é um programa de visualização de código aberto para explorar dados de alta dimensão".
Mat Kelcey tem uma boa introdução de 5 minutos para ggobi .
O Incanter é uma plataforma tipo R (baseada em Clojure) (ambiente + bibliotecas) para computação e gráficos estatísticos.
Também existem projetos iniciados pela FSF ou redistribuídos sob a Licença Pública Geral GNU, como:
Existem até aplicativos que foram lançados como um software complementar para um livro, como o JMulTi , mas ainda são usados por poucas pessoas.
Ainda estou brincando com o xlispstat , de tempos em tempos, embora o Lisp tenha sido amplamente substituído pelo R (consulte a visão geral de Jan de Leeuw sobre Lisp vs. R no Journal of Statistical Software ). Curiosamente, um dos co-fundadores da linguagem R, Ross Ihaka, argumentou pelo contrário que o futuro do software estatístico é ... Lisp: De volta ao futuro: Lisp como base para um sistema de computação estatística . O @Alex já apontou para o ambiente estatístico baseado em Clojure , o Incanter , então talvez possamos ver um renascimento do software baseado em Lisp em um futuro próximo? :-)
RapidMiner para mineração de dados e texto
Antes de tudo, deixe-me dizer que, na minha opinião, a melhor ferramenta de todas é, de longe, o R, que possui toneladas de bibliotecas e utilitários que não vou enumerar aqui.
Deixe-me expandir a discussão sobre weka
Existe uma biblioteca para R, chamada RWeka, que você pode instalar facilmente no R e usar muitas das funcionalidades deste ótimo programa, além das do R, deixe-me dar um exemplo de código para fazer uma árvore de decisão simples leia de um banco de dados padrão que acompanha este pacote (também é muito fácil desenhar a árvore resultante, mas vou permitir que você faça uma pesquisa sobre como fazê-lo, que está na documentação do RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Existem também várias bibliotecas python para fazer isso (python é muito, muito fácil de aprender)
Primeiro, deixe-me enumerar os pacotes que você pode usar; não vou detalhar em detalhes; Weka (sim, você tem uma biblioteca para python), NLKT (o pacote de código aberto mais famoso para mineração de texto além de datamining), statPy , sickits e scipy.
Também há laranja, que é excelente (também falarei sobre isso mais adiante), aqui está um exemplo de código para fazer uma árvore a partir dos dados na tabela cmpart1, que também realiza validação de 10 dobras, você também pode representar graficamente a árvore
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
Para terminar com alguns outros pacotes que usei e achei interessantes
Laranja : visualização e análise de dados para iniciantes e especialistas. Mineração de dados por meio de programação visual ou script Python. Componentes para aprendizado de máquina. Extensões para bioinformática e mineração de texto. (Eu pessoalmente recomendo isso, usei muito integrando-o em python e foi excelente) Posso enviar um código python, se você quiser.
ROSETTA : kit de ferramentas para análise de dados tabulares dentro da estrutura da teoria dos conjuntos aproximados. O ROSETTA foi projetado para suportar o processo geral de mineração de dados e descoberta de conhecimento: desde a navegação inicial e pré-processamento dos dados, através do cálculo de conjuntos mínimos de atributos e geração de regras if-then ou padrões descritivos, até validação e análise das regras ou padrões induzidos (Isso também gostei muito de usar)
KEEL : avalie algoritmos evolutivos para problemas de mineração de dados, incluindo regressão, classificação, clustering, mineração de padrões e assim por diante. Ele nos permite realizar uma análise completa de qualquer modelo de aprendizado em comparação aos modelos existentes, incluindo um módulo de teste estatístico para comparação.
DataPlot : para visualização científica, análise estatística e modelagem não linear. O usuário alvo do Dataplot é o pesquisador e analista envolvido na caracterização, modelagem, visualização, análise, monitoramento e otimização de processos científicos e de engenharia.
Openstats : Inclui Primer de Estatística e Medição, Estatística Descritiva, Comparações Simples, Análises de Variância, Correlação, Regressão Múltipla, Séries Temporais Interrompidas, Estatísticas Multivariadas, Estatísticas Não Paramétricas, Medição, Controle Estatístico de Processo, Procedimentos Financeiros, Redes Neurais, Simulação
Colin Gillespie mencionou BUGS, mas uma opção melhor para Gibbs Sampling, etc, é JAGS .
Se tudo o que você quer fazer é ARIMA, não pode vencer o X12-ARIMA , que é um padrão-ouro em campo e código-fonte aberto. Ele não faz gráficos reais (eu uso R para fazer isso), mas o diagnóstico é uma lição por si só.
Se aventurando um pouco mais longe em algo que descobri recentemente e apenas comecei a aprender ...
O ADMB (AD Model Builder), que faz modelagem não linear com base na biblioteca AUTODIF, com o MCMC e alguns outros recursos ativados. Ele pré-processa e compila o modelo em um executável C ++ e o compila como um aplicativo independente, que é deve ser muito mais rápido que modelos equivalentes implementados em R, MATLAB, etc. Projeto ADMB
Começou e ainda é mais popular no mundo das pescas, mas parece bastante interessante para outros fins. Ele não possui gráficos ou outros recursos do R e provavelmente seria usado em conjunto com o R.
Se você deseja trabalhar com redes bayesianas em uma GUI: SamIam é uma boa ferramenta. O R tem alguns pacotes que também fazem isso, mas o SamIam é muito bom.
A GSL para aqueles que desejam programar em C / C ++ é um recurso valioso, pois fornece várias rotinas para geradores aleatórios, álgebra linear, etc. Embora a GSL esteja disponível principalmente para Linux, também existem portas para Windows. (Consulte: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php e http://david.geldreich.free.fr/dev.html )
Gosto muito de trabalhar com o RooFit para facilitar o ajuste adequado das distribuições de sinal e fundo e o TMVA para análises rápidas de componentes principais e modelagem de problemas multivariados com algumas ferramentas padrão (como algoritmos genéticos e redes neurais, também faz BDTs). Ambos fazem parte das bibliotecas ROOT C ++, que têm uma forte tendência a problemas de física de partículas.
Poucos mais além dos já mencionados:
E da perspectiva espacial:
Eu segundo que Jay. Por que R é valioso? Aqui está uma pequena lista de razões. http://www.inside-r.org/why-use-r . Verifique também o ggplot2 - um pacote gráfico muito bom para R. Alguns bons tutoriais aqui .
Isso cai nos limites externos da 'análise estatística', mas o Eureqa é um programa muito fácil de usar para relacionamentos não-lineares de mineração de dados em dados via programação genética. O Eureqa não é de uso geral, mas faz o que faz razoavelmente bem, e a GUI é bastante intuitiva. Também pode tirar proveito do poder de computação disponível através do servidor eureqa.
Meta.Numerics é uma biblioteca .NET com bom suporte para análise estatística.
Ao contrário de R (um clone S) e Octave (um clone do Matlab), ele não possui um "front end". É mais parecido com o GSL, pois é uma biblioteca à qual você vincula quando está escrevendo seu próprio aplicativo que precisa fazer análise estatística. C # e Visual Basic são linguagens de programação mais comuns que o C / C ++ para aplicativos de linha de negócios, e o Meta.Numerics tem um suporte mais amplo para construções e testes estatísticos do que o GSL.
O software de matemática simbólica também pode ser um bom suporte para estatísticas. Aqui estão alguns que eu uso periodicamente:
Todos os três estão em desenvolvimento ativo.