Ruby como bancada de estatística

13

Essa também é uma questão que se relaciona muito com o Python como bancada de estatística e o Excel como bancada de estatística . Eu sei que há uma enorme discussão sobre Ruby versus Python, mas este não é o ponto nesta questão. Eu pensei que Ruby ser mais rápido que Python e ter uma sintaxe muito natural poderia me beneficiar na compreensão de estatísticas e também poderia ser uma boa alternativa para R (que também é do meu interesse e foi citada na minha outra pergunta em R aqui) Por exemplo, em uma das palestras do Google Tech que eu já vi (citada na pergunta vinculada aqui, o instrutor reclama que R é lento ao criar um loop for). Com o Ruby, há também o Rails, então talvez haja a possibilidade de reunir os dois também (o Python tem Django, mas, novamente, não vou entrar nisso).

Então, a pergunta permanece a mesma, mas para o meu interesse, em Ruby:

  • O que você pode recomendar se eu quiser usar o Ruby como uma "bancada de estatísticas" para substituir R, SPSS, Python, Excel etc.?

  • O que eu ganharia e perderia, com base na sua experiência?

Observe que estou considerando esta questão com base na pergunta anterior sobre Python e Excel. Se você acredita que o uso de Ruby e Python (ou Excel) teria o mesmo impacto, diga-o e aponte para os argumentos de qualquer pergunta anterior, o objetivo desta pergunta não é replicar as perguntas anteriores para as mesmas respostas. No entanto, acredito que existem diferenças (como a velocidade do idioma e a sintaxe), mas também gostaria de saber especialmente as recomendações para Ruby ou, se houver, por exemplo, muito menos disponível do que dizer para Python ou Excel. Portanto, considere as respostas anteriores para essas perguntas muito semelhantes, mas para outro idioma / programa.

Edit: Apenas para destacar, uma vez que as respostas parecem estar indo para o outro lado, a resposta que eu estava procurando é uma resposta como a resposta escolhida na pergunta em Python à qual me vinculei. É não sobre a aprendizagem de estatísticas juntamente com Ruby. Fiz ponto à pergunta aprender estatísticas com R . Se for possível, ótimo, mas não estou esperando aprender estatísticas com Ruby ao mesmo tempo. Você pode assumir o histórico de estatísticas para esta pergunta.

Oeufcoque Penteano
fonte
obrigado pela edição! Percebo que meus agradecimentos foram aniquilados. É uma má idéia dizer obrigado pelas perguntas? (Gostaria apenas de confirmar, não há nenhum problema do meu lado - comente um pouco sobre o assunto da pergunta, mas eu não queria iniciar uma pergunta sobre a meta apenas por isso).
Oeufcoque Penteano
1
As opiniões diferem um pouco. Um breve "obrigado" no final de uma pergunta é comum, mas mais do que isso geralmente é considerado uma distração desnecessária. Você pode encontrar rapidamente orientações no meta site em todo o site, como na página de Perguntas frequentes do SE .
whuber

Respostas:

9

Estou usando Ruby + R.

Você pode ler o artigo: RinRuby: Acessando o intérprete R no Pure Ruby

http://www.jstatsoft.org/v29/i04/paper

e este blog:

http://rubyforscientificresearch.blogspot.com

http://sciruby.com/

(o autor do sciruby também é usuário R.)

ouyang
fonte
Obrigado, sua resposta vai na direção do que estou procurando. Percebi que as referências datam de 2009 e 2011, e me pergunto se há literatura mais recente sobre esse dado ruby. É uma nova linguagem considerável e sempre crescente? Ainda assim, acho que esse é um bom ponto de partida. É bom que o blog considere ruby ​​para pesquisas científicas, o que exatamente é o meu caso.
Oeufcoque Penteano
Oi, eu amo rubi e trilhos. Eu amo R também. Você pode encontrar rubygems Aumente cada vez mais. rubygems.org/stats R também também. 2003, R cran é 200, agora é 3600+ !!! em 2011, a jóia Ruby é 28000, agora é 36874 jóia! Você pode desfrutar de Ruby + R: D
ouyang
Ótimo ponto sobre as gemas de rubi, eu esqueci delas. Talvez outras pessoas possam sugerir poucas gemas de rubi sobre o uso do Ruby como uma bancada de trabalho que são conhecidas por funcionar e são robustas? Obrigado por adicionar uma resposta sobre o que estou procurando novamente.
Oeufcoque Penteano
4

RESPOSTA ANTIGA (PRÉ-EDIÇÃO):

Se você acha que aprenderá estatística programando tudo sozinho, eu diria que você está envolvido em uma longa jornada cheia de depuração e não aprendizado estatístico. Além disso, você precisará de um idioma como R para verificar suas respostas de qualquer maneira.

Acho que o user765195 tem razão em termos de R ser mais difícil de depurar do que em muitos outros idiomas, o que é importante, mas "pior"? Acho que não.

EDITAR:

Portanto, se eu puder resumir sua EDIT: considerando que você já faz estatísticas e que realmente deseja usar Ruby para fazê-lo em vez de um programa estatístico real (R, Gretl, SAS, etc), como você pode facilitar sua vida . Isso está certo?

Não posso responder Ruby, mas acho que a questão geral também deve ser abordada. Especialmente porque você está apontando para outras instanciações da mesma pergunta: "Gostaria de usar o Python / perl / java / Clojure / C / o que quer que seja para fazer estatísticas".

Penso que a resposta será sempre: "por que usar uma ferramenta generalizada e primitiva (em termos estatísticos) para fazer um trabalho que uma ferramenta especializada faz muito melhor?" E eu posso ver seis respostas básicas:

  1. Simplesmente não quero aprender outro idioma e, como sou versado em Python / Ruby / Excel / Java, insisto em usá-lo.

  2. As estatísticas que eu quero fazer precisam se encaixar em um projeto maior (como uma ferramenta baseada na Web) e as ferramentas usadas por esse projeto não funcionam bem com ferramentas externas, por isso tenho que usar Python / Ruby / Java. (Ou pode ser uma questão de implantar um aplicativo e não é possível tentar implantar executáveis ​​arbitrários.)

  3. Eu usaria uma ferramenta especializada, mas as que tenho acesso (por exemplo, R, que é gratuito) são muito lentas ou não conseguem lidar com os enormes conjuntos de dados / requisitos em tempo real do meu projeto.

  4. Meu empregador / cliente insiste em usar a linguagem de uso geral Python / Ruby / Excel / Java. Não tenho escolha e estou procurando a maneira menos dolorosa de seguir esse requisito.

  5. Por "estatísticas", quero dizer coisas muito simples, como encontrar meios / medianas, variações, etc. Por que usar um pacote especializado que pode calcular modelos de efeitos mistos via MCMC quando tudo que eu quero fazer é calcular quais pontos estão fora do 1-sigma longe da média?

  6. Estou fazendo algo muito especializado e para o qual até pacotes estatísticos como R não possuem pacotes / bibliotecas / funções. Não é apenas de ponta, mas requer um desempenho super-alto, e eu preciso fazê-lo do zero. (Ou talvez use bibliotecas que já desenvolvi na linguagem X.)

Na minha opinião, a resposta 1 não é boa, a resposta 2 pode ser legítima, mas pode ter soluções alternativas que você não conhece, a resposta 3 é mais provável que seja legítima, mas também pode ter soluções alternativas, e para as outras três respostas , espero que você obtenha uma resposta melhor que a minha.

Wayne
fonte
O objetivo nesta pergunta não é aprender estatísticas junto com o ruby, consulte a edição, mas obrigado por seus pensamentos e desculpe se a pergunta é enganosa. Espero que esteja claro agora na edição.
Oeufcoque Penteano
Obrigado, você entendeu certo . A suposição sobre o conhecimento estatístico é boa, e agora estou procurando nas bibliotecas para aprender como fazer isso no Ruby, como foi sugerido para o Python. Eu concordo com você, muitas motivações são possíveis, mas, novamente (apenas pelo bem dos próximos leitores que se deparam com esta página), a resposta esperada é aquela que sugere bibliotecas e outras mencionadas na pergunta do Python. Acredito que, se houver espaço para muitas opiniões diferentes sobre qual ferramenta estatística usar, também haverá para disponibilizar conhecimento sobre elas nessa comunidade. Obrigado!
Oeufcoque Penteano 06/04/12
+1. Provavelmente, estamos falando de palavras diferentes escritas "estatísticas". As estatísticas de uso do site que podem ser facilmente extraídas dos logs usando Python ou Ruby são um animal diferente do que dizer que é necessário programar o modelo Cox ou a variação do estimador de razão de um total com base em uma pesquisa estratificada em duas etapas usando Ruby. (É preciso estar absolutamente desesperado, seguindo as linhas de suas respostas 2, 3 e 4, até pensar em Ruby como o idioma de escolha.) É possível suplementar as estatísticas de aprendizado com simulações no idioma que for mais conveniente, e então 1 é uma resposta válida.
StasK 06/04/12
@OeufcoquePenteano: No final, acho que meu problema se resume a "bancada". A resposta vencedora no segmento Python é realmente bastante espartana. Todos os recursos listados combinados nem sequer correspondem à base R, muito menos pensando nos pacotes R. Se você precisa fazer algumas estatísticas no Python, você tem algumas opções limitadas, mas não se deve confundir e pensar que o Python cria um bom "ambiente de trabalho" estatístico. Espero que você obtenha algumas respostas, mas Ruby é ainda pior do que Python.
317 Wayne
@Wayne, tudo bem. Não estou planejando trocar R por Ruby, Python ou Excel. Mas estou curioso para saber o que Ruby tem a oferecer. Talvez poucas gemas de Ruby sejam melhores que certos ovos (é o ovo que eles chamam de Python? Não tenho certeza) e vice-versa. Talvez o Excel seja melhor para algumas coisas. Por exemplo, acho que o Excel poderia ajudar a fazer uma análise muito superficial e depois aprofundar seriamente o R ou outra ferramenta. Portanto, não é uma questão de 'escolher um', mas conhecer o que há de melhor em cada mundo e conhecê-los, escolher o que é mais apropriado para o problema em questão. Obrigada pelo Conselho.
Oeufcoque Penteano
-1

Alguns pensamentos aleatórios:

  • Você menciona que está procurando um ambiente de trabalho para aprender estatísticas. IMHO, nenhuma das plataformas mencionadas será boa para aprender estatísticas. Haverá muita distração, aprendendo a sintaxe e a semântica do idioma específico. Se você quiser aprender estatística, basta pegar um livro (eu recomendo a EDA de Tukey) e talvez uma calculadora. Aprender um idioma sobre conceitos estatísticos é uma distração altamente desnecessária.
  • A pessoa que reclama de loops lentos em R está traindo sua ignorância: os loops não são uma construção natural em todas as línguas. Eles são lentos na maioria das linguagens de programação funcionais. A alternativa é a aplicação de funções, e isso geralmente é rápido.
  • Quando se trata de linguagens de programação, a velocidade deve ser sua última preocupação. Uma questão muito, muito mais importante, é a facilidade de depurar o código.
  • Quando se trata de depuração, R é talvez a pior linguagem de programação que eu conheço. Às vezes, é impossível depurar o código. Além disso, a documentação dos pacotes existentes geralmente é muito mal escrita. No geral, meu conselho é: se você puder evitar o R, faça-o.
  • Estou familiarizado apenas com o conteúdo estatístico do Python. Meu entendimento é que o NumPy não é realmente escrito profissionalmente e não leva em consideração questões numéricas.
  • Você já considerou Haskell? É definitivamente a melhor linguagem de programação existente.
user765195
fonte
Olá! Obrigado por sua opinião. Fico feliz em ver uma opinião diferente contra a R. Também levarei em consideração o que você está dizendo, pois também estou procurando outras ferramentas não mencionadas aqui. Talvez minha pergunta fosse enganosa. Ainda estou aprendendo estatísticas e, de fato, minha pergunta sobre R era sobre isso, mas para Ruby é algo diferente. Estou curioso para ver o que está disponível para o ruby ​​como uma bancada de trabalho, como está disponível para python e excel. Também considerarei investigar Haskell, mas se você tiver alguma sugestão sobre Ruby, também agradeceria! Obrigado!
Oeufcoque Penteano
Haskell para estatísticas? Fale sobre uma distração desnecessária ...
Phillip Nuvem
-1, impossível de depurar código em r?
precisa saber é o seguinte
Devo observar que apenas o parágrafo sobre depuração em R não está correto nesta resposta. Tudo o resto parece merecer um voto positivo. Exceto Haskell, que não tenho nenhuma experiência. Mas a nota sobre depuração está no local.
precisa saber é o seguinte
1
@cpcloud: A linguagem da matemática e da estatística é lambda-calculus. Haskell não passa de um cálculo lambda. As construções matemáticas são expressas em Haskell exatamente da mesma maneira que são escritas em um livro de matemática. Por esse motivo, a sobrecarga do idioma é quase zero. De fato, o livro "The Haskell Road to Logic" ensina matemática usando Haskell. Eu sugiro que você dê uma olhada nesse livro.
precisa saber é o seguinte