2012-06-21 10 views
13

Dato lo stress verso la scienza riproducibile, mi chiedevo se il mio lavoro recente meritasse l'inclusione del codice di esempio nella pubblicazione. I set di dati che sto usando sono piuttosto grandi, quindi non avrebbe senso pubblicare quelle necessità. Tuttavia, i metodi statistici che applico in R non sono generalmente noti al mio pubblico (anche se penserei che dovrebbero essere).Esistono linee guida per quando un codice riproducibile deve essere incluso in una pubblicazione?

Sto utilizzando l'analisi della funzione ortogonale empirica (EOF) e modelli additivi generalizzati (GAM) all'interno della mia analisi. Il GAM, in particolare, è ampiamente usato negli studi ecologici, ma meno nelle scienze fisiche: il mio lavoro abbraccia entrambe le discipline.

Mi riferisco sicuramente ai pacchetti R che uso, e non sarebbe davvero difficile per un recensore/lettore cercare quei riferimenti (e inclusi esempi) stessi. Quindi, la mia domanda è: quali sono le situazioni più appropriate per l'inclusione di codice riproducibile in una pubblicazione?

+1

Questo potrebbe essere più in argomento nel sito [sito Academia] (http://academia.stackexchange.com/). –

+0

Forse, ma apprezzerei qualsiasi esperienza che la comunità di programmazione può offrire. –

+0

Penso che il consenso sia abbastanza chiaro qui. Ci sono molte altre riviste che accettano appendici che includono il codice utilizzato nell'analisi e, come illustrato da diversi commenti di seguito, opzioni per il caricamento di set di dati ecc. –

risposta

14

Il codice è la rappresentazione più accurata di ciò che effettivamente hai fatto. Pertanto, a mio avviso dovresti sempre mirare a pubblicare il codice accanto al tuo articolo.

Tuttavia, la resistenza di questo editor è piuttosto forte. Il timore è che se il revisore avesse accesso al codice, il diario sarebbe piuttosto brutto se in seguito venisse rilevato un errore di codifica sostanziale. Questo non è un timore ipotetico, dato il Levitt paper, ecc.

Knuth ha alcune idee forti sulla programmazione scritta che dovresti essere in grado di citare come giustificazione. Se non riesci a convincere la rivista ad accettare il tuo codice come parte integrante della pubblicazione, considera la pubblicazione sul tuo sito web personale (l'approccio adottato da ad esempio Raj Chetty per molti dei suoi articoli) o pubblicalo come pacchetto R.

Infine, ecco una nota che ho scritto ai miei studenti di programmazione:

per la pubblicazione il vostro codice. Così facendo agirà come un impegno dispositivo che incoraggerà le buone abitudini - abitudini che rendono il tuo lavoro più facile. La pubblicazione del codice semplifica anche che altri utenti possano ampliare la tua analisi fino a , il che può portare a più citazioni del tuo lavoro. Anche rilasciando il tuo codice è una buona pratica accademica: è il testamento più attuale della tua analisi, . E offrire il tuo programma al mondo mette in mostra le meravigliose abilità di codifica che stai per acquisire. acquisisci.

+0

Ben detto - non sono sicuro che le mie capacità di codifica siano comunque così belle ;-) –

+0

Haha. Questo è nel contesto di un manuale di 30pp per questo corso, quindi è più sulle mie meravigliose capacità di insegnamento che sulle loro capacità di codifica :-). '<- false non-humility' –

10

Un principio fondamentale della scienza è la riproducibilità. Quindi la risposta sarebbe quella di "includere" il codice richiesto per condurre l'analisi su ogni carta/pubblicazione basata sull'analisi dei dati.

Dico "include" perché non è necessario inserire il codice R direttamente nella carta. Molte se non la maggior parte delle riviste autorizzate consentono materiale supplementare che è un'opzione. Alternativa, fornisci il tuo script ad uno dei tanti siti di archiviazione dati di Science (come Figshare) e poi (ed ecco il killer!) Cita il tuo script usando il DOI che Figshare dà al tuo copione depositato. Se puoi pubblicare anche i dati, allora è meglio; Figshare non si preoccupa molto dei big data set.

Quanto sopra si applica al codice in cui si utilizzano altri pacchetti e lo script R esegue operazioni quali carichi e formati di dati, chiamate funzioni da altri pacchetti e quindi stampa o visualizza output/risultati.Se hai sviluppato un nuovo codice R per implementare un particolare metodo, direi che pacchetto il codice come un pacchetto R e lo invio a CRAN o r-forge o qualcosa del genere.

Dalla tua descrizione, il primo (depositare lo script di analisi in un repository) sarebbe il più appropriato.

+0

Che bello - non avevo sentito parlare di Figshare. "spazio pubblico illimitato" ?! –

+0

O semplicemente mettilo su un repository VCS pubblico: BitBucket fornisce anche account illimitati per accademici, inclusi quelli privati, quindi non ci sono davvero scuse. Quindi puoi semplicemente collegarti all'ultimo tag/commit che hai usato quando hai scritto il foglio, continuando comunque ad aggiornare il codice, se è riutilizzabile. – naught101

5

Recentemente abbiamo avuto una discussione presso il nostro istituto di ricerca sulla ricerca riproducibile. L'incentivo è venuto dall'editoriale Nature (http://arstechnica.com/science/2012/02/science-code-should-be-open-source-according-to-editorial/) che ha sostenuto che tutto il tuo codice dovrebbe essere pubblicato . Sono pienamente d'accordo con questo. Anche se il set di dati è molto grande, pubblicare il codice R che hai usato per creare i tuoi risultati rende chiaro ciò che hai fatto. Spesso i metodi di una carta non contengono dettagli sufficienti per riprodurre il risultato, il codice è piuttosto un aiuto in questo caso.

Problemi correlati