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