Quais são alguns projetos valiosos de código aberto da Análise Estatística?


69

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.


5
Poderia ser um garoto-propaganda para argumentativo e subjetivo. No mínimo, precisa definir 'valioso'.
Sharpie

2
Talvez o foco não deva ser "valioso", mas sim "prós" e "contras" de cada projeto?
Um leão

Ou talvez até "Como o X ajudará você a fazer o Y mais rápido / barato e a matar os germes que causam mau hálito".
Sharpie

Respostas:


88

O projeto R

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

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.


Sim, R é legal - mas POR QUE é 'valioso'?
Sharpie

11
É maduro, bem apoiada, e um padrão dentro de certas comunidades científicas (popular em nosso departamento de AI, por exemplo)
Menno

10
É extensível e não existe uma técnica estatística que não possa ser feita nela.
aL3xa

20

Para executar uma variedade de tarefas do MCMC em Python, existe o PyMC , do qual eu me utilizei bastante. Não encontrei nada que eu possa fazer no BUGS que não possa no PyMC, e a maneira como você especifica modelos e traz dados parece ser muito mais intuitiva para mim.


18

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!


4
Comentário verdadeiro. Mas como programador experiente, me sinto sujo toda vez que uso o Matlab / Octave, que é uma linguagem horrivelmente projetada (se é que foi projetada). É claro que também me encolho no SAS, que obviamente foi projetado para cartões perfurados.
19411 Wayne

11
@Wayne é verdade. Lembro-me de quando ouvi Bob Harper se referir à linguagem do Matlab como 'semanticamente suspeito';) Como em muitas línguas, porém, depois de usá-lo o suficiente, você aprende a lidar com suas esquisitices.
Shabbychef

17

Dois projetos vêm à mente:

  1. Erros - tirando (algumas das) dores das estatísticas bayesianas. Ele permite que o usuário se concentre mais no modelo e um pouco menos no MCMC.
  2. Biocondutor - talvez a ferramenta estatística mais popular em Bioinformática. Eu sei que é um repositório R, mas há um grande número de pessoas que querem aprender R, apenas para o Biocondutor. O número de pacotes disponíveis para análise de ponta torna-o inigualável.

11
Andrew Gelman tem uma biblioteca agradável R que liga bugs para R.
bshor

4
Eu reformularia que "a ferramenta estatística mais popular em bioinformática" ... Os bioinformaticistas que fazem análises de microarrays a usam extensivamente, sim. Mas a bioinformática não se limita a isso;)
Nicojo 19/07/10

15

Weka para mineração de dados - contém muitos algoritmos de classificação e clustering em Java.


como está o desempenho disso? (I correr gritando sempre que vejo a palavra 'Java' ...)
shabbychef

@shabbychef Parece muito bom com o que ouvi, mas geralmente o Weka é usado como um primeiro passo para testar vários algoritmos e analisar seu desempenho em determinados conjuntos de dados (ou um subconjunto deles), e então uma parte do programa principal é recodificada para otimizar sua eficiência (por exemplo, com dados de alta dimensão exigindo validação cruzada ou bootstraping), às vezes em C ou Python.
chl

2
@shabbychef: Os programas Java não precisam ser monstros lentos. Admito que o código C bem escrito quase sempre será mais rápido do que uma implementação semelhante em Java, mas o código Java bem escrito provavelmente não será muito lento. Além disso, o desenvolvimento em Java tem muitas vantagens significativas.
10382 posdef


14

O Incanter é uma plataforma tipo R (baseada em Clojure) (ambiente + bibliotecas) para computação e gráficos estatísticos.


Novamente, por que? Como convencer meu chefe a usar isso, digamos, no Excel.
Sharpie


11
chl

14

Também existem projetos iniciados pela FSF ou redistribuídos sob a Licença Pública Geral GNU, como:

  • PSPP , que pretende ser uma alternativa gratuita ao SPSS
  • GRETL , principalmente dedicado à regressão e econometria

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? :-)



9

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


8

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.



7

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.


7

Poucos mais além dos já mencionados:

  • KNIME junto com extensões de integração R, Python e Weka para mineração de dados
  • Mondrian para EDA rápida

E da perspectiva espacial:

  • GeoDa para EDA espacial e agrupamento de dados de área
  • SaTScan para agrupar dados de pontos

3
Como uma nota GeoDa e SatScan não são de código aberto, eles são freeware (não que isso faz muita diferença para me embora!)
Andy W

11
O pySal do GeoDa Center é de código aberto (veja abaixo)
b_dev


4

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.


3

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.



3

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:

  1. sympy é baseado em python e muito pequeno, mas ainda pode fazer muito: derivadas, integrais, somas simbólicas, combinatória, expansões de séries, manipulações de tensores, etc. Há um pacote R para chamar de R.
  2. sage é baseado em python e ENORME! Se o sympy não puder fazer o que você deseja, tente o sábio (mas não há versão nativa do Windows).
  3. maxima é baseado em lisp e muito clássico, com tamanho intermediário entre (1) e (2).

Todos os três estão em desenvolvimento ativo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.