Domanda:
Biblioteche open source nella scienza
Bene
2013-08-03 15:29:52 UTC
view on stackexchange narkive permalink

È una buona o una cattiva pratica utilizzare i pacchetti R di CRAN per la ricerca? Sto parlando di pacchetti comuni come: modelli semplici per regressione, stima, econometria.
La maggior parte di essi utilizza funzioni che possono essere scritte facilmente da soli.

I miei argomenti sì:

  • È ora di concentrarsi sulla parte principale della ricerca
  • La comunità è un buon controllo di qualità
  • R offre molti metodi moderni
  • Alcuni modelli sono troppo complicati per scriverli da soli

I miei argomenti con:

  • Non tutti i pacchetti di R sono stati creati in un ambiente accademico
  • Potrebbero esserci bug che influenzano il risultato e io non lo so
  • La maggior parte dei modelli può essere scritta da zero in un breve periodo di tempo

Come possiamo utilizzare l'open source senza rischiare di fallire nel risultato? Esistono alcuni indicatori di qualità per i pacchetti in generale e per R?

Vedi Fortunes 102 (pagina 12) [qui] (http://cran.r-project.org/web/packages/fortunes/vignettes/fortunes.pdf)
Questa affermazione è un buon punto.
Tendo a pensare che scrivere qualcosa da zero quando è disponibile una libreria adatta sia quasi sempre una cattiva idea. Tutti gli argomenti che potresti invocare contro il software open-source (possibilità di bug, nessuna garanzia che siano stati adeguatamente testati, non necessariamente sviluppati da statistici / accademici / economisti / ingegneri del software ...) sono ancora più validi contro le soluzioni casalinghe.
Mi piace questa domanda, ma poiché è principalmente basata sull'opinione, mi aspetto che presto appariranno voti vicini.
Sono un accademico, ma l'implicazione che solo gli accademici possano scrivere software decente è troppo assurda anche per discuterne in dettaglio. Allo stesso modo, potrebbero esserci bug nel tuo codice di cui non sei a conoscenza; altrimenti li correggeresti. E così via...
Domande pertinenti: [R vs SAS, perché SAS è preferito dalle società private?] (Http://stats.stackexchange.com/questions/33780/r-vs-sas-why-is-sas-prefered-by-private- aziende) [Il linguaggio R è affidabile nel campo dell'economia?] (http://stats.stackexchange.com/questions/25811/is-the-r-language-reliable-for-the-field-of-economics? lq = 1)
Nick, non volevo dire che solo gli accademici possono scrivere codice decente. Volevo insinuare che in un ambiente accademico si è (o si dovrebbe essere) costretti a lavorare correttamente.
Uno è costretto a * scrivere pubblicazioni * correttamente. Il software utilizzato è raramente sottoposto a controllo.
Questo mi ricorda l '[errore di Excel] (http://www.huffingtonpost.com/dean-baker/reinhart-rogoff-austerity_b_3343688.html) in economia
"Potrebbero esserci bug che influenzano il risultato e io non lo so" - ma tu * potresti * e questa è la chiave! Nel software closed source potrebbero esserci bug ma non hai modo di i) saperlo o ii) correggere il bug. In open source, poiché chiunque può vedere il codice sorgente, i bug possono essere individuati più facilmente e risolti; il problema dei molti occhi. Vorrei assicurarmi che il software commerciale ha fatto quello che ha detto che ha fatto ecc. E questo è difficile da fare, con l'open source posso, purché abbia abbastanza familiarità con il linguaggio usato * e * la tecnica. È importante sottolineare che posso * effettivamente * controllare.
@GavinSimpson sì e no. In teoria, potresti davvero andare a vedere di persona. In pratica, anche per algoritmi moderatamente complessi, può essere tutt'altro che banale scoprire errori di implementazione. Sei giusto per programmatori di grande esperienza, ma non lo considero un vantaggio utile per l'utente medio. Detto questo, * amo e supporto * il software open source.
@MarcClaesen Ma tu * puoi *, questo è importante. * Ci sono * bug anche nel software commerciale ma non puoi cercare da solo. I problemi di bug non dovrebbero essere una truffa del software del sistema operativo ma una truffa del closed source. Tutti i software hanno bug. Il software del sistema operativo ha più occhi, i bug vengono individuati più facilmente ecc. Questo era il mio punto.
@Gavin Simpson I tuoi commenti sul software commerciale sono accurati nella misura in cui il codice compilato è inaccessibile vedendo anche il codice sorgente. Ma il software commerciale spesso include codice nella propria lingua che può essere ispezionata, ad es. MATLAB, Stata. Inoltre, in linea di principio, tutti possono guardare in profondità, in profondità all'interno di R, ma solo una piccola frazione di utenti può trovare bug nel codice davvero fondamentale. Suggerisco che questa canzone spesso cantata esageri le differenze pratiche. C'è una differenza di principio, ma le differenze pratiche non sono così grandi come spesso affermato.
Una risposta:
Marc Claesen
2013-08-03 15:45:43 UTC
view on stackexchange narkive permalink

Non la considero una domanda specifica per R. La vera domanda è: puoi fidarti del codice di altre persone ? Oppure, prendendo l'altra prospettiva: pensi di poter fare di meglio ? (nel tempo che sei disposto / in grado di spendere)

Se il software è open source o closed source, non ha molta importanza. L'affidabilità dell'open source rispetto al software commerciale è un argomento molto dibattuto. Esistono argomenti a favore di entrambi i lati della discussione. Nessuno può negare che entrambi possono (e contengono) bug di varia natura, alcuni più insidiosi di altri.

TL; DR : secondo me: sì, va bene usare pacchetti esistenti se coprono le tue esigenze.


Il mio motto, in generale, è provare a implementare le cose da solo se una serie di seguenti sono vere:

  1. Lo so esattamente cosa voglio e come farlo (questo è tutt'altro che banale per molti modelli pratici).
  2. Vale la pena il tempo necessario per implementare e testare il mio codice rispetto a quanto già esiste. In altre parole: lo userò spesso o solo una volta?
  3. Ciò che già esiste non offre tutte le funzionalità di cui ho bisogno.
  4. Ho una buona ragione per non fidarmi delle implementazioni esistenti ( come un comportamento inaspettato quando lo si utilizza).

Personalmente, mi piace, utilizzo e sviluppo molto open source perché credo che sia importante, specialmente in un contesto accademico. In pratica, molte persone considerano l'utilizzo di un determinato algoritmo solo se è disponibile un'implementazione. Nessuno trae vantaggio da un ampio insieme di implementazioni della stessa cosa. È molto meglio disporre di un'implementazione efficiente, accuratamente testata e verificata di un determinato metodo.

Alla gente piace credere che se lo faccio da solo, so che è fatto correttamente . La pratica contraddice questo su base regolare.

Non tutti i pacchetti di R sono stati creati in un ambiente accademico

Non so il motivo per cui ci si sente che i pacchetti creati dagli accademici sono superiori. Certo, il metodo stesso potrebbe essere più complesso / nuovo, ma tutte le scommesse sono sbagliate sull'implementazione. I ricercatori non sono necessariamente i migliori programmatori (in effetti, dato che di solito non è la loro specialità, direi che è più probabile il contrario).

In pratica, i ricercatori hackerano regolarmente soluzioni insieme, a volte senza test approfonditi. Naturalmente, questo può portare a tutti i tipi di cattivi risultati (in particolare i fallimenti silenziosi). Personalmente, credo che una delle ragioni di questo comportamento sia il fatto che l'output del software è sottovalutato nelle impostazioni di ricerca. Alcuni ricercatori si affrettano semplicemente verso la prossima pubblicazione. La pubblicazione dei risultati è importante, il software utilizzato per ottenerli in realtà non lo è. Questo porta a software che non è stato testato correttamente quando le persone reinventano la ruota per un uso singolo.

Come possiamo usare l'open source senza rischiare di fallire nel risultato?

Non puoi. Questo vale anche per il software commerciale e il software che scrivi tu stesso con molta cura e amore. Se ti capita di trovare un modo per assicurarti che il software non abbia bug o avvertenze, dovresti fissare immediatamente un appuntamento con Bill Gates (o meglio ancora, parlamene).

L'unica soluzione è valutare criticamente risultati in ogni fase del processo. Mai software fiducia incondizionata, non importa quale sia il software che è.

Esistono determinati indicatori di qualità per i pacchetti in generale e per R?

Di solito, i pacchetti che vengono resi disponibili pubblicamente, ad esempio su CRAN, sono stati sottoposti a test rigorosi, soprattutto quelli che vengono utilizzati spesso. Le persone ci penseranno due volte prima di rendere pubblicamente disponibile spazzatura non testata quando è in gioco la loro credibilità. Il numero di citazioni può essere considerato anche un indicatore di qualità oltre a una comunità attiva in via di sviluppo.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...