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:
    • Redacción: introducción, objetivo y presentación de los datos (en editor de texto)
    • Análisis de datos: figuras, tablas (en software estadístico)
    • Redacción: insertar figuras y tablas (en editor de texto)
    • Redacción: presentar el modelo que se va a usar (en editor de texto, a veces con símbolos matemáticos)
    • Análisis de datos: ajuste del modelo, obtención de parámetros, comprobaciones gráficas, etc. (en software estadístico)
    • 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 varias muestras de las disponibles en los datos (subgrupos, etc.)
    • Con un mismo modelo pero con distintos 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: 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
  • Rstudio: una IDE de R que permiter escribir en 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.

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órmula “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)

Operadores lógicos

  • &, |, ! (no confundir con otros lenguajes)

Operador de asignación

  • = o bien <-.

Comparaciones

  • ==, !=, <, <=, etc.

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.

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 hoja 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 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

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

11.1. Escribe un resumen estadístico de todas las columnas de iris usando una única función, y un resumen del tipo de objeto que almacena la variable iris usando otra función.

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

11.2. Por el Teorema del Límite Central, se puede suponer que la “anchura de pétalo” de las flores “iris” se ajusta a la distribución normal. Realiza un histograma de la variable “anchura de pétalo” y comenta si decides intuitivamente que esos datos siguen el modelo normal o no.

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

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

11.3. En las condiciones del ejercicio anterior, las gráficas pueden ser subjetivas para tomar decisiones. Realiza un contraste de hipótesis para confirmar o descartar que los datos de “anchura de pétalo” de las flores “iris” se ajustan a la distribución normal. Comenta el resultado del contraste en función del nivel de significación que suelen asumir los investigadores en general.

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

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

11.4. Dibuja un diagrama de cajas comparativo de la variable “anchura de pétalo” para las tres especies de flores (“setosa”, “versicolor” y “virginica”). Comenta, intuitivamente en base a la gráfica, si las medianas de las tres especies están lo bastante próximas como para pensar que, si se tomaran infinitas flores de cada especie, las medias de las tres muestras infinitas podrían coincidir.

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

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

11.5. Realiza un contraste de hipótesis para decidir si se puede descartar, o no, que la anchura media de pétalos en las poblaciones de flores “versicolor” y “virginica” es la misma. Comenta el resultado del contraste en función del ni vel de significación que suelen asumir los investigadores en general.

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

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

11.6. Centrémonos en la submuestra de las flores de especie “virginica”. Calcula la media y cuasidesviación típica de la columna Petal.Width, y haz que aparezca en la línea de comentario usando código R directamente (en lugar de copiar el número).

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

COMENTARIO: La media es ??? y la cuasidesviación típica es ???. (NO COPIAR LOS NÚMEROS, SINO USAR CÓDIGO R EN LÍNEA)

11.7. Supón que la “anchura de pétalo” de cada flor “virginica” que recojas, va a ser un número aleatorio, que sigue el modelo normal. Usaremos como \(\mu\) y \(\sigma\) de ese modelo, los valores que has calculado en el ejercicio anterior. A partir de entonces, ¿qué porcentaje, a largo plazo, de flores “virginica” tendrán una “anchura de pétalo” inferior a las 5.00 cm?

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

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

11.8. Escribe el intervalo de confianza para el verdadero valor medio \(\mu\) de la “anchura de pétalo” de flores “virginica” al 90%. Haz que aparezca en el comentario (sin copiar y pegar).

# 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.9. Repite la frase a continuación, completando con comandos de \(\LaTeX\) la fórmula que falta:

  • “Sea \(\overline{x}\) la media de una gran muestra de una variable aleatoria \(X\). Entonces la media de \(X\) (el parámetro \(\mu\)) pertenece al intervalo ecuacion con una confianza del \(100(1-\alpha)\)%”

COMENTARIO: “Sea \(\overline{x}\) la media de una gran muestra de una variable aleatoria \(X\). Entonces la media de \(X\) (el parámetro \(\mu\)) pertenece al intervalo \(????????\) con una confianza del \(100(1-\alpha)\)%”