reproducible research

71
Investigación Reproducible La investigación vista como un producto de software

Upload: dsolis

Post on 19-Feb-2016

22 views

Category:

Documents


0 download

DESCRIPTION

Slides about reproducible research

TRANSCRIPT

Page 1: Reproducible Research

Investigación ReproducibleLa investigación vista como un producto de software

Page 2: Reproducible Research

2

Resumen El tema central de la presentación es que la investigación sobre áreas computacionales tiene muchas similitudes con la construcción de productos de software, de esta manera, se propone la adopción de prácticas de Ingeniería de Software para el proceso de Investigación.

Aprovecho la oportunidad para señalar las megatendencias en tecnología y su impacto sobre la investigación en diversos campos. Asimismo para mostrar ejemplos sobre el proceso para la generación dinámica de diversos documentos tales como artículos, presentaciones, tesis, libros, y sobre las herramientas para un entorno basado en R.

Page 3: Reproducible Research

Megatendencias en Tecnología

3

Entre

gaAcceso

ContenidoCom

portam

iento

Page 4: Reproducible Research

Megatendencias en Tecnología

3

Compartir experiencias Buscar respuestas Pertenecer a una comunidad

BYOD Estar conectado Alternar entre trabajo y no trabajo

Accesar lo que sea de donde sea Usar múltiples dispositivos

Consumir y generar información

Entre

gaAcceso

ContenidoCom

portam

iento

Page 5: Reproducible Research

Megatendencias en Tecnología

3

Compartir experiencias Buscar respuestas Pertenecer a una comunidad

BYOD Estar conectado Alternar entre trabajo y no trabajo

Accesar lo que sea de donde sea Usar múltiples dispositivos

Consumir y generar información

Entre

gaAcceso

ContenidoCom

portam

iento

Las investigaciones realizadas durante los últimos años han identificado la evolución independiente de estas cuatro fuerzas: social, móvil, la nube e información. Como resultado de la consumerización y la ubicuidad de los dispositivos inteligentes conectados, el comportamiento de la gente ha causado una convergencia de estas fuerzas.

Page 6: Reproducible Research

Megatendencias en Tecnología continuación

4

2005

2013

Page 7: Reproducible Research

5

Escalabilidad y Almacenamiento Masivo

Page 8: Reproducible Research

6

Influencia de Métodos Computacionales

Page 9: Reproducible Research

7

Nuevos Paradigmas en InvestigaciónTeoría, experimentación, computación, descubrimiento orientado a datos

Modelo clásico: “Query the world” (Adquisición de datos para una determinada hipótesis).

Nuevo modelo: “Download the world, query the DB” (Adquisición masiva de datos para soportar muchos hipótesis) Ciencia orientada a datos

Page 10: Reproducible Research

7

Nuevos Paradigmas en InvestigaciónTeoría, experimentación, computación, descubrimiento orientado a datos

Modelo clásico: “Query the world” (Adquisición de datos para una determinada hipótesis).

Nuevo modelo: “Download the world, query the DB” (Adquisición masiva de datos para soportar muchos hipótesis) Ciencia orientada a datos

Ejemplos:

Astronomía: Estudios de alta resolución y alta frecuencia Biología: Automatización de laboratorios, análisis de secuencias Oceanografía: Modelos de alta resolución, sensores de bajo costo

Page 11: Reproducible Research

8

Nuevos Paradigmas en Investigación continuación

La tecnología facilita la comunicación y c o m p a r t i c i ó n a c e l e r a n d o e l d e s c u b r i m i e n t o c i e n t í f i c o y promoviendo la inteligencia colectiva.

• Las redes sociales pueden ser un medio para compartir ideas e información.

• Están apareciendo áreas emergentes para mejorar los procesos sociales con tecnología para resolver problemas difíciles utilizando las aportaciones de un grupo. Ciencia interconectada

Page 12: Reproducible Research

Artículos Acerca de Ciencias Computacionales

Un artículo acerca de ciencias computacionales en una publicación científica no es la investigación en si, es solamente la presentación del estudio. El trabajo real es el entorno completo de software, los datos completos y el conjunto completo de programas (código) que genera los resultados.

9

Page 13: Reproducible Research

La Importancia del Código Fuente

10

Scientific communication relies on evidence that cannot be entirely included in publications, but the rise of computational science has added a new layer of inaccessibility. Although it is now accepted that data should be made available on request, the current regulations regarding the availability of software are inconsistent. We argue that, with some exceptions, anything less than the release of source programs is intolerable for results that depend on computation. The vagaries of hardware, software and natural language will always ensure that exact reproducibility remains uncertain, but withholding code increases the chances that efforts to reproduce results will fail.

doi:10.1038/nature10836

doi: 10.1126/science.1218263

Page 14: Reproducible Research

Principales Razones para no Compartir

11

Código Datos

77% Tiempo para documentar y depurar 54%

52% Contestar las preguntas de usuarios 34%

44% No recibir reconocimiento 42%

40% Posibilidad de patentes —

34% Barreras legales (derechos de autor) 41%

— Tiempo para verificar la liberación 38%

30% Posible pérdida de futuras publicaciones 35%

30% Dar ventaja a competidores 33%

20% Limitaciones de almacenamiento 29%

Survey of Machine Learning Community (Stodden, 2010)

Page 15: Reproducible Research

Otras Razones para no Compartir

12

Aún no está listo. N e c e s i t o o t r a publicación.

Está muy feo. No hemos tenido la opo r tun idad de depurarlo.

La política de la Institución no nos permite compartir.

N o t e n e m o s e l personal suficiente. A d e m á s n o e s n e c e s a r i o p a r a entender el artículo.

La persona que lo hizo y a n o e s t á c o n n o s o t r o s . N o podemos localizarlo ni encontrar la versión.

No lo entenderías. De hecho nadie lo e n t i e n d e n i l o p u e d e h a c e r funcionar.

No hemos tenido t i e m p o p a r a documentarlo. Está lleno de hacks.

Sólo funciona con una versión muy antigua de Matlab. Danos oportunidad de migrarlo.

T e n g o q u e preguntar si te lo p o d e m o s compartir.

Page 16: Reproducible Research

Principales Razones Para Compartir

13

Código Datos

91% Alentar el avance científico 81%

90% Fomentar la participación de otros 79%

86% Ser un buen miembro de la comunidad cientifica 79%

82% Establecer un estándar 76%

85% Mejorar la investigación 74%

81% Lograr que otros investigadores trabajen en el problema 79%

85% Mayor publicidad 73%

78% Retroalimentación 71%

71% Encontrar nuevos colaboradores 71%Survey of Machine Learning Community (Stodden, 2010)

Page 17: Reproducible Research

Analogia con Artículos sobre Matemáticas

14

No sería concebible que un artículo de matemáticas no incluyera las demostraciones de los lemas, teoremas y corolarios.

Ni tampoco que los lectores de dichos artículos no tuvieran interés en ver las demostraciones ni los autores en incluirlos en la publicación.

Y que al solicitar la demostración como árbitros o lectores nos dieran cualquiera de estas razones para no poder o no querer compartirla:

• La demostración está muy fea.• No he trabajado en los detalles, pero es

sencillo demostrarlo.• La demostración es propiedad intelectual.• Estoy considerando comercializar la

demostración.• El artículo se extendería demasiado.• Implica matemáticas sofisticadas y limitaría

la audiencia del artículo.

© Sidney Harris

Adaptado de “Top 10 Reasons to Not Share Your Code”, Randall J. LeVeque

Page 18: Reproducible Research

ReproducibilidadPilar fundamental del método científico:

“La capacidad de repetir un experimento, en cualquier lugar y por cualquier persona”

15

Page 19: Reproducible Research

16

Repetibilidad vs Reproducibilidad

Se obt ienen l o s m i s m o s resultados al e j e c u t a r e l mismo código

Repetibilidad Se obt ienen di ferentes resultados al ejecutar el mismo código

Reproducibilidad Se obtienen los mismos resu l t ados usando un programa diferente

Los resultados no pueden ser r e p e t i d o s n i reproducidos

Page 20: Reproducible Research

17

Estadísticas Sobre ReproducibilidadDe  18  ar(culos,  los  resultados  de  10  no  se  pueden  reproducir

Page 21: Reproducible Research

18

Crisis de Credibilidad - Manipulación de Resultados

Page 22: Reproducible Research

18

Crisis de Credibilidad - Manipulación de Resultados

Resumen del caso: 10 artículos retirados, 6 en correcciones o parcialmente retirados. Demandas al hospital por pacientes.

El otro pilar del método científico es la refutación. Desafortunadamente este no es caso aislado. Para la mayoría de los casos, no es posible verificar los resultados y conclusiones de los artículos.

Page 23: Reproducible Research

19

El Problema Sobre Artículos Retirados

Page 24: Reproducible Research

20

Estructura de un ArtículoEstablecer un dominio

Identificar área de investigación general / revisar investigación previa

Establecer un nichoExistencia de gaps / pregunta

OcuparloPropósito de investigación / hallazgos /

esbozo de artículo

Introducción ¿Qué pregunta o problema fue estudiado?

Page 25: Reproducible Research

20

Estructura de un ArtículoEstablecer un dominio

Identificar área de investigación general / revisar investigación previa

Establecer un nichoExistencia de gaps / pregunta

OcuparloPropósito de investigación / hallazgos /

esbozo de artículo

Método

Resultados

Introducción ¿Qué pregunta o problema fue estudiado?

¿Cómo se abordó el problema?

¿Cuáles son los hallazgos? ¿Cómo se probó la validez de la hipotesis?

Page 26: Reproducible Research

20

Estructura de un ArtículoEstablecer un dominio

Identificar área de investigación general / revisar investigación previa

Establecer un nichoExistencia de gaps / pregunta

OcuparloPropósito de investigación / hallazgos /

esbozo de artículo

Resumen de hallazgoscon respecto a las preguntas de la

investigación

Conclusiónrecomendaciones

Método

Resultados

Introducción ¿Qué pregunta o problema fue estudiado?

Discusión ¿Qué significan?

¿Cómo se abordó el problema?

¿Cuáles son los hallazgos? ¿Cómo se probó la validez de la hipotesis?

Page 27: Reproducible Research

21

Anatomia de un Artículo

Page 28: Reproducible Research

21

Anatomia de un Artículo

Page 29: Reproducible Research

21

Anatomia de un Artículo

Page 30: Reproducible Research

21

Anatomia de un Artículo

Page 31: Reproducible Research

21

Anatomia de un Artículo

Este artículo se compone de 11 páginas con • texto incluyendo 7 fórmulas y 1 algoritmo • 12 figuras • 6 tablas

No se puede apreciar el esfuerzo y tiempo de la investigación y su conceptualización. También se desconoce el entorno de cómputo completo.

Page 32: Reproducible Research

Flujo de Trabajo

22

Datos Datos procesados Métodos

Artefactos

Figuras

Tablas

Resultados Numéricos

Artículo

Texto

Código

Autor

Lector

Page 33: Reproducible Research

Flujo de Trabajo

22

Datos Datos procesados Métodos

Artefactos

Figuras

Tablas

Resultados Numéricos

Artículo

Texto

Código

Autor

Lector

¿Cuál es el problema con este flujo?

Page 34: Reproducible Research

Flujo con Intervención Manual

23

Page 35: Reproducible Research

Flujo con Intervención Manual

23

Principales inconvenientes:

• Sujeto a errores • Demandante en tiempo

Page 36: Reproducible Research

Prácticas de Ingeniería de Software

24

Page 37: Reproducible Research

Generación Dinámica de Documentos

25

+

Código y Texto

Imágenes estáticas

Producto intermedio incluye resultados (figuras

y tablas)

Producto final

+

Datos

Page 38: Reproducible Research

Generación Dinámica de Documentos

25

+

Código y Texto

Imágenes estáticas

Producto intermedio incluye resultados (figuras

y tablas)

Producto final

+

Datos

Entorno de Cómputo

Page 39: Reproducible Research

Generación Dinámica de Documentos

25

+

Código y Texto

Imágenes estáticas

Producto intermedio incluye resultados (figuras

y tablas)

Producto final

+

Datos

Entorno de Cómputo

Se puede extender o adaptar a otros t i p o s d e d o c u m e n t o s : t e s i s , presentaciones, libros o a otro formato de salida, por ejemplo HTML.

Page 40: Reproducible Research

Ejemplo

26

Page 41: Reproducible Research

Ejemplo

26

Este documento es la versión corta de un reporte sobre modelos de regresión.

Page 42: Reproducible Research

Ejemplo continuación

27

Page 43: Reproducible Research

Ejemplo continuación

27

Page 44: Reproducible Research

Ejemplo continuación

28

Page 45: Reproducible Research

Ejemplo continuación

28

Page 46: Reproducible Research

Múltiples Versiones

29

Page 47: Reproducible Research

Múltiples Versiones

29

L a s i t u a c i ó n s e c o m p l i c a introduciendo más revisores: árbitros, sinodales, colaboradores, colegas.

¿ Q u é s u c e d e s i e n u n a corrección / adición se borra una sección importante, se genera un error, o se altera el funcionamiento de los programas?

¿Cómo se coordinan o sincronizan los cambios si es un trabajo c o n j u n t o e n t r e v a r i o s colaboradores?

Page 48: Reproducible Research

Control de Versiones

30

Page 49: Reproducible Research

Control de Versiones

30

Desarrollo

Producción

Page 50: Reproducible Research

Control de Versiones

30

Defecto

Page 51: Reproducible Research

Control de Versiones

30

Funcionalidad adicional

Page 52: Reproducible Research

Control de Versiones

30

Funcionalidad adicional

Page 53: Reproducible Research

Un Documento de Mayor Complejidad

31

Page 54: Reproducible Research

Un Documento de Mayor Complejidad

31

Si la generación completa del documento se tarda alrededor de 2 horas.

¿Qué sucede si solo tengo que modificar 2 figuras del capítulo 2 y una tabla de la sección de conclusiones?

La solución simple es volver a generar todo el documento, pero no es la solución óptima ya que si hay un error en el cambio hay que esperar a que el documento esté listo para revisarlo y por otro lado, continuamente hay que crear nuevas versiones durante el periodo de revisión.

Page 55: Reproducible Research

Gestor de Dependencias

32

Page 56: Reproducible Research

Gestor de Dependencias

32

La idea es actualizar automáticamente sólo un conjunto de artefactos a partir de sus dependencias (otros artefactos), cada vez que éstas cambien en lugar de realizar la actualización completa de todos los artefactos.

Resultado: Un ahorro considerable en tiempo para proyectos grandes.

Page 57: Reproducible Research

El Código no Funciona

33

Page 58: Reproducible Research

El Código no Funciona

33

Solución:

Contar con una máquina virtual local o en la nube donde se encuentre instalado la misma versión del sistema operativo con el ambiente de desarrollo idéntico, por ejemplo: ambiente de R, librerías, LaTeX, etc.

Page 59: Reproducible Research

Entorno de Cómputo

34

make

Page 60: Reproducible Research

Entorno de Cómputo

34

make

Page 61: Reproducible Research

Entorno de Cómputo

34

make

Page 62: Reproducible Research

Entorno de Cómputo

34

make

Page 63: Reproducible Research

Entorno de Cómputo

34

make

Page 64: Reproducible Research

Entorno de Cómputo

34

make

Page 65: Reproducible Research

Otros Conceptos de Ingeniería de Software

35

‣ Planeación del proyecto

‣ Análisis, Arquitectura y Diseño

‣ Documentación y depuración de código

‣ Pruebas ‣ Funcionales

‣ Integrales

‣ Automatización

‣ Optimización de código

‣ Administración de defectos

‣ Integración continua

Page 66: Reproducible Research

Iniciativas

36

Estándares

Page 67: Reproducible Research

Iniciativas

36

Estándares

Artículos ejecutables

Page 68: Reproducible Research

Iniciativas

36

BioS

instruments and

materi

Taverna  

Estándares

Artículos ejecutables Plataformas

Page 69: Reproducible Research

Si estás esperando alguna señal, este es el momento para empezar a experimentar con estos conceptos de Ingeniería de Software.

El principal beneficiado serás tú.

Page 70: Reproducible Research

38

Referencias

Otras fuentes

Page 71: Reproducible Research