Ruby come banco di lavoro per le statistiche


13

Questa è anche una domanda che si riferisce molto a Python come banco di lavoro delle statistiche ed eccellere come banco di lavoro delle statistiche . So che c'è una grande discussione su Ruby contro Python, ma questo non è il punto su questa domanda. Pensavo che il fatto che Ruby fosse più veloce di Python e avesse una sintassi molto naturale potrebbe aiutarmi a capire le statistiche e potrebbe anche essere una buona alternativa a R (che è anche di mio interesse ed è stato citato nell'altra mia domanda su R qui). Ad esempio, in una delle lezioni di Google Tech che ho visto (citata nella domanda collegata qui, l'istruttore si lamenta che R è lento durante la creazione di un ciclo for). Con Ruby c'è anche Rails, quindi forse ci sarebbe la possibilità di riunire entrambi (Python ha Django, ma di nuovo non ci sto pensando).

Quindi, la domanda è la stessa, ma per il mio interesse, in Ruby:

  • Cosa puoi consigliare se volessi usare Ruby come "banco di lavoro delle statistiche" per sostituire R, SPSS, Python, Excel ecc.?

  • Cosa avrei guadagnato e perso, in base alla tua esperienza?

Si noti che sto prendendo in considerazione questa domanda in base alla precedente domanda di Python ed Excel. Se ritieni che l'utilizzo di Ruby e Python (o Excel) avrebbe lo stesso impatto, ti preghiamo di dirlo e di indicare gli argomenti di qualsiasi domanda precedente, l'intento di questa domanda non è di replicare le domande precedenti per le stesse risposte. Tuttavia, credo che ci siano differenze (come la velocità della lingua e la sintassi), ma mi piacerebbe anche conoscere le raccomandazioni per Ruby o se c'è, ad esempio, molto meno disponibile per esso rispetto a dire per Python o Excel. Quindi, ti preghiamo di considerare le risposte precedenti per queste domande molto simili ma per altre lingue / programmi.

Modifica: solo per evidenziare poiché le risposte sembrano andare dall'altra parte, la risposta che stavo cercando è una come la risposta scelta alla domanda Python che ho collegato. Si tratta non di imparare le statistiche insieme a Ruby. Ho fatto il punto della questione imparare statistiche con R . Se è possibile fantastico, ma non mi aspetto di imparare le statistiche con Ruby allo stesso tempo. Puoi assumere lo sfondo delle statistiche per questa domanda.


grazie per la modifica! Ho notato che i miei ringraziamenti sono stati cancellati. È una cattiva idea ringraziare per le domande? (Vorrei solo confermare, nessun problema dalla mia parte - commenta un po 'fuori tema della domanda, ma non volevo iniziare una domanda su meta solo per questo).
Oeufcoque Penteano,

1
Le opinioni differiscono leggermente. Un breve "Grazie" alla fine di una domanda è comune, ma più di questo è generalmente considerato una distrazione non necessaria. È possibile trovare rapidamente indicazioni sul meta sito dell'intero sito, ad esempio la pagina Domande frequenti su SE .
whuber

Risposte:


9

Sto usando Ruby + R.

Puoi leggere l'articolo: RinRuby: Accesso all'interprete R da Pure Ruby

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

e questo blog:

http://rubyforscientificresearch.blogspot.com

http://sciruby.com/

(L'autore di sciruby è anche utente R.)


Grazie, la tua risposta va nella direzione che sto cercando. Ho notato che i riferimenti risalgono al 2009 e al 2011, mi chiedo se ci sia letteratura più recente su questo dato ruby ​​sia una lingua notevolmente nuova e in continua crescita? Immagino comunque che questo sia un buon punto di partenza. Bello che il blog consideri il rubino per la ricerca scientifica, che è esattamente il mio caso.
Oeufcoque Penteano,

Ciao, adoro il rubino e le rotaie. Adoro anche R. Puoi trovare rubygems Aumenta sempre di più. anche rubygems.org/stats R. 2003, R cran è 200, ora è 3600+ !!! nel 2011, la gemma Ruby è di 28000, ora è 36874 gemma! Puoi goderti Ruby + R: D
ouyang il

Ottimo punto sulle gemme di rubino, me ne sono dimenticato. Forse altre persone possono suggerire alcune gemme di rubini sulla questione dell'utilizzo di Ruby come banco da lavoro che sono ben noti per funzionare e sono robusti? Grazie per aver aggiunto una risposta su ciò che sto cercando di nuovo.
Oeufcoque Penteano,

4

RISPOSTA VECCHIA (PRE-EDIT):

Se pensi che imparerai le statistiche programmando tutto da solo, direi che sei in un lungo sorso pieno di debugging e non di apprendimento statistico. Inoltre, avrai bisogno di una lingua come R per controllare comunque le tue risposte.

Penso che user765195 abbia un punto in termini di R più difficile da eseguire il debug di molte altre lingue, il che è importante, ma "peggio"? Io non la penso così.

MODIFICARE:

Quindi, se posso riassumere il tuo EDIT: dato che fai già statistiche e dato che vuoi davvero usare Ruby per farlo invece di un vero programma statistico (R, gretl, SAS, ecc.), Come puoi semplificarti la vita . È giusto?

Non posso dare una risposta a Ruby, ma penso che anche la domanda generale debba essere affrontata. Tanto più che rimandi ad altre istanze della stessa domanda: "Vorrei usare Python / perl / java / Clojure / C / qualunque cosa per fare statistiche".

Penso che la risposta sarà sempre: "perché usare uno strumento generalizzato e primitivo (dal punto di vista statistico) per fare un lavoro che uno strumento specializzato fa molto meglio?" E posso vedere sei risposte di base:

  1. Semplicemente non voglio imparare un'altra lingua, e poiché sono esperto in Python / Ruby / Excel / Java, insisto per usare quella lingua.

  2. Le statistiche che voglio fare devono adattarsi a un progetto più ampio (come uno strumento basato sul web) e gli strumenti utilizzati da questo progetto non funzionano bene con strumenti esterni, quindi devo usare Python / Ruby / Java. (O potrebbe essere una questione di distribuzione di un'applicazione e non è possibile provare a distribuire eseguibili arbitrari.)

  3. Vorrei utilizzare uno strumento specializzato, ma quelli a cui ho accesso (diciamo R, che è gratuito) sono troppo lenti o non sono in grado di gestire gli enormi set di dati / requisiti in tempo reale per il mio progetto.

  4. Il mio datore di lavoro / cliente insiste sul fatto che uso il linguaggio generico Python / Ruby / Excel / Java. Non ho scelta e sto cercando il modo meno doloroso per seguire questo requisito.

  5. Per "statistica" intendo cose molto semplici come trovare mezzi / mediane, varianze, ecc. Perché inserire un pacchetto specializzato in grado di calcolare modelli a effetti misti tramite MCMC quando tutto ciò che voglio fare è calcolare quali punti sono al di fuori di 1-sigma lontano dalla media?

  6. Sto facendo qualcosa di molto specializzato, e per il quale anche i pacchetti statistici come R non hanno pacchetti / librerie / funzioni. Non è solo all'avanguardia, ma richiede prestazioni elevatissime e devo farlo da zero. (O forse usare le librerie che ho già sviluppato nel linguaggio X.)

A mio avviso, la risposta 1 non è buona, la risposta 2 potrebbe essere legittima, ma potrebbe avere soluzioni alternative di cui non sei a conoscenza, la risposta 3 è più probabile che sia legittima ma potrebbe anche avere soluzioni alternative e per le altre tre risposte , spero che otterrai una risposta migliore della mia.


L'obiettivo di questa domanda non è imparare le statistiche insieme a Ruby, per favore vedi la modifica, ma grazie per i tuoi pensieri e scusa se la domanda è fuorviante Spero che sia chiaro ora sulla modifica.
Oeufcoque Penteano,

Grazie, hai capito bene . Il presupposto della conoscenza statistica va bene, e ora sto cercando delle biblioteche per imparare a farlo in Ruby, come è stato suggerito per Python. Sono d'accordo con te, sono possibili molte motivazioni, ma di nuovo (solo per il bene dei prossimi lettori che si imbattono in questa pagina), la risposta prevista è quella che suggerisce biblioteche e come quelle menzionate sulla domanda di Python. Credo che se c'è spazio per molte opinioni diverse su quale strumento statistico utilizzare, è necessario anche rendere disponibili le conoscenze su di loro in questa comunità. Grazie!
Oeufcoque Penteano,

+1. Molto probabilmente, stiamo parlando di parole diverse scritte "statistiche". Le statistiche sull'utilizzo del sito Web che possono essere facilmente estratte dai registri utilizzando Python o Ruby sono un animale diverso rispetto a dover dover programmare il modello Cox o la varianza dello stimatore del rapporto di un totale basato su un rilevamento stratificato a due stadi utilizzando Ruby. (Bisognerebbe essere assolutamente disperati sulla falsariga delle risposte 2, 3 e 4 per pensare persino a Ruby come la lingua scelta.) Si possono integrare le loro statistiche di apprendimento con simulazioni in qualunque lingua sia la più conveniente, e quindi 1 è una risposta valida.
StasK,

@OeufcoquePenteano: Alla fine, penso che il mio problema si riduca a "banco di lavoro". La risposta vincente nel thread di Python è in realtà piuttosto spartana. Tutte le risorse elencate combinate non corrispondono nemmeno alla base R, tanto meno pensando ai pacchetti R. Se DEVI fare alcune statistiche in Python, hai alcune opzioni limitate, ma non dovresti essere confuso e pensare che Python sia un buon "banco di lavoro" statistico. Spero che tu abbia delle risposte, ma Ruby è anche peggio di Python.
Wayne,

@Wayne, va bene. Non ho intenzione di scambiare R con Ruby, Python o Excel. Ma sono curioso di sapere cosa ha da offrire Ruby. Forse poche gemme di Ruby sono migliori di alcune uova (è quell'uovo che chiamano Python? Non sono sicuro) e viceversa. Forse Excel è meglio per poche cose. Ad esempio, penso che Excel possa aiutare a fare alcune analisi molto superficiali e quindi a immergersi seriamente in R o altri strumenti. Quindi, non si tratta di "sceglierne uno", ma sapere cosa è meglio di ogni mondo e conoscerli, scegliere quello che è più appropriato per il problema dato. Grazie per il tuo consiglio.
Oeufcoque Penteano,

-1

Alcuni pensieri casuali:

  • Dici che stai cercando un banco di lavoro per imparare le statistiche. IMHO, nessuna delle piattaforme menzionate sarà utile per l'apprendimento delle statistiche. Ci sarà troppa distrazione, imparando la sintassi e la semantica della lingua specifica. Se vuoi imparare le statistiche, prendi semplicemente un libro (consiglio vivamente l'EDA di Tukey) e forse una calcolatrice. Imparare una lingua in cima a concetti statistici è una distrazione altamente inutile.
  • La persona che si lamenta dei loop lenti in R sta tradendo la sua ignoranza: i loop non sono un costrutto naturale in ogni lingua. Sono lenti nella maggior parte dei linguaggi di programmazione funzionale. L'alternativa è l'applicazione di funzioni, e di solito è veloce.
  • Quando si tratta di linguaggi di programmazione, la velocità dovrebbe essere la tua ultima preoccupazione. Un problema molto, molto più importante è la facilità di debug del codice.
  • Quando si tratta di debug, R è forse il peggior linguaggio di programmazione che conosco. A volte è impossibile eseguire il debug del codice. Inoltre, la documentazione per i pacchetti esistenti è generalmente scritta in modo molto scadente. Nel complesso, il mio consiglio è, se puoi evitare R, fallo.
  • Conosco solo marginalmente il contenuto statistico di Python. La mia comprensione è che NumPy non è davvero scritto professionalmente e non tiene conto delle questioni numeriche.
  • Hai considerato Haskell? È sicuramente il miglior linguaggio di programmazione là fuori.

Ciao! Grazie per la tua opinione Sono felice di vedere un'opinione diversa nei confronti di R. Prenderò in considerazione anche quello che stai dicendo, poiché sto anche esaminando altri strumenti non menzionati qui. Forse la mia domanda era fuorviante. Sto ancora imparando le statistiche, e in effetti la mia domanda su R era su questo, ma per Ruby è qualcosa di diverso. Sono curioso di vedere cosa è disponibile per Ruby come banco di lavoro in quanto è disponibile per Python ed Excel. Prenderò in considerazione anche di esaminare Haskell, ma se hai qualche suggerimento su Ruby, lo apprezzerei anche! Grazie!
Oeufcoque Penteano,

Haskell per le statistiche? Parla di una distrazione inutile ...
Phillip Cloud,

-1, impossibile eseguire il debug del codice in r?
mpiktas,

Dovrei notare che solo il paragrafo sul debug in R non è giusto in questa risposta. Tutto il resto sembra meritare un voto. Tranne Haskell, che non ho alcuna esperienza. Ma la nota sul debug è perfetta.
mpiktas,

1
@cpcloud: il linguaggio della matematica e della statistica è lambda-calcolo. Haskell non è altro che lambda-calcolo. I costrutti matematici sono espressi in Haskell esattamente allo stesso modo in cui sono scritti in un libro di matematica. Per questo motivo, l'overhead della lingua è quasi zero. In effetti, il libro "The Haskell Road to Logic" insegna matematica usando Haskell. Ti suggerisco di dare un'occhiata a quel libro.
user765195
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.