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)
    • Bloques de código R (se ejecutan 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:

  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
  1. Centrémonos en la submuestra de las flores de especie “virginica”. Escribe la media y cuasidesviación típica de la columna Petal.Width.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
  1. Centrémonos en la submuestra de las flores de especie “virginica”. Dibuja un histograma de la variable Petal.Width
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
  1. Por el Teorema del Límite Central, se puede pensar que la “anchura de pétalo” de las flores de especie “virginica” se ajustan a la distribución normal. ¿Puedes contrastar ese hecho usando el habitual nivel de significación del 5%? Escribe la respuesta con palabras comprensibles (Ayuda: asigna el contraste a una variable, luego usa str() sobre esa variable, que es una lista, y después usa el operador $ para acceder al p-valor de la lista).
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

La muestra nos hace decidir que la variable “anchura de pétalo” de las flores de la especie “virginica” [SÍ / NO] se ajusta a la distribución normal, porque… [COMPLETAR USANDO EL P-VALOR]

  1. Realiza estimaciones puntuales para la media y la varianza de la “anchura de pétalo” en toda la población de flores de especie “virginica”.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

La estimación puntual de la media es r. La estimación puntual para la varianza es r.

  1. Si tomamos las estimaciones del ejercicio anterior como verdaderos valores de los parámetros de la normal (de la que provendría la muestra observada). ¿Qué porcentaje, a largo plazo, de flores “virginica” tendrán una “anchura de pétalo” inferior a las 2.00 cm?
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
  1. Ahora tomamos la submuestra con las flores de la “versicolor”. Contrasta si esos datos, en la variable “anchura de pétalo” provienen del modelo normal, usando el mismo nivel del significación del 5%.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

La muestra nos hace decidir que la variable “anchura de pétalo” de las flores de la especie “virginica” [SÍ / NO] se ajusta a la distribución normal, porque… [COMPLETAR USANDO EL P-VALOR]

  1. Dibuja un diagrama de caja comparativo de la variable “anchura de pétalo” para las submuestras de flores “versicolor” y “virginica”. ¿Están muy próximas las medias de dichas muestras? ¿Crees que las medias poblacionales de ambas especies pueden coincidir?
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
  1. Realiza un contraste de hipótesis para ver si se puede descartar o no que la longitud media de pétalos en las poblaciones de flores “versicolor” y “virginica” sea la misma, usando el nivel de significación habitual del 5%.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R

Las muestras nos hacen decidir que las medias poblacionales de la variable “anchura de pétalo” en flores de especies “versicolor” y “virginica” [SÍ / NO] son iguales, porque… [COMPLETAR USANDO EL P-VALOR]

  1. Repite la frase completando con comandos de \(\LaTeX\) la fórmula que falta: