Il linguaggio R è affidabile per il settore economico?


64

Sono uno studente laureato in economia che si è recentemente convertito in R da altri pacchetti statistici molto noti (stavo usando principalmente SPSS). Il mio piccolo problema al momento è che sono l'unico utente R della mia classe. I miei compagni di classe usano Stata e Gauss e uno dei miei professori ha persino affermato che R è perfetto per l'ingegneria, ma non per l'economia. Ha detto che molti pacchetti sono creati da persone che sanno molto sulla programmazione, ma non molto sull'economia e quindi non sono affidabili. Ha anche menzionato il fatto che dal momento che non è effettivamente coinvolto denaro nella costruzione di un pacchetto R, non vi è quindi alcun incentivo a farlo correttamente (diversamente da Stata per esempio) e che ha usato R per un certo periodo e ha ottenuto risultati "ridicoli" in i suoi tentativi di stimare alcune cose. Inoltre, si è lamentato del suo generatore di numeri casuali in R che ha detto che era "

Sto usando R da poco più di un mese e devo dire che me ne sono innamorato. Tutta questa roba che sto ascoltando dal mio professore mi sta solo scoraggiando.

Quindi la mia domanda è: "R è affidabile per il settore economico?".


30
"molti pacchetti sono creati da persone che sanno molto sulla programmazione, ma non molto sull'economia". Gli autori dei pacchetti sono praticamente sempre scienziati o accademici per primi e programmatori un (molto) distante (ultimo) secondo. In realtà, penso che sarebbe una sfida trovare un pacchetto creato da un "programmatore".
Brandon Bertelsen il

9
Posso invitare voi e i nostri altri economisti delle statistiche a economics.stackexchange.com - saremo lieti di
ricevere le

18
Sembra che ci sia anche un po 'di sciovinismo professionale nei commenti del tuo professore. In che modo essere economisti è una garanzia di affidabilità? Avevo piuttosto fiducia negli sviluppatori di software (in realtà è una professione, non qualcosa che nessuno può fare bene senza una particolare esperienza o formazione) e statistici per produrre software statistico affidabile.
Gala

23
"Perfetto per l'ingegneria ma non per l'economia" a causa dell'affidabilità? Preferirebbe che un grattacielo collassasse piuttosto che un'economia? L'uomo è un idiota. Abbandona quella scuola e trova uno che non è composto da idioti.
Spacedman

10
Il software commerciale può essere buono o cattivo. Il software open source può essere buono o cattivo. Ciò che conta è se il software che usi sia o meno buono. Non deciderlo in base al pregiudizio e al dogma. Usa prove reali.
David Heffernan,

Risposte:


83

Vorrei condividere un punto di vista contrastante. Sono un economista. Sono stato addestrato in econometria usando SAS. Lavoro nei servizi finanziari e proprio stasera ho aggiornato i modelli basati su R che utilizzeremo domani per mettere a rischio milioni di dollari.

Il tuo professore ha semplicemente torto. Ma l'errore che sta facendo è MOLTO comune e vale la pena discutere. Quello che il tuo professore sembra fare è mescolare l'idea del software R (l'implementazione GNU del linguaggio S) rispetto ai pacchetti (o altro codice) implementati in R. Posso scrivere implementazioni di merda di una regressione lineare usando SAS IML. È un dato di fatto, ho fatto proprio quella cosa. Significa che SAS è una schifezza? Ovviamente no. SAS è una schifezza perché i loro prezzi non sono trasparenti, assurdamente costosi e i loro consulenti interni più che promettenti, sottoconsegnati e addebitano un premio per il piacere. Ma sto divagando ...

L'apertura di R è un'arma a doppio taglio: Openness consente a Tom, Dick o Harry di scrivere un'implementazione di merda di qualsiasi algoritmo che pensano mentre fumano erba nel seminterrato dell'edificio economico. La stessa apertura consente agli economisti praticanti di condividere apertamente il codice e di migliorare il reciproco codice. Le regole di licenza con R significano che posso scrivere codice di parallelizzazione per eseguire R in parallelo sul cloud di Amazon e non dovermi preoccupare delle commissioni di licenza per un cluster di 30 nodi. Questa è una GRANDE vittoria per l'analisi basata sulla simulazione che è una grande parte di ciò che faccio.

Il commento del tuo professore secondo cui "molti pacchetti sono creati da persone che sanno molto sulla programmazione, ma non molto sull'economia" è senza dubbio corretto. Ma ci sono 3716 pacchetti su CRAN. Puoi essere dannatamente sicuro che molti di loro non sono stati scritti da economisti. Allo stesso modo in cui si può essere certi che molti dei 105.089 moduli in CPAN non siano stati scritti da economisti.

Scegli il tuo software con attenzione. Assicurati di aver compreso e di aver testato gli strumenti che stai utilizzando. Assicurati anche di comprendere la vera economia dietro la quale attuazione hai scelto. Essere bloccati in una soluzione software chiusa è più costoso delle sole spese di licenza.


Grazie per la vostra risposta. Quindi mi stai suggerendo di provare a imparare qualcos'altro? Cosa suggeriresti allora di imparare?
Salvato da Gesù il

5
No, uso R quasi completamente. Ci sono alcuni pacchetti che il tuo professore o altri economisti usano molto? Non utilizzo pacchetti specifici per econ. Uso plyr, matrix e molti altri pacchetti, ma nessuno è progettato unicamente per gli economisti.
JD Long

Quindi ti riferivi ai "pacchetti" e hai detto che non avrei dovuto essere bloccato in una soluzione software chiusa?
Salvato da GESÙ il

3
"L'apertura consente a qualsiasi Tom, Dick o Harry di scrivere un'implementazione di merda di qualsiasi algoritmo" - questo non ha nulla a che fare con l'apertura, è semplicemente il risultato di avere un'API pubblica, che molti prodotti a sorgente chiuso hanno (cioè qualsiasi proprietario software con interfaccia plug-in). Buona risposta però.
naught101

3
"Non esiste ora, né c'è mai stato, né ci sarà mai, alcun linguaggio di programmazione in cui sia meno difficile scrivere un codice errato."
Ardave,

33

Non è più o meno affidabile di altri software. La base e raccomandata R è probabilmente meno soggetta a errori di quanto potrebbero essere i pacchetti forniti, ma dipende dagli autori.

Ma il più grande vantaggio di R è che puoi controllarti se lo è! È un software gratuito, non come Stata o SPSS o simili. Quindi, anche se fosse inaffidabile, alla fine verrebbe rilevato. Questo potrebbe non essere il caso del software proprietario. E puoi anche aiutare a renderlo più affidabile.

Per il resto dei commenti del tuo professore, ha chiaramente torto e una persona che diffonde FUD. Ma permettetemi di dire che il software inaffidabile dovrebbe essere il minimo delle preoccupazioni degli economisti a giudicare dai modelli e dalle ipotesi utilizzate e dalle previsioni fatte in questo campo.

Resta con R se ti piace e forse tu e il professore potete persino contribuire allo sviluppo di un buon software per l'economia. Ecco un punto di partenza forse interessante http://cran.r-project.org/web/views/Econometrics.html e http://cran.r-project.org/web/views/TimeSeries.html


1
Grazie mille! Voglio davvero restare con R. Penso che sia un ottimo software. Inoltre, sono sempre stato un grande fan dell'open source.
Salvato da GESÙ il

17
+1 per aver dichiarato una sfortunata verità del nostro tempo. "il software inaffidabile dovrebbe essere il minimo degli interessi degli economisti a giudicare dai modelli e dai presupposti utilizzati e dalle previsioni fatte in questo campo."
digitalmaps

2
Apprezzo il tono ironico qui, ma è possibile un certo disaccordo. Gli errori nel software proprietario possono essere mostrati in vari modi, ad esempio se c'è un chiaro disaccordo con risultati in R che sembrano totalmente corretti. C'è del FUD sul software proprietario che è inappropriato tanto quanto il FUD sciocco su R. La verificabilità in R è la verificabilità in linea di principio per praticamente tutti gli utenti R; è una caratteristica che esiste, ma dire che puoi controllare tu stesso il codice è un po 'retorico. Si noti che per Stata gran parte del codice è visibile agli utenti; è solo l'eseguibile che non lo è.
Nick Cox,

23

Il tuo professore fa alcune affermazioni audaci. Ho il sospetto che il problema fosse la familiarità con il linguaggio R, non i risultati effettivi prodotti. Lavoro in un'azienda che fa molta modellazione econometrica e facciamo tutto in R. Ho anche convertito il mio collega economista ad usare R.

Per quanto riguarda il campo dell'economia nella mia esperienza personale, la questione dell'affidabilità potrebbe andare diversamente. Ad esempio, EVIEWS versione 5 presentava alcuni strani bug quando si lavora con i dati del pannello. E ha riportato la solita statistica di Durbin-Watson per OLS in pool, che nelle impostazioni dei dati del pannello è chiaramente sbagliata. Anche il pacchetto R per lavorare con i dati del pannello ha i suoi problemi, ma l'argomento denaro qui gioca fortemente a favore di R.

Recentemente sono stato in corso su metodi di serie temporali non stazionari. Il docente ha utilizzato il software RATS. Durante la dimostrazione del codice, ha consigliato di fare clic su un'icona che pulisce più volte lo spazio di lavoro, per ogni evenienza. Parla di affidabilità.


20

Sono un economista e lavoro nella ricerca da 4 anni, principalmente facendo econometria applicata. Ci sono molti pacchetti di econometria là fuori e c'è spazio per tutti. Dal mio punto di vista, in economia, Stata è usato per quasi tutto, tranne serie temporali, Rats, Eviews e Ox sono usati per le serie storiche, Matlab e Gauss sono usati per una programmazione di livello più basso.

Il vantaggio di R è che è in grado di fare quasi tutto quello che fanno gli altri programmi, ed è gratuito e aperto. Richiede un po 'più di programmazione e ha meno procedure fisse, ma alla fine riesce a fare le cose. Uso Stata il più delle volte, ma se dovessi scegliere un software per fare tutto, sceglierei R.

R è abbastanza affidabile sulla maggior parte dei problemi di econometria, ma posso fornire esempi di alcune routine scritte per R che non sono affidabili. Ho avuto problemi con 3SLS e ho richiesto routine di stima del sistema. Le routine di ottimizzazione numerica non sono così robuste come in Stata o Gauss. D'altra parte, R è molto meglio in problemi come la regressione quantile. Tuttavia, con una buona conoscenza operativa di R, puoi scoprire qual è il problema nelle routine scritte dall'utente di R, risolverlo e continuare a lavorare. Quindi non credo che la mancanza di affidabilità in alcune routine specifiche sia una ragione convincente per non usare affatto R.

Il mio consiglio sarebbe di continuare a usare R ma di avere esperienza su altri programmi ampiamente utilizzati nel vostro campo, ad esempio Stata per microeconometria o Ratti per serie storiche.


13

Quando insegnavo statistiche di livello universitario, dicevo ai miei studenti: "Non mi interessa quale pacchetto utilizzi e puoi usare qualsiasi cosa per i compiti, poiché mi aspetto che tu fornisca spiegazioni sostanziali e prenderò spunto se io vedere tr23y5mnomi variabili nei tuoi invii. Posso supportare il tuo apprendimento molto bene in Stata, e ragionevolmente bene, in R. Con SAS, sei da solo, poiché affermi di aver seguito un corso. Con SPSS o Minitab, Dio ti benedica ". Immagino che i ragionevoli datori di lavoro la pensino allo stesso modo. Ciò che conta è la tua produttività in termini di risultati del progetto. Se riesci a raggiungere l'obiettivo in R con 40 ore di lavoro, bene; se puoi ottenerlo in C ++ in 40 ore di lavoro, bene; se sai come farlo in R in 40 ore, ma il tuo supervisore vuole che tu lo faccia in SAS e devi dedicare 60 ore solo per imparare alcune nozioni di base e dove vanno i punti e virgola, che può essere saggio solo nel contesto del quadro generale del resto del codice in SAS ... e quindi il gestore non era molto saggio nell'assumere un programmatore R.

Da questa prospettiva del costo totale, la "libera" R è un mito enormemente esagerato. Qualsiasi progetto serio richiede un codice personalizzato, anche solo per l'input dei dati e la formattazione dell'output, e questo è un costo diverso da zero del tempo professionale. Se questi dati di input e formattazione richiedono 10 ore di codice SAS e 20 ore di codice R, R è un software più costoso a margine , come direbbe un economista, vale a dire in termini di costi aggiuntivi per produrre una determinata funzionalità . Se un grande progetto richiede 200 ore di tempo del programmatore R e 100 ore di tempo del programmatore Stata per fornire funzionalità identiche, Stata è complessivamente più economica, anche tenendo conto della licenza ~ $ 1K che è necessario acquistare. Sarebbe interessante vedere simili confronti diretti; Sono stato coinvolto nella riscrittura di un enorme casino di 2 Mb di codice SPSS che si diceva fosse stato accumulato in circa 10 anni-persona in ~ 150K di codice Stata che correvano più velocemente, potrebbe essere un po 'più veloce; era un progetto di circa 1 persona all'anno. Non so se questo rapporto di efficienza 10: 1 sia tipico per SPSS: confronti tra stati, ma non mi sorprenderebbe. Per me, lavorare con R è sempre una grande spesa a causa dei costi di ricerca: devo determinare quale dei cinque pacchetti con nomi simili fa quello che devo fare, e valutare se lo fa in modo abbastanza affidabile da poterlo utilizzare in il mio lavoro. Spesso significa che per me è più economico scrivere il mio codice Stata in meno tempo che spenderei per capire come far funzionare R in un determinato compito. Dovrebbe essere chiaro che questa è la mia idiosincrasia personale; la maggior parte delle persone su questo sito è meglio usare di me.

Strano che il tuo prof preferisca Stata o GAUSS a R perché "R non è stato scritto da economisti". Né Stata né GAUSS; sono scritti da scienziati informatici che utilizzano gli strumenti di informatica. Se il tuo prof ottiene idee sulla programmazione da CodeAcademy.com, è meglio di niente, ma lo sviluppo di software di livello professionale è diverso dalla digitazione nella casella di testo CodeAcademy.com in quanto guidare un camion merci è diverso dalla bicicletta. (Tuttavia, Stata è stata avviata da un economista del lavoro convertito scienziato informatico, ma ormai non fa questa cosa di econometria del lavoro da circa 25 anni.)

Aggiornamento : Come ha commentato AndyW di seguito, puoi scrivere un codice terribile in qualsiasi lingua. La questione del costo diventa quindi quale lingua è più facile da eseguire il debug. A me sembra una combinazione di quanto sia preciso e informativo l'output e quanto sia semplice e trasparente la sintassi stessa, e ovviamente non ho una buona risposta per questo. Ad esempio, Python applica il rientro del codice, che è una buona idea. Gli stati e il codice R possono essere ripiegati tra parentesi e non funzionerà con SAS. L'uso di subroutine è un'arma a doppio taglio: l'uso di *apply()con functions ad hoc in R è ovviamente molto efficiente, ma più difficile da eseguire il debug. In modo analogo, gli Stata localpossono mascherare quasi tutto, e l'impostazione predefinita di una stringa vuota, sebbene utile, può anche portare a errori difficili da rilevare.


1
Questa è una buona risposta, ma le eccessive generalizzazioni dell'IMO non sono molto utili (puoi scrivere codice cattivo o buono praticamente in qualsiasi lingua, Stata non è magica nel far rispettare buoni standard di codifica). Ho difficoltà a vedere come 2 MB di codice SPSS sia un codice SPSS efficiente all'inizio (con le versioni più recenti con l'evidenziazione della sintassi sarebbe sconsigliato persino di aprire un tale file nell'editor). Sembra che ci sia una buona possibilità che fosse tempo ben speso a riscrivere in qualsiasi lingua.
Andy W,

1
Non scrivo affatto il codice SPSS e la mia comprensione del fatto che il codice con cui ho lavorato non è stato nemmeno scritto come codice, ma piuttosto salvato dall'interfaccia punta e clicca e quindi può essere ripassato un po '. Immagino che SPSS inserisca tutti i valori predefiniti e simili con la conversione da interfaccia a codice, quindi non era un codice terribilmente efficiente per cominciare.
StasK,

12

Starei molto attento a chiunque sostenga un fatto ma non lo sostenga mai con qualcosa di sostanziale.

Puoi facilmente cambiare argomento.

Ad esempio, le persone che vengono pagate per scrivere il codice potrebbero avere MENO incentivo per farlo bene perché ci si aspetta che il loro codice sia corretto, mentre il tipico abitante del seminterrato vuole fare un impegno che impressionerà i responsabili del progetto. Forse non gliene potrebbe fregare di meno di quanto tempo extra impiega a farlo gratuitamente se ciò significa che viene svolto un lavoro di qualità.

Se il generatore di numeri casuali è "disordinato" (che è un termine vago; sostituisce facilmente un fatto reale per sostenere il suo argomento), allora dovrebbe essere in grado di dimostrarlo o mostrarti qualcuno che può.

Se ottiene risultati incoerenti da un pacchetto, dovrebbe essere in grado di indicare i passi che ha preso per ottenere quel risultato. Se è davvero un bug e hai buone capacità di programmazione, puoi anche provare a risolverlo per lui!

Mi rendo conto che la mia risposta non risponde direttamente alla tua domanda (scusa). Semplicemente dal modo in cui esprime i suoi punti, puoi vedere che non c'è carne dietro. Se c'è, sentiti libero di modificarlo nella tua domanda affinché le persone qui possano discuterne ulteriormente!


5

In ReplicationWiki (su cui lavoro) puoi vedere che R era uno dei pacchetti software usati più spesso per alcuni studi empirici del 2000 pubblicati in alcune riviste affermate già negli anni 2000-2013. Sembra che sia stato più utilizzato negli ultimi anni. Lo stata veniva usato molto spesso (> 900 volte), seguito da MATLAB (280), SAS (60), GAUSS (60), Excel (50), R (30), FORTRAN (30), Mathematica (19), EViews (18), z-Tree (16), dynare (15), RATS (12), C (8), C ++ (6), python (5, studi più recenti), SPSS (5) e alcuni altri. Spesso viene utilizzato più di un pacchetto.


Questa è una prova interessante sull'uso del software. Ma non riguarda direttamente la questione se non fornendo chiare indicazioni che R è ampiamente usato (l'inferenza che anche lui è ampiamente fidato è germano).
Nick Cox,

2

Uso R da mezzo decennio e utilizzo anche SAS, SPSS, Calc, WEKA e un paio di altri strumenti. Non mi sono mai divertito con nessuno strumento tanto quanto lo era attraverso R. Fondamentalmente R è per coloro che pensano in modo indipendente e provano qualcosa sul proprio apprendimento. Quando si tratta di statistiche, si tratta solo di metodi. Gli utenti potrebbero non sapere come sono stati definiti e modellati i metodi nel software commerciale e potrebbero essere corretti o sbagliati. R è per coloro che desiderano definire metodi e utilizzare quei metodi che si adattano alle loro esigenze. Si tratta di libertà. Questa libertà non è presente nel software commerciale nonostante la spesa e l'acquisto di denaro. La conoscenza è proprietà della comunità (società) che nessuno può rivendicare la paternità sullo stesso. La ricerca riguarda la ricerca di soluzioni ai problemi. Per quanto riguarda R, non è necessario preoccuparsi dei metodi che gli utenti sono liberi di definire e rinnovare. Ad esempio, se esiste un problema specifico del modello o metodi definiti in modo errato che possono essere risolti riparando o sviluppando un nuovo codice. In questo modo un ricercatore non solo sviluppa la conoscenza ma si evolve anche.

Il vantaggio di R è che non è necessario essere un programmatore di computer. I metodi statistici si basano sulla scrittura di funzioni solo con istruzioni di controllo e cicli (per cominciare, le cose di livello superiore vengono dopo). R ha un ambiente di programmazione molto semplice per i neofiti.

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.