Quali vantaggi e svantaggi ha R rispetto a Stata, ovvero qual è la capacità di R di mettere insieme rapidamente unimmagine dello sviluppo di unazienda, paese, città o altri macro-dati rispetto alla capacità di Strata di fare lo stesso?

Migliore risposta

Sono passato da stata a R. Ecco le mie osservazioni:

Vantaggi:

  • R è open source, avrai accesso ad alcuni algoritmi o software davvero interessanti che le persone hanno scritto per problemi di nicchia.
  • R ha visualizzazioni migliori. Una volta che hai una buona padronanza di ggplot2, puoi farlo cose piuttosto sorprendenti con quasi tutti i tipi di dati.
  • Ho trovato R più semplice per scrivere pacchetti e funzioni personalizzati.
  • R è più vicino alla comunità di stats / machine learning, quindi troverai più supporto / pacchetti di stata.
  • Adoro RStudio Gui, specialmente quando lavori su un server.
  • R fornisce un migliore supporto Latex.
  • R ha una comunità molto attiva e liste di aiuto – sono stati incredibilmente veloci nel supportare tutte le mie domande.
  • R funziona con i Big Data! Il pacchetto RHadoop ti consente di scrivere script MapReduce personalizzati utilizzando le funzioni R. Se hai a che fare con big data e puoi usare solo Stata, sei fottuto.
  • Tendono ad essere molti più “hack” in R per problemi complicati come analisi di rete, bootstrap personalizzati, ecc. Non appena ti allontani dalle implementazioni vanilla, ho spesso trovato funzioni di scelta rapida nelle procedure in R mentre in Stata devi spesso codificare per uscire.

Svantaggi:

  • R è open source, potresti dover aspettare un po per avere accesso a nuovi algoritmi se non cè sviluppo attivo.
  • Stata è molto più vicino alla comunità delleconometria e ha molti più algoritmi, pacchetti e implementazioni di R. Se sei un economista, sarai frustrato dalla mancanza di completezza dei pacchetti econometrici.
  • Stata ha una grande GUI che ti permette di scegliere in modo interattivo la procedura che vuoi eseguire e riempie la maggior parte dei dettagli per te. Questo è fantastico quando usi una funzione che non hai mai usato prima. R non ha davvero questo – Mi sento come se quando uso RI lo trovo su Google per la metà del tempo.
  • Stata è più veloce di R [1].
  • Scaricare i moduli di stata è un Processo molto più snello. Per i moduli R in CRAN di solito non ci sono problemi (anche se ho avuto problemi quando utilizzo una macchina Centos), ma ci sono diversi pacchetti essenziali che non sono su CRAN.
  • La visualizzazione e la stampa standard di Stata sono molto migliori di R.
  • Stata ha una guida standard migliore: mi sento come se potessi leggere la guida su qualsiasi funzione e capire esattamente cosa è necessario, mentre io non mi sento così per molti pacchetti R che sono scarsamente documentati.
  • R ha una sintassi “WTF” e una struttura di denominazione dei pacchetti. La maggior parte dei progetti open source lo fa. Mi manca la semplicità delle funzioni stata (reg, lm, ecc.).

[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html

Risposta

In generale, quando trovo lavverbio ” ovviamente “in una frase, trovo dopo di essa qualche dichiarazione ingiustificata. Qui, non sono daccordo con la tua affermazione che R ha “una sintassi bizzarra”. Ogni programmatore istruito preferirebbe programmare in Haskell o in qualche Lisp, ma il fatto è che questi linguaggi non raggiungeranno mai un vasto pubblico. R è un Lisp allinterno (ad esempio, puoi effettivamente codificare sul linguaggio in R, ma non in Python), ma è abbastanza vicino a un linguaggio scientifico allesterno. Infatti, come noti, come linguaggio per lanalisi dei dati , R è davvero il linguaggio più naturale ed elegante in circolazione. Se vuoi una prova di ciò, controlla lattività che circonda Python e Julia: implementazione di frame di dati (panda e data.frame in Jlia), formule (patsy), plyr (panda). Eppure tutte queste caratteristiche sembrano ancora un po innestate nelle altre lingue. Ciò che le persone percepiscono come “bizzarro” o “traballante” è o il risultato di una concessione alluso interattivo (ad esempio, la caduta della dimensione) o delleredità funzionale del linguaggio.

Sono daccordo che R ha molti aree da migliorare, ma soprattutto non nella sintassi del linguaggio. Certo, le sue convenzioni di denominazione sono incoerenti; la velocità e la gestione della memoria sono problemi noti; e così via. Perché? Alcuni motivi:

  1. La direttiva primaria di R (secondo il suo creatore, John Chambers) è produrre software affidabile. R attribuisce grande valore alla precisione e allaffidabilità. Le sue funzioni statistiche principali sono di primordine; anche il suo sistema grafico di base è stato attentamente studiato, dal binning degli istogrammi (problema non banale!) al posizionamento del testo. La velocità non è mai stata una grande preoccupazione, ed è giusto che sia così. Se la velocità e lefficienza della memoria fossero il problema, dovremmo tutti codificare in FORTRAN, che è anche facile e di alto livello. Il codice sorgente di R base è breve (400.000 LOC; a confronto, Numpy da solo ha le stesse dimensioni) e molto leggibile. Codice comprensibile e affidabile.
  2. Splus e R sono stati concepiti negli anni 80 e 90, ben prima dellera dei “big data” e dellascesa del machine learning. Ma R è migliorato. La gestione della memoria è molto migliore, probabilmente superiore a quella di MATLAB. Ha ancora molta strada da fare, ma alcune cose possono essere migliorate (ad esempio, la rappresentazione interna dei dati).
  3. Il team di sviluppo principale ha un turnover minimo e i giovani programmatori di 15 anni fa hanno ora 50 anni. Inoltre, sono molto meno coinvolti con la comunità e comprendono un personaggio pittoresco / mitico come Brian Ripley: un professore di Oxford responsabile del 70\% + dei commit, e non la persona più amichevole del pianeta e nelle mailing list R.
  4. R sta chiedendo un veloce compilatore JIT mirato a LLVM, ma queste cose non accadono dalloggi al domani. Hai bisogno di un team di programmatori eccezionali e istruiti con conoscenza del design di compilatori e interpreti, una forte etica del lavoro (per lanciare un prodotto in un paio danni) e lumiltà di reimplementare un linguaggio esistente invece di creare il proprio progetto vanity. Inoltre, vedi # 3.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *