2012-06-21 8 views
13

Dado el estrés hacia la ciencia reproducible, me preguntaba si mi trabajo reciente garantiza la inclusión de código de ejemplo en la publicación. Los conjuntos de datos que estoy usando son bastante grandes, por lo que no tendría sentido publicar esas necesidades. Sin embargo, los métodos estadísticos que aplico dentro de R generalmente no son conocidos por mi audiencia (aunque creo que deberían serlo).¿Existen directrices para cuándo se debe incluir el código reproducible en una publicación?

Estoy usando análisis de función ortogonal empírico (EOF) y modelos de aditivos generalizados (GAM) dentro de mi análisis. GAM, en particular, es ampliamente utilizado en estudios ecológicos, pero no tanto en las ciencias físicas: mi trabajo abarca ambas disciplinas.

Definitivamente me refiero a los paquetes R que utilizo, y no sería realmente difícil para un revisor/lector buscar esas referencias (y ejemplos incluidos). Entonces, mi pregunta es, ¿qué situaciones son las más apropiadas para la inclusión de código reproducible en una publicación?

+1

Esto puede ser más sobre el tema en el [sitio Academia] (http://academia.stackexchange.com/). –

+0

Quizás, pero agradecería cualquier experiencia que la comunidad de programación pueda ofrecer. –

+0

Creo que el consenso es bastante claro aquí. Hay muchas más revistas que aceptan apéndices que incluyen código utilizado en el análisis y, como se ilustra en varios comentarios a continuación, opciones para cargar conjuntos de datos, etc. –

Respuesta

14

El código es la representación más precisa de lo que realmente hizo. Por lo tanto, en mi opinión, debe siempre con el objetivo de publicar el código junto con su artículo.

Sin embargo, la resistencia del editor a esto es bastante fuerte. El temor es que si el revisor tuvo acceso al código, entonces la revista se ve bastante mal si luego se encuentra un error de codificación sustancial. Esto no es un miedo hipotético, dado el Levitt paper, etc.

Knuth tiene algunas opiniones sólidas sobre la programación alfabetizada que usted debería poder citar como justificación. Si no puede convencer al periódico de que acepte su código como parte integrante de la publicación, considere publicarlo en su sitio web personal (el enfoque adoptado, por ejemplo, Raj Chetty para muchos de sus documentos) o publicarlo como un paquete R.

Por último, he aquí una nota que escribí a mis estudiantes de programación:

considerar la publicación de su código. Si lo hace, actuará como un dispositivo de compromiso que fomentará los buenos hábitos, hábitos que hacen que su propio trabajo sea más fácil. La publicación de su código también hace que sea más fácil para otros ampliar su análisis, lo que puede generar más citas de su trabajo. La liberación de su código también es una buena práctica académica: es el testimonio más verdadero de su análisis . Y al ofrecer su programa al mundo muestra las hermosas habilidades de codificación que está a punto de adquirir .

+0

Bien dicho, aunque no estoy seguro de que mis habilidades de codificación sean tan hermosas ;-) –

+0

Haha. Esto es en el contexto de un manual de 30pp para este curso, así que se trata más de mis hermosas habilidades de enseñanza que sus habilidades de codificación :-). '<- false non-humility' –

10

Un principio básico de la ciencia es la reproducibilidad. Entonces, la respuesta sería "incluir" el código requerido para llevar a cabo su análisis en cada trabajo/publicación que esté basado en el análisis de datos.

Digo "incluir" porque no necesita poner el código R directamente en el papel. Muchos, si no la mayoría de las revistas, permiten material suplementario, que es una opción. Alternativa, suministre su secuencia de comandos a uno de los muchos sitios de archivo de datos de Science (como Figshare) y luego (¡y aquí está el asesino!) Cite su propio script usando el DOI que Figshare le da a su script depositado. Si puede publicar los datos también, mucho mejor; A Figshare en realidad no le importan demasiado los grandes conjuntos de datos.

Lo anterior se aplica al código en el que está utilizando otros paquetes y su secuencia de comandos R carga y formatea datos, llama funciones de otros paquetes y luego traza o muestra resultados.Si has desarrollado un nuevo código R para implementar un método en particular, entonces diría que empaques el código como un paquete R y lo envíes a CRAN o r-forge o algo así.

De su descripción, la primera (depositar el script de análisis en un repositorio) sería la más adecuada.

+0

Eso es genial, no había oído hablar de Figshare. "espacio público ilimitado"? –

+0

O simplemente colóquelo en un repositorio público de VCS: BitBucket incluso proporciona cuentas ilimitadas para académicos, incluidos los privados, por lo que realmente no hay excusa. Luego, puede vincular la última etiqueta/confirmación que utilizó al escribir el documento, sin dejar de actualizar el código, si es reutilizable. – naught101

5

Recientemente tuvimos un debate en nuestro instituto de investigación sobre la investigación reproducible. El incentivo provino del editorial de Nature (http://arstechnica.com/science/2012/02/science-code-should-be-open-source-according-to-editorial/) que sostenía que todo su código debería publicarse . Estoy totalmente de acuerdo con esto. Aunque su conjunto de datos es muy grande, publicar el código R que usó para crear sus resultados deja en claro lo que hizo. Muchas veces los métodos de un documento no contienen suficientes detalles para reproducir el resultado, el código es de gran ayuda en este caso.

Cuestiones relacionadas