TP5 - Prueba de hipótesis
En este práctico vamos a trabajar analizando la variabilidad en la generación de muestras a partir de una distribución estadística. Vamos a usar eso como base para entender pruebas de hipótesis.
Carga de bibliotecas
library(magrittr)
library(purrr)
library(tidyverse)
Ejercicio 1
El siguiente código genera una cantidad de muestras de cierto tamaño,
tomadas de una distribución Gaussiana con media \(\mu\) y desvío estándar \(\sigma\). Vamos a almacenarlas en un
tibble
que nos permita trabajar con cada muestra:
# lo primero que hacemos es generar la estructura del "experimento"
= 10000
n_muestras = 5
n_datos
# la guardamos en un tibble
<- list(id_muestra = 1:n_muestras, id_data = 1:n_datos) %>%
datos cross_df() %>% arrange(id_muestra)
# agregamos al tibble la columna con las realizaciones
= 100
mu = 10
sigma set.seed(101)
%<>% mutate(val=rnorm(n=n_muestras*n_datos, mean=mu, sd=sigma)) datos
Calcular la media (\(M\)) y el desvío estándar (\(S\)) muestrales para cada muestra. Para pensar: conviene almacenar esta info en una nueva columna en el
tibble
datos
, o en uno nuevo?A partir de los datos del ítem anterior, graficar la distribución de la media muestral. Comparar el histograma obtenido con una función de densidad Gaussiana.
Ayuda: Obtener el histograma usando la función hist(), y almacenarlo en un
tibble
mediante la sintaxis que vimos en la práctica pasada (con la función with())Otra ayuda: La densidad se obtiene con la función dnorm(). Puede ser útil agregarla en una columna en el mismo
tibble
donde almacenó el histograma, o, si no quiere estar limitado a los intervalos del histograma, puede crear un nuevotibble
de dos columnas.Luego, analizar qué media y desvío estándar corresponden al histograma. Ayuda: Usar como referencia los parámetros de la distribución que generó los datos y analizar si en este caso son los mismos o diferentes (mayores o menores). Verificar si se producen cambios para diferentes tamaños muestrales.
Verificar que la distribución de medias muestrales es bien representada por una función de densidad Gaussiana con media \(\mu\) y desvío estandar \(\sigma/\sqrt{n}\), donde \(n\) es el tamaño de cada muestra (almacenado en
n_datos
). Para hacer esto, analizar la distribución variando el tamaño muestral. ¿A qué corresponde \(\sigma/\sqrt{n}\)? ¿Y \(S/\sqrt{n}\)?Graficar la distribución del desvío estándar muestral para diferentes tamaños de muestra (una muy pequeña y una suficientemente grande). Discutir si es posible describirla mediante una distribución Gaussiana (Para pensar, ¿es posible obtener \(S < 0\)?)
Obtener la estadística \(t\) correspondiente a cada muestra. Luego obtener la distribución de \(t\), graficarla y compararla con la distribución \(t\) de Student con los correspondientes grados de libertad.
Ayuda: La densidad para la distribución \(t\) de Student se calcula con la función dt().
Otra ayuda: Recuerde que en este caso, los grados de libertad corresponden al tamaño muestral menos uno (\(n-1\)).
Repetir para diferentes tamaños de muestra, y analizar a partir de qué tamaño de muestra la distribución de \(t\) puede ser bien representada por una distribución Gaussiana (pensar con qué media y con qué desvío estándar).
Obtener la función de probabilidad acumulada de la distribucion de \(t\) y graficarla. Recordar que para esto es necesario, antes, calcular la frecuencia relativa en cada intervalo del histograma.
Ayuda: puede comparar con el valor teórico mediante la función pt().
¿En qué intervalo está comprendido el 5% de valores de \(t\) más extremos? Comparar para diferentes grados de libertad.
Calcular la probabilidad de ocurrencia de cada muestra obtenida. Elegir las más extremas (menos probables) y graficar algunas de ellas. Comparar con las menos extremas.
Ayuda: Recordar que la probabilidad de la muestra se definía a partir de la distribución de \(t\), considerando las chances de obtener valores de \(t\) iguales o más extremos (más lejanos al 0) que el valor de \(t\) muestral.
Ootra ayuda: La función de probabilidad acumulada para un dado valor de \(t\) se define como la probabilidad de obtener un valor en el rango entre \(-\infty\) y \(t\).
Graficar la distribucion de p-values. ¿Qué proporcion de p-values son menores que \(\alpha = 0.05\)? ¿y menores que 0.1, 0.2, 0.5, etc.? Pruebe distintos valores.
Obtenga un dataset generado por una distribucion con diferente media (\(\mu_2\)). Obtenga la estadistica \(t\) para cada muestra, y los correspondientes p-values, pero haga de cuenta que Ud. no sabe que la media de la distribucion de origen fue modificada. (Esto significa que, para calcular \(t\), debe usar el valor de \(\mu\) empleado inicialmente, ya que Ud. no está al tanto de que el mismo fue modificado).
Analizar la distribucion de p-values en este caso. ¿Qué proporcion de p-values son menores que \(\alpha=0.05\)? ¿Y menores a otros valores de \(\alpha\)? ¿Como se modifica todo esto para distintos valores de \(\mu_2\)? ¿Y para distintos tamaños de muestra?
Ejercicio 2
En este ejercicio vamos a generar datos a partir de una distribución Gaussiana con media \(\mu\) y desvío estándar \(\sigma\). Pero vamos a hacer un cambio importante respecto al ejercicio anterior: cuando analicemos los datos, vamos a suponer que provienen de una distribución Gaussiana con una media diferente (\(\mu_0\)). Esta distribución representa una hipótesis formulada sobre los datos obtenidos, la cual vamos a poner a prueba. Para esto, vamos a usar las herramientas vistas en el ejercicio anterior (principalmente, la estadística \(t\)) para calcular la probabilidad de obtener una dada muestra suponiendo que la misma proviene de una distribución con media \(\mu_0\). De este modo, pondremos a prueba la hipótesis de que los datos fueron generados por dicha distribución. El valor \(\mu_0\) proviene de la teoría, o representa algún valor de interés para alguna aplicación, y debe ser conocido de antemano a la realización del experimento.
Antes de comenzar, vamos a construir un tibble que defina la estructura de nuestro experimento:
= 5000
n_muestras = seq(from=2, to=20, by=1)
n_datos <- tibble(id_muestra=1:(n_muestras*length(n_datos)),
datos n = rep(n_datos, each=n_muestras))
Luego vamos a expandir ese tibble
, obteniendo una
cantidad de muestras Gaussianas según el tamaño indicado por la columna
n:
= 100
mu = 10
sigma = 110
mu0
%<>% uncount(n, .remove=FALSE) %>%
datos mutate(x = rnorm(n, mean=mu, sd=sigma))
Calcular la media, el desvío estándar y la estadística t para cada muestra obtenida.
Calcular el p-value asociado a cada muestra.
Calcular la cantidad de muestras cuyo p-value es menor que \(\alpha=0.05\) en función del tamaño de muestra. Graficarlo.
En base al ítem anterior, ¿qué tamaño de muestra es necesario para que al menos un 80% de las muestras sean consideradas más extremas que 5% (usando como criterio el p-value asociado), considerando como hipótesis a \(\mu_0\)?
¿Y para que eso ocurra 100% de las veces?
¿Cómo se modifica la respuesta al ítem anterior si se modifica \(\sigma\)? ¿Y si se modifica \(\mu\)?
Calcular el effect size asociado a cada muestra.
Graficar la distribución de effect sizes en función del tamaño de muestras
¿Cómo es su dependencia?
¿Cómo se modifica el effect size si se modifica \(\sigma\)? ¿Y si se modifica \(\mu\)?
Ejercicio 3
Vamos a construir un dataset formado por muestras de distintos tamaños tomadas de distribuciones Gaussianas con diferentes medias y desvíos estándar. Nos interesa obtener la potencia estadística frente a una cierta hipótesis \(\mu_0\) para cada combinación de media, desvío estándar y tamaño de muestra. También analizaremos los cambios en el effect size en función de dichos factores.
Comenzamos como siempre en estos casos, construyendo un
tibble
con la estructura de la simulación:
Luego agregamos los datos correspondientes a cada condición:
Calcular media, desvío, t, p-value y effect size para cada muestra.
Calcular y graficar la potencia para cada muestra (la proporcion de muestras cuyo p-value asociado es menor a 0.05)