+ - 0:00:00
Notes for current slide
Notes for next slide

Estadística Correlacional

Inferencia, asociación y reporte


Juan Carlos Castillo

Sociología FACSO - UChile

2do Sem 2024

correlacional.netlify.app

Sesión 13:

Escritura en documentos dinámicos y reproducibilidad

1 / 68

Laboratorio de Investigación Social Abierta

lisa-coes.com

2 / 68

Programa

A. Reproducibilidad

B. Texto plano y Markdown

C. RMarkdown

D. Protocolos reproducibles

3 / 68

Programa

A. Reproducibilidad

B. Texto plano y Markdown

C. RMarkdown

D. Protocolos reproducibles

4 / 68

Ciencia abierta


5 / 68

6 / 68

¿Qué porcentaje de los estudios publicados son reproducibles?







... alrededor de un 40%! (... varía por disciplina)

7 / 68

9 / 68

Elementos para la reproducibilidad

  • Escritura abierta:

    • texto simple/plano, libre de software comercial
    • citas
    • documentos dinámicos
10 / 68

Elementos para la reproducibilidad

  • Escritura abierta:

    • texto simple/plano, libre de software comercial
    • citas
    • documentos dinámicos
  • Flujo de trabajo documentado y reproducible

10 / 68

Elementos para la reproducibilidad

  • Escritura abierta:

    • texto simple/plano, libre de software comercial
    • citas
    • documentos dinámicos
  • Flujo de trabajo documentado y reproducible

  • Carpeta de proyecto autocontenida y transferible

10 / 68

Elementos para la reproducibilidad

  • Escritura abierta:

    • texto simple/plano, libre de software comercial
    • citas
    • documentos dinámicos
  • Flujo de trabajo documentado y reproducible

  • Carpeta de proyecto autocontenida y transferible

  • Repositorio con datos y código de análisis abierto

10 / 68

Elementos para la reproducibilidad

  • Escritura abierta:

    • texto simple/plano, libre de software comercial
    • citas
    • documentos dinámicos
  • Flujo de trabajo documentado y reproducible

  • Carpeta de proyecto autocontenida y transferible

  • Repositorio con datos y código de análisis abierto

  • Control de versiones

10 / 68

Programa

A. Reproducibilidad

B. Texto plano y Markdown

C. RMarkdown

D. Protocolos reproducibles

11 / 68

Flujo de trabajo con procesador de texto tradicional

12 / 68

Abriendo el archivo de escritura tradicional

13 / 68

Desventajas del procesador tradicional

  • Barrera de pago/licencia para acceder a contenidos (propiedad)

  • Difícil versionamiento y llevar registro de quién hizo qué cambio, barrera a la reproducibilidad y colaboración

  • No permite un documento enteramente reproducible que combine texto y código de análisis (en caso de utilizarlo)



14 / 68

Escritura libre y abierta

  • independiente de programa comercial

  • independiente de plataformas específicas

  • permite combinar texto y análisis en un mismo documento

  • foco en los contenidos en lugar del formato

  • permite distintas opciones de formato final

15 / 68

Inspiración

16 / 68

Funcionamiento de escritura simple / plana

  • entorno: editor de texto

  • separación entre texto de entrada (input) y texto de salida (output)

  • foco en el input/contenido vs output/formato

  • marcas de edición: vínculo entre formato de input y output

  • sin cortar / pegar

17 / 68

Marcas de edición

  • Vínculo entre escritura en texto simple (input) y output

18 / 68

Principales Alternativas escritura simple

Latex

Markdown

  • sistema de escritura simple de amplio uso en la academia

  • alta calidad en salida a pdf

  • creado a comienzos de los 80 (Donald Knuth, Leslie Lamport)

19 / 68

Principales Alternativas escritura simple

Latex

Markdown

20 / 68

Principales Alternativas escritura simple

Latex

Markdown

  • creado por John Gruber y Aaron Swartz en 2004

  • forma de escritura simple con pocas marcas de formato

  • conversión a distintos formatos de salida (html, pdf)

  • Soporta encabezados, tablas, imágenes, tablas de contenidos, ecuaciones, links ...

  • filosofía: foco en contenido primero, el formato después.

21 / 68

Principales Alternativas escritura simple

Latex

Markdown

22 / 68

Principales Alternativas escritura simple

Latex

Markdown

23 / 68

Principales Alternativas escritura simple


Control de formato Marcas de edición Formatos de salida
LaTeX + + -
Markdown - - +
24 / 68

Markdown, pandoc y renderización

25 / 68

Ejemplos de marcas de edición en Markdown

  • Texto en negrita entre dos astericos: **negrita**

  • Texto en cursiva con un asterico por lado: *cursiva*

  • Títulos se marcan con # al principio, subtítulos ## , y así sucesivamente

  • Imágenes: ![](ruta-a-imagen)

  • Links: [](link-web)

26 / 68

Programa

A. Reproducibilidad

B. Texto plano y Markdown

C. RMarkdown

D. Protocolos reproducibles

28 / 68

Problemas de reproducibilidad en documentos de investigación

  • Proceso tradicional: cortar y pegar resultados en el documento de texto

  • Dificulta la reproducibilidad: ¿de dónde salieron esos resultados?

29 / 68

Desafiando el modelo cortar & pegar

  • Ideal de reproducibilidad: documento donde se combine texto y código que genera resultados presentados.

  • Limitación procesadores de texto: no permiten incorporar código & resultados de manera eficiente

  • Limitación software de análisis: permiten incorporar texto solo en un formato plano, no publicable

30 / 68

RMarkdown

31 / 68

RMarkdown: Acepciones

  • Lenguaje que combina código (R) y texto (Markdown)

  • Hoja de código escrita en RMarkdown (documento RMarkdown)

  • Librería de R que provee de una serie de herramientas para generar documentos dinámicos y publicarlos

32 / 68

Librería RMarkdown

  • Instalar la librería (o actualizarla, si está cargada) : install.packages("rmarkdown")

  • Al instalarla, también incorpora otras librerías (dependencies) que permiten trabajar y publicar con RMarkdown (como knitr y también tinitex, que permite generación documentos pdf vía Latex).

33 / 68

Escritura en RMarkdown

  • permite incluir trozos de código (chunks) en el texto

  • un chunk se especifica mediante una línea de código inicial ```{r}, y se cierra con ```

Aquí texto

```{r}
1 + 1
```

Aquí sigue el texto

34 / 68

Insertar chunks

Se pueden insertar rápidamente de la siguiente manera:

  • Menú en ventana de RStudio Insert > R

  • o, combinación Ctrl + Alt + i

35 / 68

Opciones de chunks

36 / 68

Opciones (principales) de chunks

  1. Mostrar código y resultado

  2. Mostrar solo el código

  3. Mostrar solo el resultado

  4. No mostrar ni código ni resultado

  5. Mostrar código sin ejecutarlo

  6. Entregar resultado en formato directo (ej: html o latex)

37 / 68

Especificación de opciones

  • las opciones se anotan dentro de la llave inicial posterior a la letra r: {r [opciones]}

  • las opciones principales son:

    • mostrar código {r echo=TRUE/FALSE}
    • mostrar resultado {r results='markup'/'hide'}
  • estas opciones se visualizan al momento de procesar el documento en algún formato de salida. A este procesamiento se le denomina renderizar (del ingles render ... no hay buena traducción)

38 / 68

1. Mostrar código y resultado (opción por defecto)

```{r}
1 + 1
```

(equivale a {r echo=TRUE results='markup'})

Renderiza

1 + 1
## [1] 2
39 / 68

2. Solo código, ocultando resultados:

```{r, results='hide'}
1 + 1
```

Renderiza:

1 + 1
40 / 68

3. Solo resultado

```{r, echo=FALSE}
1 + 1
```

Renderiza :

## [1] 2
41 / 68

4. Ni código ni resultado

```{r echo=FALSE results='hide'}
1 + 1
```

No renderiza

Se usa cuando se ejecuta un comando necesario pero que no se requiere/necesita dejar visible en el documento de salida (Ej: cargar base de datos)

42 / 68

5. Código sin ejecutar

```{r, eval=FALSE}
1 + 1
```

Se puede usar para dar un ejemplo de código que no requiere ser ejecutado

43 / 68

6. Resultado en formato directo de salida

```{r, results='asis'}
stargazer(datos1, type="html")
```
  • se utiliza principalmente para comandos de generación de tablas, que arrojan un código que luego puede ser interpretado por otro lenguaje (por ejemplo, html o LaTeX)
44 / 68

Quarto

45 / 68

Documentos en Quarto

  • Quarto es un programa que permite renderizar documentos que contienen código (texto y análisis) a distintos formatos, tales como documentos RMarkdown

  • Está disponible en para R en Rstudio, pero funciona como un programa aparte también para otros lenguajes (ej: Python)

  • El documento se genera al presionar el botón render (que activa función de la librería)

46 / 68

47 / 68

Generar documento en Quarto (.qmd)

  • RStudio: File > New File > Quarto document

  • se puede trabajar en modo visual o en código plano (source)

  • al principio aparece una sección entre tres guiones (---) donde se especifican ciertas opciones del documento (se denomina YAML)

  • el documento aparece con un texto y código de ejemplo que se puede luego borrar / reemplazar

48 / 68

Sobre formatos de salida

  • La conversión más simple y rápida es a html.

  • El resultado aparece en el visor (Viewer) de R, o se puede seleccionar otra opción de visualización desde la rueda de configuración al lado del botón render

  • El documento queda grabado como archivo (ej: probando.html) en el mismo directorio del archivo .qmd

49 / 68

Resumen RMarkdown / Quarto

  • Documentos dinámicos:

    • "tejiendo" texto y código de análisis en texto plano
    • reproducibilidad
  • Documentos dinámicos en R / RStudio

    • RMarkdown
    • Quarto
    • chunks y opciones

50 / 68

Programa

A. Reproducibilidad

B. Texto plano y Markdown

C. RMarkdown

D. Protocolos reproducibles

51 / 68

¿Cómo organizar el flujo de trabajo?

A. Estilo personal (ad-hoc)

B. Protocolo reproducible

52 / 68

¿Cómo organizar el flujo de trabajo?

A. ad-hoc (menos reproducible)

  • cada investigador define numero de archivos, nombres, carpetas y organización

  • explicar al resto cómo se organiza

  • documentar en un archivo cómo se organiza

--> reproducibilidad y transparencia LIMITADA

53 / 68

¿Cómo organizar el flujo de trabajo?

B. Protocolo de trabajo reproducible

  • estructura de carpetas y archivos interconectados que refieren a reglas conocidas

  • autocontenido: toda la información necesaria para la reproducibilidad se encuentra en la carpeta raíz o directorio de trabajo.

54 / 68

Estándares de reproducibilidad

55 / 68

Ejemplo protocolo reproducible: TIER




56 / 68

Protocolo TIER



57 / 68

Protocolo IPO - Estructura de archivos y carpetas

59 / 68

Protocolo IPO en contexto R/RMarkdown

  • RMarkdown tiene una lógica en sí reproducible, y puede simplificar el uso de protocolos.

  • Si todo el procesamiento se hace en el mismo documento paper.qmd, entonces basta con la carpeta input de IPO.

  • Recomendación: realizar la preparación en código externo (carpeta proc) y el análisis en el paper.Rmd.

  • Es solo una propuesta, el sentido último es la reproducibilidad más que el cumplimiento estricto

60 / 68

Proyectos autocontenidos

  • reproducible sin necesidad de archivos externos al directorio

  • requisito: establecer directorio de trabajo

    • posición de referencia de todas las operaciones al interior del proyecto

    • también llamado directorio raíz

61 / 68

Estableciendo directorio de trabajo

  • forma tradicionalen R:

    • setwd(ruta-a-carpeta-de-proyecto)

    • problemas: hace referencia a ruta local en el computador donde se está trabajando, por lo tanto no es reproducible y se debe evitar

  • alternativa sugerida en R: RStudio Projects

62 / 68

RStudio Projects

  • La funcionalidad Projects de RStudio permite establecer claramente un directorio de trabajo de manera eficiente

  • Para ello, genera un archivo de extensión .Rproj en el directorio raiz de la carpeta del proyecto

  • Luego se facilita acceder a la carpeta del proyecto en RStudio ejecutando desde el administrador de archivos del computador (file manager) el archivo .Rproj

  • para comprobar, ejecutar getwd() y debería dar la ruta hacia la carpeta del proyecto

63 / 68

RStudio Projects

  • File -> New Project





64 / 68

RStudio Projects

65 / 68

Abriendo la sesión de RStudio como proyecto


  • identificar en la carpeta respectiva el archivo .Rproj

  • ejecutar y se abre R / RStudio desde ese directorio como raíz

66 / 68

Resumen

- ciencia abierta y reproducibilidad

- texto plano y Markdown

- Rmarkdown y documentos dinámicos

- Protocolo de proyecto reproducible

67 / 68

Más info:

web: lisa-coes.com

Github: github.com/lisa-coes

68 / 68

Laboratorio de Investigación Social Abierta

lisa-coes.com

2 / 68
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
sToggle scribble toolbox
oTile View: Overview of Slides
Esc Back to slideshow