1. EL SOFTWARE ESTADÍSTICO R

2. EDICIÓN DE INFORMES ESTADÍSTICOS

2.1 Flujo de trabajo y peligros

  • Al hacer un informe sobre un estudio estadístico es habitual el flujo:
    1. Redacción: introducción, objetivo y presentación de los datos (en editor de texto)
    2. Análisis de datos: figuras, tablas (en software estadístico)
    3. Redacción: insertar figuras y tablas (en editor de texto)
    4. Redacción: presentar el modelo que se va a usar (en editor de texto, a veces con símbolos matemáticos)
    5. Análisis de datos: ajuste del modelo, obtención de parámetros, comprobaciones gráficas, etc. (en software estadístico)
    6. Redacción: escribir el modelo ajustado, los valores de los parámetros, las gráficas de comprobación,…, interpretaciones de lo obtenido, conclusiones (en editor de texto, a veces con símbolos matemáticos, copiando de allá y pegando aquí, o bien tecleando a ojo).
  • Es fácil despistarse, porque además, podemos probar:
    • Con varios subgrupos de los datos
    • Con un modelo pero con varias alternativas de parámetros
    • Con varios modelos diferentes
  • Si se van creando archivos de figuras, tablas, etc., cuyos nombres dependen de todas esas elecciones, es fácil acabar en un maremagnum de ficheros difícil de organizar

2.2 Investigación reproducible

  • Investigación reproducible: paradigma que permite al lector seguir todos los pasos que ha hecho el autor, y así poder confiar en los resultados que aparecen y el texto sobre sus conclusiones
  • Una solución: incluir en un único documento la edición del texto y los scripts de análisis
  • RMarkdown: un tipo de documento que lo consigue (R + Markdown + LaTeX + …)
  • Rstudio: una IDE de R que permite escribir y ejecutar formato RMarkdown

2.3 ¿Qué es RMarkdown?

  • Un paquete de R capaz de procesar un fichero de texto plano con:
    • Texto en formato Markdown (devuelve texto con formato en el documento resultante)
    • Código R (se ejecuta en R y se incorporan los resultados de R en el documento)
    • Lenguaje \(\LaTeX\) (devuelve textos con simbología matemática de calidad en el documento resultante)
  • Se compila y produce un documento en formato HTML (o PDF o DOCX) sin las desventajas de ir de un software a otro copiando y pegando

2.4 ¿Cómo se usa?

  • El software Rstudio ha creado una interfaz muy sencilla para usar RMarkdown. Para ver un ejemplo de lo anterior:
    • Abre RStudio,
    • Menú Archivo > Nuevo documento > R Markdown...
    • Compila con CTRL+SHIFT+K y observa la salida.
  • ¿Cómo introducir y ejecutar código de R? Dos opciones:
    • Bloques aislados con scripts: bloc-r-rstudio-CAS
    • En línea: por ejemplo “La suma de los números del 1 al 100 es r-rstudio-inline-CAS

2.5 El software Rstudio

  • RStudio es un entorno construido alrededor de una instalación de R que integra muchas utilidades.
  • Entre ellas la compilación de ficheros de tipo RMarkdown
    • Menú Archivo > Nuevo documento > R Markdown...
    • Compila con CTRL+SHIFT+K y observa la salida.
  • Ayuda sobre la sintaxis de lenguage Markdown: menú Ayuda > Guía rápida Markdown
  • Ayuda sobre la sintaxis de lenguaje R: menú Ayuda > Chuletas > Guía rápida R Markdown
  • Permite gestionar proyectos con Git o SVN (sistemas de control de versiones)

2.6 El lenguaje \(\LaTeX\)

  • Produce textos matemáticos de alta calidad tipográfica
  • Ejemplos:
    • \(\overline{x} = \frac{\sum_{i=1}^n x_i}{n}\)
    • \(P(a < X \leq b) = \int_a^b f(x) dx\)
    • \(f(x) = \frac{1}{\sqrt{2\pi \sigma^2}} \mathrm{e}^{- \frac{(x - \mu)^2}{2\sigma^2}}\)
  • Los comandos de LaTeX se escriben:
    • Entre signos dólar sencillos ($, para fórmulas “en línea”)
    • o dobles ($$, para fórmulas en párrafo aparte y centradas).
  • Ver este enlace para consultar los comandos básicos.

3. EL LENGUAJE DE PROGRAMACIÓN DE R

4. CONSTANTES Y CLASES DE OBJETOS EN R

Constantes numéricas, de cadena de texto, lógicas y otras

  • 3, 0.1, -2.18 son constantes numéricas
  • Inf es un símbolo para el infinito (como 1/0)
  • NA es un símbolo para un dato no disponible (Not Available)
  • NaN es un símbolo para el resultado de una operación imposible (como 0/0 o Not a Number)
  • NULL es un símbolo para un objeto vacío, que no ocupa memoria
  • "a", 'dos palabras', etc., son constantes de cadena de texto (entrecomilladas con comillas sencillas o dobles)
  • TRUE y FALSE son constantes lógicas (no confundir con otros lenguajes)

Vectores

  • Se definen:
    • Concatenando constantes: por ejemplo v = c(1, 5, 6) o v = c('edad', 'altura', 'grado')
    • Leyendo de fichero: por ejemplo v = scan(file=..., ...)
    • De números consecutivos: por ejemplo v = 1:10
  • Subvectores: indexar con corchetes, comenzando en 1 (es decir, la primera componente del vector v es v[1], no v[0])
    • Usando condiciones: v[ v < 4 ] selecciona datos del vector v que son menores a 4.
  • Operadores vectoriales: actuan componente a componente
    • Aritméticos: +, -, *, /, ^ (suma, resta, multiplicación, división, potencia)
    • Lógicos: &, |, ! (y, o, no. No confundir con otros lenguajes)
    • De asignación: = (o bien <-)
    • De comparación: ==, !=, <, <=, etc.

Matrices

  • Se definen con m = matrix(data=..., ncol=..., byrow=...) donde:
    • data: vector con los datos,
    • ncol: número de columnas,
    • byrow: ¿se completa por filas? TRUE o FALSE.
  • Submatrices: corchetes con dos argumentos, fila y columna. Por ejemplo m[3,5] o m[3,] o m[,5]

Hojas de datos

  • Como las hojas de cálculo (con columnas que pueden ser algunas de números y otras de texto)
  • Se definen:
    • Concatenando vectores de igual longitud: por ejemplo h = data.frame(numeros=1:3, letras=c('a', 'b', 'c')).
    • Leyendo de fichero: por ejemplo h = read.table(file=..., ...)
  • Sub-hojas de datos:
    • Acceso a UNA columna de hojas de datos: hoja$etiquetaColumna o bien hoja[, numeroColumna] o bien hoja[, 'etiquetaColumna'] (como si fuera una matriz)
    • Acceso a VARIAS columnas de hojas de datos: hoja[, vectorNumerosColumnas] o hoja[, vectorEtiquetasColumnas].
    • Acceso a UNA o VARIAS filas de hojas de datos: hoja[vectorNumerosFilas, ] o hoja[condicionCumplidaPorFilas, ]

Listas

  • Clase muy útil para “juntar” objetos de distintos tipos en un solo objeto.
  • Se definen concatenando objetos de cualquier tipo: por ejemplo l = list(comp1=1:5, comp2=matrix(1:9, 3)).
  • Muchas funciones que devuelven varios objetos, los devuelven unidos en una lista (regresión lineal, contrastes de hipótesis, etc.).
  • Sub-listas: con el operador corchete sencillo. Por ejemplo l[1] no es el primer objeto de la lista, sino que es una nueva lista con un solo objeto (del tipo que sea éste).
  • Acceso a los objetos que contiene la lista l: operador $ o doble corchete [[ ]].
    • l$etiquetaComponente
    • l[[numeroComponente]] (ojo que el corchete sencillo devuelve una sublista, no el objeto contenido)
    • l[['etiquetaComponente']] (ojo que el corchete sencillo devuelve una sublista, no el objeto contenido)

5. FUNCIONES ÚTILES

6. ESTADÍSTICAS DE 1 VARIABLE

7. ESTADÍSTICAS DE 2 VARIABLES

8. VARIABLES ALEATORIAS: PROBABILIDADES Y SIMULACIONES

9. INTERVALOS DE CONFIANZA Y CONTRASTES DE HIPÓTESIS PARAMÉTRICOS

10. ALGUNOS CONTRASTES DE HIPÓTESIS NO PARAMÉTRICOS:

11. EJERCICIOS

11.1. Reproduce en COMENTARIO la frase indicada, usando comandos de \(\LaTeX\) para componer la fórmula del intervalo (que está en formato imagen).

  • “El intervalo de confianza para la media \(\mu\) de un modelo normal de varianza desconocida, al nivel de confianza del \(100(1-\alpha)\)%, es ecuacion, donde \(\overline{x}\), \(s\) y \(n\) son, respectivamente, la media, la desviación típica y el tamaño de una muestra.”

COMENTARIO: “?????????????”

11.2. Completa la frase de COMENTARIO para que contenga una suma de dos números aleatorios de 3 cifras cada uno (que debes definir antes en el bloque de código R). No pongas semilla para que vaya cambiando a cada compilación del documento.

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: La suma de ????????? y ????????? es ?????????

Escribe data(iris) y tendrás la variable iris definida. Se trata de un conjunto de 150 flores de las que se ha anotado:

  • Longitud y anchura de sépalo (2 variables)
  • Longitud y anchura de pétalo (2 variables)
  • Especie de la flor

11.3. Visualiza las primeras filas de la hoja de datos iris, y a continuación muestra un resumen estadístico de todas las columnas (un comando cada cosa).

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

11.4. Realiza un histograma de la variable “anchura de pétalo” y comenta si parece que esos datos se ajustan a una campana de Gauss (modelo normal). Coméntalo.

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: ??????????????????????????

11.5. Dibuja un diagrama de cajas comparativo de la variable “anchura de pétalo” para las tres especies de flores (“setosa”, “versicolor” y “virginica”). Comenta cómo puede ayudar esa gráfica a clasificar una flor a partir de lo que mide la anchura de su pétalo.

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: ??????????????????????????

11.6. Completa la frase de COMENTARIO con código R para que se inserten los valores correctos.

COMENTARIO: La media de la anchura de pétalo en las flores de la especie virginica es ??? y la cuasidesviación típica es ???

11.7. Escribe en la frase de COMENTARIO el intervalo de confianza para el verdadero valor medio \(\mu\) de la “anchura de pétalo” de flores “virginica” al 90% (usando código R).

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: El intervalo de confianza es ???????????????????? (USA CÓDIGO R EN LÍNEA)

11.8. Realiza las gráficas para ver la distribución conjunta de cada pareja de variables y colorea los puntos según la especie de la flor. Comenta qué especie de flor es más fácil de clasificar una vez se conocen sus medidas de pétalo y sépalo.

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: ????????????????????

11.9. Escribe la matriz de correlaciones de las 4 variables numéricas, y comenta cuál es la pareja más correlacionada, y si se intuía en la gráfica del problema anterior.

# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

COMENTARIO: ????????????????????