reproducible research

Post on 19-Feb-2016

24 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides about reproducible research

TRANSCRIPT

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

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.

Megatendencias en Tecnología

3

Entre

gaAcceso

ContenidoCom

portam

iento

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

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.

Megatendencias en Tecnología continuación

4

2005

2013

5

Escalabilidad y Almacenamiento Masivo

6

Influencia de Métodos Computacionales

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

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

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

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

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

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)

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.

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)

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

ReproducibilidadPilar fundamental del método científico:

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

15

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

17

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

18

Crisis de Credibilidad - Manipulación de Resultados

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.

19

El Problema Sobre Artículos Retirados

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?

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?

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?

21

Anatomia de un Artículo

21

Anatomia de un Artículo

21

Anatomia de un Artículo

21

Anatomia de un Artículo

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.

Flujo de Trabajo

22

Datos Datos procesados Métodos

Artefactos

Figuras

Tablas

Resultados Numéricos

Artículo

Texto

Código

Autor

Lector

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?

Flujo con Intervención Manual

23

Flujo con Intervención Manual

23

Principales inconvenientes:

• Sujeto a errores • Demandante en tiempo

Prácticas de Ingeniería de Software

24

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

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

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.

Ejemplo

26

Ejemplo

26

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

Ejemplo continuación

27

Ejemplo continuación

27

Ejemplo continuación

28

Ejemplo continuación

28

Múltiples Versiones

29

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?

Control de Versiones

30

Control de Versiones

30

Desarrollo

Producción

Control de Versiones

30

Defecto

Control de Versiones

30

Funcionalidad adicional

Control de Versiones

30

Funcionalidad adicional

Un Documento de Mayor Complejidad

31

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.

Gestor de Dependencias

32

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.

El Código no Funciona

33

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.

Entorno de Cómputo

34

make

Entorno de Cómputo

34

make

Entorno de Cómputo

34

make

Entorno de Cómputo

34

make

Entorno de Cómputo

34

make

Entorno de Cómputo

34

make

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

Iniciativas

36

Estándares

Iniciativas

36

Estándares

Artículos ejecutables

Iniciativas

36

BioS

instruments and

materi

Taverna  

Estándares

Artículos ejecutables Plataformas

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ú.

38

Referencias

Otras fuentes

top related