Investigación Reproducible

Conceptos e Ideas

Kevin Pérez C, profesor auxiliar
Departamento de Matemáticas y Estadística - Universidad de Córdoba

Replicación

  • La norma estándar para reforzar la evidencia científica es la replicación de conclusiones y la realización de estudios con independientes actores

    • Investigadores
    • Datos
    • Métodos analíticos
    • Laboratorios
    • Instrumentos
  • La replicación es particularmente importante en estudios de gran impacto social y de generación de políticas publicas

Que pasa con la replicación?

  • Algunos estudios no pueden ser replicados

    • Por tiempo
    • Dinero
    • Únicos
  • Investigacion reproducible: Hacer que los datos analíticos y el código estén disponibles para que otros puedan reproducir los resultados

Como podemos cubrir la brecha ?

Como podemos cubrir la brecha ?

Por que necesitamos la investigación reproducible?

  • Las nuevas tecnologías aumentan el rendimiento de la recopilación de datos; los datos son cada vez más complejos y de dimensiones extremadamente grandes.

  • Las bases de datos existente se pueden fusionar para crear "mega bases de datos"

  • El poder computacional ha aumentado considerablemente, permitiendo análisis mucho mas sofisticados

  • Por cada campo "\(X\)", existe un campo "\(X\) Computacional"

Ruta de la investigación

Ruta de la investigación

Recientes desarrollos

Noticias

Que se necesita?

  • Análisis de datos este disponible
  • Código analítico este disponible
  • Documentación de código y datos
  • Medios de distribución estándar

Quienes son los actores?

  • Autores

    • Quieren que sus investigaciones sean reproducibles
    • Quieren herramientas para la "IR", hacer su trabajo más fácil
  • Lectores

    • Quieren reproducir resultados interesantes
    • Quieren herramientas para "IR", hacer su trabajo fácil

Retos

  • Los autores deben hacer esfuerzos considerables para poner datos y/o resultados en la web

  • Los lectores deben descargar esa información de la web individualmente y ponerlos juntos

  • Los lectores quizá no tengan los mismos recursos que los autores

  • Solo unas pocas herramientas ayudan a estas tareas para autores y lectores

En la realidad ...

  • Autores

    • Solo suben material a la web
    • Existen algunas bases de datos para varios campos
  • Lectores

    • Solo descargan datos y tratan de deducir
    • Juntan piezas de códigos y corren para ver que sucede

Literate (Statistical) Programing

  • Un articulo es un flujo de texto y código
  • El análisis del código es dividido entre texto y "chunks" de códigos
  • Cada "chunks" carga datos y calcula resultados
  • Los resultados tiene distintos formatos de presentación (Tablas, figuras, etc.)
  • El texto del articulo explica que esta sucediendo
  • Los Literate programs pueden ser concebidos para producir documentos legibles para humanos y embebidos para ser computacionalmente legibles.

Literate (Statistical) Programing

  • Literate statistical programing es en general un concepto que requiere
    • Un lenguaje de documentación (legible para humanos)
    • Un lenguaje de programación (legible para maquinas)
  • Sweave utiliza \(\LaTeX\) y \(R\) como lenguajes de documentación y programación
  • Sweave fue desarrollado por Friedrich Leisch (miembro del R core)

Limitaciones de Sweave

  • Sweave tiene muchas limitaciones
  • Se centra principalmente en el uso de \(\LaTeX\)
  • Le faltan ciertas características como capturas, gráficos múltiples por "chunks", mezcla de lenguajes de programación y muchos otros items técnicos
  • No es actualizado con frecuencia

Literate (Statistical) Programing

  • knitr es un paquete escrito en \(R\) surge como una alternativa
  • Reúne muchas características para abordar las limitaciones de Sweave
  • knitr usa principalmente \(R\) como lenguaje de programación y una variedad de lenguajes de documentación
    • HTML, Markdown, \(\LaTeX\)
  • knitr fue desarrollado por Yihui Xie (Estudiante de posgrado en Iowa State)

Códigos y gráficos

require(rCharts)
haireye = as.data.frame(HairEyeColor)
n1 <- nPlot(Freq ~ Hair, group = 'Eye', type = 'multiBarChart', 
            data = subset(haireye, Sex == 'Male')) ; n1$print('chart1')

Formulas y gráficos

\[ \begin{equation} f(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-(x-\mu)^2/2\sigma^2} \end{equation} \]

## Loading required package: ggplot2

plot of chunk unnamed-chunk-2