Tema 35: Investigación reproducible con R Commander
PETER B. MANDEVILLE*
CIENCIA UANL / AÑO 17, No. 65, ENERO-FEBRERO 2014
You need to prepare your students
for the future, not the past.
Spencer Graves1
La reproducibilidad ha sido una parte clave de la investigación científica y se ha
denominado la «demarcación entre ciencia y nociencia».
Christopher Gandrud2
Los resultados de una investigación son reproducibles si hay suficiente información disponible para que investigadores independientes consigan los mismos resultados con los mismos procedimientos. (2) La investigación reproducible requiere que los conjuntos de datos y el código computacional estén disponibles para la verificación de los resultados publicados y la realización de análisis alternativos. (2-4)
La necesidad de la publicación de investigaciones reproducibles aumenta por varias razones: (3,4)
- Los investigadores examinan con mayor frecuencia la debilidad de las asociaciones e interacciones complejas.
- Las nuevas tecnologías permiten a los científicos compilar bases de datos complejos de alta dimensión.
- El desarrollo de mayores capacidades estadísticas y computacionales permite a los investigadores explorar las bases de datos e identificar asociaciones de interés, y aumenta la probabilidad de identificar asociaciones espurias.
- Los informes de investigación fraudulenta publicados en la bibliografía biomédica.
- A medida que los análisis se hacen más complicados, aumenta la posibilidad de errores, producto de resultados engañosos.
- Los desconocedores del uso de software también pueden conducir a problemas, especialmente cuando éste se aplica a situaciones no imaginadas originalmente.
Mientras que muchos estarían de acuerdo con la investigación reproducible, hay una falta general de infraestructura para apoyar estos esfuerzos. (3,4)
Los coeditores de la revista Biostatistics apoyan la práctica de la investigación reproducible; y en 2009, Roger D. Peng fue nombrado editor asociado para la reproducibilidad. (5)
Con respecto a R, (6) la aplicación más utilizada para la reproducibilidad es RStudio, (7,8) que se utiliza para producir informes en los formatos html, latex y pdf , con el paquete knitr. (9)
Kuhn (10) revisa el apoyo para la reproducibilidad en R. Xie (9) dice que con R y el paquete knitr se pueden generar trabajos como tareas, informes de investigación y libros.
Wikipedia señala que entre los GUI’s, interfaz gráfica de usuario, existentes para R, R Commander (Rcmdr) es la alternativa más parecida a los paquetes estadísticos comerciales como SPSS. El paquete es útil para novatos, ya que para cada análisis se muestra el código. Además, una serie de libros de estadística que utiliza Rcmdr está disponible. (11) Un ejemplo notable es Field, Miles y Field. (12) El autor utiliza la combinación de R y Rcmdr en todos sus cursos de estadística. Un tutorial de Rcmdr está disponible. (13)
A partir de la versión 2.00 (19 agosto 2013), se integró la generación de reportes HTML y PDF, con los paquetes knitr () y markdown() en Rcmdr. (14)
En Rcmdr, Ayuda -> Usando R Markdown, es un enlace a RStudio. (15) Markdown quick reference en RStudio es otro fuente de información. (16) Para más detalles consulta Gandrud, (2) Xie. (9)
Desde R, se instala Rcmdr con Packages -> Install package(s)… -> Rcmdr -> OK. Se puede iniciar Rcmdr, al introducir el siguiente código en R Console, seguido de Enter: library(Rcmdr), o a través de: Packages -> Load package -> Rcmdr -> OK
Se debe utilizar la reproducibilidad con el código final de un proyecto. Se supone que el código siguiente es de un análisis final del conjunto de datos birthwt del paquete MASS, (7) y se quiere generar el reporte final.
Se declara el directorio de trabajo con Fichero -> Cambiar directorio de trabajo…
Se carga el paquete MASS con Herramientas -> Cargar paquete(s)… -> MASS -> Aceptar
Se introducen los datos birthwt con Datos -> Con- junto de datos en paquetes -> Leer conjunto de da- tos desde paquete adjunto… -> MASS -> birthwt -> Aceptar
Se enlistan los datos al introducir el código siguiente en la ventana R Script de Rcmdr, seguido de Ejecutar: birthwt
Se declaran las variables categóricas numéricas como factores con Datos -> Modificar variables del conjunto de datos activo -> Convertir variable numérica en factor. Seleccionar con control click: ht, low, race, smoke, ui. Entonces: Utilizar números -> Aceptar seguido por: Si -> Si -> Si -> Si -> Si.
Se efectúa la estadística descriptiva con Estadísti- cos -> Resúmenes -> Conjunto de datos activo.
Se levanta un histograma de bwt con Gráficas -> Histograma… -> bwt -> Aceptar
Se levanta un diagrama de caja de bwt con Gráfi- cas -> Diagrama de caja… -> bwt -> Aceptar
Se levanta un qqplot de bwt con Gráficas -> Grá- fica de comparación de cuantiles… -> bwt -> Aceptar Se efectúa un modelo lineal de bwt, con respecto a age, smoke y ht, con Estadísticos -> Ajuste de modelos -> Modelo lineal… -> bwt -> age -> smoke -> ht -> Aceptar
Se efectúa un anova simultáneo con: Modelos ->
Test de hipótesis -> Tabla ANOVA… -> Aceptar
Se calculan los límites de confianza de los coeficientes de regresión con Modelos -> Intervalos de confianza… -> Aceptar
Se levantan las gráficas básicas de diagnóstico con Modelos -> Gráficas -> Gráficas básicas de diagnóstico
Se efectúa una prueba de hipótesis de normalidad de los residuos, con el procedimiento Shapiro-Wilk, al introducir el código siguiente en la ventana R Script de Rcmdr, seguida de Ejectuar: shapiro.test(LinearModel.1$resid)
Se cita R, al introducir el código siguiente en la ventana R Script de Rcmdr, seguido de Ejecutar: citation()
Se cita el paquete Rcmdr, al introducir el código siguiente en la ventana R Script de Rcmdr, seguido de Ejecutar: citation(package=”Rcmdr”)
Se cita el paquete MASS, al introducir el código siguiente en la ventana R Script de Rcmdr, seguido de Ejecutar: citation(package=”MASS”)
Se cita el paquete car, al introducir el código si- guiente en la ventana R Script de Rcmdr, seguido de Ejecutar: citation(package=”car”)
Se cita el paquete knitr, al introducir el código si- guiente en la ventana R Script de Rcmdr, seguido de Ejecutar: citation(package=”knitr”)
Entonces se selecciona R Markdown, y se mueve el cursor al principio de la ventana.
Se reemplaza Replace with Main Title con el nombre del análisis: birthwt
Se reemplaza Your Name con un nombre: Fulano de tal
Se introduce el código siguiente que define el hardware, sistema operativo, versión de R y los paquetes utilizados en el análisis:
### sistema
‘‘‘{r} print(sessionInfo())
‘‘‘
Los chunks de código parecen entre ‘‘‘{r} y ‘‘‘. Se puede introducir el texto entre los chunks de código (para ver ejemplos consulte RStudio.com15,16).
Cuando se termina, se genera el reporte al selec- cionar: Generar informe HTML, y después de una pausa aparece el reporte.
Cuando se termina su sesión en Rcmdr, acepta Save Workspace Image?
En el directorio de trabajo se encuentra un subdirectorio llamado figure, con las gráficas genera- das y los archivos: .RData (RDATA File), (RHistory File), RcmdrMarkdown (HTML Document), RcmdrMarkdown (MD File), RcmdrMarkdown (RMD File). El archivo RcmdrMarkdown.Rmd es texto y contiene el código. El archivo RcmdrMarkdown.md es texto y contiene ambos có- digo y salida. Se recomienda que se cambien los nom- bres de los tres archivos RcmdrMarkdown a birthwt.
La generación del archivo HTML debe estar con la versión final del código, pero se pueden realizar cam- bios en el documento birthwt.Rmd y, entonces, se puede generar de nuevo el archivo birthwt.HTML con R.
Por ejemplo, se puede incorporar la salida de la función citation() en el archivo birthwt.md, en lugar de incluir las llamadas a la función por reemplazar las líneas en birthwt.Rmd:
‘‘‘{r} citation() ‘‘‘
‘‘‘{r} citation(package=»Rcmdr») ‘‘‘
‘‘‘{r} citation(package=»MASS») ‘‘‘
‘‘‘{r} citation(package=»car») ‘‘‘
‘‘‘{r} citation(package=»knitr») ‘‘‘
con:
**Referencias**
Fox, J. (2005). The R Commander: A Basic Statistics Graphical User Interface to R. Journal of Statistical Software, 14(9):1-42.
John Fox and Sanford Weisberg (2011). An {R} Companion to Applied Regression, Second Edition. Thousand Oaks CA: Sage. URL:
http://socserv.socsci.mcmaster.ca/jfox/Books/ Companion
R Core Team (2013). R: A language and environment for statistical computing. R Founda- tion for Statistical Computing, Vienna, Austria. URL: http://www.R-project.org/
Venables, W. N. & Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth Edition. Springer, New York. ISBN 0-387-95457-0
Yihui Xie (2013). knitr: A general-purpose package for dynamic report generation in R. R package version 1.5.
Yihui Xie (2013) Dynamic Documents with R and knitr. Chapman and Hall/CRC. ISBN 78- 1482203530
del archivo birthwt.md.
Se cambia el directorio de trabajo al directorio con los archivos generados en R con File -> Change dir… Entonces se introduce el código siguiente en R Console, seguido de Enter: 2
library(knitr) knit2html(“birthwt.Rmd”)
El resultado es un documento que describe el hardware utilizado, la versión de R instalada, las versiones de los paquetes utilizados, lista los datos, lista los coman-
dos, lista la salida, incluyendo las gráficas; lista la refe- rencia de R y lista las referencias de los paquetes utili- zados.
Se puede extraer el código fuente en R al introdu- cir el código siguiente en R Console, seguido de Enter:2
library(knitr) purl(“birthwt.Rmd”)
Se puede convertir el reporte a otros formatos con Pandoc,18 que es gratuito.
Debe hacerse notar que para generar un archivo PDF se requiere que TeX esté instalado y tener cono- cimiento de su uso. El autor ha encontrado que es mucho más fácil convertir archivos HTML a archivos PDF con doPDF Free PDF Converter.19
Referencias
1. Spencer Graves (making a case for using R in acade- mia) R-help (November 2006).
2. Christopher Gandrud. Reproducible Reserch with R and RStudio. The R Series. Chapman & Hall/CRC, Boca Raton, FL, USA. 2014.
3. Roger D. Peng. Reproducible Research and Biostatistics. Biostatistics (2009), 10, 3, pp. 405–408.
4. Roger D. Peng. Reproducible Research in Computational Science. Science (2011), 334, pp 1226-1227.
5. Peter J. Diggle and Scott L. Zeger. Editorial. Biostatistics (2009), 10, 3, pp. 405.
6. R Core Team (2013). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL: http://www.R- project.org/.
7. John Verzani. Getting Started with RStudio: A Integrated Development Environment for R. O’Reilly Media, Inc., Sebastopol, CA, USA. 2011.
8. Mark P.J. van del Loo and Edwin de Jonge. Learning RStudio for R Statistical Computing: Learn to effectively perform R development, statistical analysis, and reporting with the most popular R IDE. Packt Publishing Ltd. Birmingham, UK. 2012.
9. Yihui Xie. Dynamic Documents with R and knitr. The R Series Chapman & Hall/CRC, Boca Raton, FL, USA. 2014.
10. Max Kuhn. CRAN Task View: Reproducible Resear- ch. Version: 2013-04-18. URL: http://cran.r- project.org/web/views/ReproducibleResearch.html.
11. R Commander. (2013, November 4). In Wikipedia, The Free Encyclopedia. Downloaded November 27, 2013, URL: http://en.wikipedia.org/wiki/ R_Commander.
12. Andy Field, Jeremy Miles, and Zoe Field. Discovering Statistics Using R. Sage Publications Ltd., London, UK.
13. John Fox and Milan Bouchet-Valat. Getting Started With the R Commander. Version 2.0-0 (last modified: 29 July 2013). URL: http://socserv.mcmaster.ca/jfox/ Courses/soc6z3/Getting-Started-with-the-Rcmdr.pdf.
14. John Fox and Milan Bouchet-Valet.[R]Rcmdrversion 2.0-0 now on CRAN. Thu, 22 Aug 2013 15:55:29 – 0700. URL: www.mail-archive.com/r-help@r- project.org/msg203634.html.
15. RStudioIDE:UsingRMarkdownwithRStudio.URL: http://www.rstudio.com/ide/docs/authoring/ using_markdown.
16. Studio version 0.97.551, 2009-2012. RStudio, Inc. URL: http://www.rstudio.com/.
17. W.N. Venables and B. D. Ripley. 2002, Modern Applied Statistics with S. Fourth Edition. Springer, New York. ISBN 0-387-95457-0
18. pandoc. URL: http://johnmacfarlane.net/pandoc.
19. doPDF Free PDF Converter. URL: http:// www.dopdf.com/.