diff --git a/01-exploratorio.md b/01-exploratorio.md index 7280763..605a89f 100644 --- a/01-exploratorio.md +++ b/01-exploratorio.md @@ -67,23 +67,23 @@ slice_sample(propinas, n = 10) |> gt() ``` ```{=html} -
- @@ -528,64 +528,64 @@ slice_sample(propinas, n = 10) |> gt() - 30.06 -2.00 + 16.32 +4.30 Si -Sab +Vie Cena -3 - 24.01 -2.00 +2 + 32.68 +5.00 Si +Jue +Comida +2 + 14.00 +3.00 +No Sab Cena -4 - 45.35 -3.50 -Si +2 + 9.94 +1.56 +No Dom Cena -3 - 30.14 -3.09 +2 + 34.65 +3.68 Si -Sab +Dom Cena 4 - 20.08 -3.15 + 10.29 +2.60 No -Sab +Dom Cena -3 - 19.65 -3.00 +2 + 20.92 +4.08 No Sab Cena 2 - 38.07 -4.00 -No -Dom -Cena -3 - 11.69 -2.31 + 10.65 +1.50 No Jue Comida 2 - 26.41 -1.50 + 17.31 +3.50 No -Sab +Dom Cena 2 - 13.81 -2.00 + 32.90 +3.11 Si -Sab +Dom Cena 2 @@ -636,23 +636,23 @@ bind_rows(head(cuenta), tail(cuenta)) |> ``` ```{=html} -
- diff --git a/01-exploratorio_files/figure-html/unnamed-chunk-11-1.png b/01-exploratorio_files/figure-html/unnamed-chunk-11-1.png index 61ab8ad..01f2416 100644 Binary files a/01-exploratorio_files/figure-html/unnamed-chunk-11-1.png and b/01-exploratorio_files/figure-html/unnamed-chunk-11-1.png differ diff --git a/01-exploratorio_files/figure-html/unnamed-chunk-30-1.png b/01-exploratorio_files/figure-html/unnamed-chunk-30-1.png index eda647d..6ef835b 100644 Binary files a/01-exploratorio_files/figure-html/unnamed-chunk-30-1.png and b/01-exploratorio_files/figure-html/unnamed-chunk-30-1.png differ diff --git a/01-exploratorio_files/figure-html/unnamed-chunk-31-1.png b/01-exploratorio_files/figure-html/unnamed-chunk-31-1.png index 5a0cac8..f36a168 100644 Binary files a/01-exploratorio_files/figure-html/unnamed-chunk-31-1.png and b/01-exploratorio_files/figure-html/unnamed-chunk-31-1.png differ diff --git a/01-exploratorio_files/figure-html/unnamed-chunk-33-1.png b/01-exploratorio_files/figure-html/unnamed-chunk-33-1.png index 9cdced8..d00b7b4 100644 Binary files a/01-exploratorio_files/figure-html/unnamed-chunk-33-1.png and b/01-exploratorio_files/figure-html/unnamed-chunk-33-1.png differ diff --git a/02-tipos-de-estudio_files/figure-html/grafica-pcr-1.png b/02-tipos-de-estudio_files/figure-html/grafica-pcr-1.png index 9a0f4bc..1a3b2dc 100644 Binary files a/02-tipos-de-estudio_files/figure-html/grafica-pcr-1.png and b/02-tipos-de-estudio_files/figure-html/grafica-pcr-1.png differ diff --git a/04-distribucion-muestreo.md b/04-distribucion-muestreo.md index 8e68e93..61a2b5e 100644 --- a/04-distribucion-muestreo.md +++ b/04-distribucion-muestreo.md @@ -2,7 +2,7 @@ -En esta sección discutiremos cuál el objetivo general del proceso de estimación. +En esta sección discutiremos cuál el objetivo general del proceso de estimación, y cómo entender y manejar la variabilidad que se produce cuando aleatorizamos la selección de las muestras que utilizamos para hacer análisis. @@ -96,7 +96,7 @@ estimación diferente. Por ejemplo: ``` r estimar_total(sample_n(marco_casas, 100), N) |> - mutate(across(where(is.numeric), round, 2)) + mutate(across(where(is.numeric), \(x) round(x, 2))) ``` ``` @@ -590,17 +590,18 @@ replicar_muestreo_exp <- function(est = mean, m, n = 150, lambda = 1){ valores_est <- map_dbl(1:m, ~ est(rexp(n, lambda))) tibble(id_muestra = 1:m, estimacion = valores_est) } -sim_estimador_1 <- replicar_muestreo_exp(sum, 4000, n = 150) +sim_estimador_1 <- replicar_muestreo_exp(sum, 4000, n = 15) teorica <- tibble(x = seq(0, 35, 0.001)) |> - mutate(f_dens = dgamma(x, shape = 150, rate = 1)) + mutate(f_dens = dgamma(x, shape = 15, rate = 1)) # graficar aprox de distribución de muestreo ggplot(sim_estimador_1) + - geom_histogram(aes(x = estimacion, y = ..density..), bins = 35) + - geom_line(data = teorica, aes(x = x, y = f_dens), colour = "red", size = 1.2) + geom_histogram(aes(x = estimacion, y = after_stat(density)), bins = 35) + + geom_line(data = teorica, aes(x = x, y = f_dens), colour = "red", linewidth = 1.2) ``` + ## Teorema central del límite {-} Si consideramos los ejemplos de arriba donde tratamos con estimadores @@ -863,6 +864,10 @@ ggplot(replicaciones_2, aes(sample = est_total_millones)) + ``` + + + + Y vemos que en efecto el TCL aplica en este ejemplo, y la aproximación es buena. Aunque la población original es sesgada, la descripción de la distribución de muestreo es sorprendemente compacta: @@ -941,19 +946,25 @@ aproximar probabilidades en las colas de la distribución: ``` r -sims_gamma <- map_df(1:2000, ~ tibble(suma = mean(rgamma(30, 0.1, 1))), +sims_gamma <- map_df(1:2000, ~ tibble(suma = sum(rgamma(30, 0.1, 1))), .id = "n_sim") ggplot(sims_gamma, aes(x = suma)) + geom_histogram() ``` - + ## Más del Teorema central del límite {-} - El teorema central del límite aplica a situaciones más generales que -las del enunciado del teorema básico. Por ejemplo, aplica a poblaciones -finitas (como vimos en el ejemplo de las casas) bajo muestreo sin -reemplazo, y aplica también a otras estadísticas como los cuantiles muestrales. +las del enunciado del teorema básico. Por ejemplo, + + aplica a poblaciones finitas (como vimos en el ejemplo de las casas), en 1960 + Jaroslav Hajek demostró una versión del TCL bajo muestreo sin +reemplazo. + + Mas allá de la media muestral, el TCL se puede utilizar para más estadísticas ya que muchas + pueden verse como promedios, como totales o errores estándar. El TLC se ha generalizado incluso para cuantiles muestrales. + + + - Es importante notar que la calidad de la aproximación del TCL depende de características de la población y también del tamaño de muestra $n$. Para ver si el TCL aplica, podemos hacer ejercicios de simulación bajo diferentes supuestos acerca de la población. @@ -967,8 +978,10 @@ el máximo de un conjunto de uniformes, por ejemplo). exactas, particularmente en la construcción de intervalos de confianza, por ejemplo. Dependemos menos de **resultados asintóticos**, como el TCL. - Cuando aproximamos una distribución discreta mediante la distribución normal, -conviene hacer *correcciones de continuidad*, como se explica en [@Chihara], 4.3.2. +conviene hacer *correcciones de continuidad*, como se explica en [@Chihara], 4.3.2. + + diff --git a/04-distribucion-muestreo_files/figure-html/unnamed-chunk-26-1.png b/04-distribucion-muestreo_files/figure-html/unnamed-chunk-26-1.png index 7626e5d..9e14fa3 100644 Binary files a/04-distribucion-muestreo_files/figure-html/unnamed-chunk-26-1.png and b/04-distribucion-muestreo_files/figure-html/unnamed-chunk-26-1.png differ diff --git a/04-distribucion-muestreo_files/figure-html/unnamed-chunk-42-1.png b/04-distribucion-muestreo_files/figure-html/unnamed-chunk-42-1.png deleted file mode 100644 index 65d416f..0000000 Binary files a/04-distribucion-muestreo_files/figure-html/unnamed-chunk-42-1.png and /dev/null differ diff --git a/04-distribucion-muestreo_files/figure-html/unnamed-chunk-43-1.png b/04-distribucion-muestreo_files/figure-html/unnamed-chunk-43-1.png new file mode 100644 index 0000000..1314acf Binary files /dev/null and b/04-distribucion-muestreo_files/figure-html/unnamed-chunk-43-1.png differ diff --git a/05-remuestreo.md b/05-remuestreo.md index a1d14c2..ef366fd 100644 --- a/05-remuestreo.md +++ b/05-remuestreo.md @@ -333,8 +333,8 @@ muestreo**: - *Si tenemos la población*, podemos *calcular* la distribución de muestreo de nuestro estimador tomando muchas muestras de la *población*. -- Estimamos la *poblacion* con la *muestra* y enchufamos en la frase anterior: -- Podemos *estimar* la distribución de muestreo de nuestro estimador +- Estimamos la *poblacion* con la *muestra* y enchufamos en la frase anterior: +*estimamos* la distribución de muestreo de nuestro estimador tomando muchas muestras de la *muestra*. Nótese que el proceso de muestreo en el último paso **debe ser el mismo** que @@ -367,8 +367,7 @@ entre las observaciones de la remuestra, y cómo serían las remuestras sin reem **Observación 2**. Estos argumentos se pueden escribir con fórmulas usando por ejemplo la función de distribución acumulada $F$ de la población y su estimador, -que es la función empírica $\hat{F}$, como en @Efron. -Si $\theta = t(F)$ es una +que es la función empírica $\hat{F}$. Si $\theta = t(F)$ es una cantidad poblacional que queremos estimar, su estimador plug-in es $\hat{\theta} = t(\hat{F})$. @@ -379,8 +378,8 @@ $\hat{F}$ converge a $F$ cuando el tamaño de muestra $n\to\infty$, lo cual es intuitivamente claro. - ### Ejemplo {-} + En el ejemplo de tomadores de té, podemos estimar la proporción de tomadores de té que prefiere el té negro usando nuestra muestra: @@ -457,6 +456,21 @@ prop_negro_tbl |> ``` + --> + + + + + + + + + + + + + --> + ## Discusión: propiedades de la distribución bootstrap {-} Uasremos la distribución bootstrap principalmente para evaluar la variabilidad @@ -467,8 +481,8 @@ de muestreo, o para "mejorar" la estimación remuestreando. ### Ejemplo {-} -En nuestro ejemplo, podemos ver varias muestras (por ejemplo 20) de tamaño 200, y -vemos cómo se ve la aproximación a la distribución de la población: +En este ejemplo, vemos 20 muestras de tamaño 200, y +evaluamos cómo se ve la aproximación a la distribución de la población (rojo): @@ -617,7 +631,7 @@ que es la desviación estándar de la **distribución bootsrap**. define como la desviación estándar de la distribución bootstrap de $\theta$. El **intervalo de confianza normal bootstrap** al 95\% está dado por -$$[\hat{\theta} - 2\mathsf{ee}(\hat{\theta}), \hat{\theta} + 2\mathsf{ee}(\hat{\theta})].$$ +$$[\hat{\theta} - 2\hat{\mathsf{ee}}_{\textrm{boot}}(\hat{\theta}), \hat{\theta} + 2\hat{\mathsf{ee}}_{\textrm{boot}}(\hat{\theta})].$$
\EndKnitrBlock{mathblock} Nótese que hay varias cosas qué revisar aquí: que el teorema central del límite aplica y @@ -1382,7 +1396,7 @@ graf_casas <- function(data){ geom_smooth(aes(y = precio_m2_miles), method = "loess", span = 0.7, se = FALSE, method.args = list(degree = 1, family = "symmetric")) } -graf_casas(muestra_casas) +graf_casas(casas_muestra) ``` @@ -2208,7 +2222,7 @@ object_size(computos_boot)/nrow(computos_boot) ``` ``` r -# el incremento en tamaño es << 100 +# el incremento en tamaño es << 1000 as.numeric(object_size(computos_boot)/object_size(muestra_computos)) ``` diff --git a/05-remuestreo_files/figure-html/unnamed-chunk-21-1.png b/05-remuestreo_files/figure-html/unnamed-chunk-21-1.png index abce20c..73dfeee 100644 Binary files a/05-remuestreo_files/figure-html/unnamed-chunk-21-1.png and b/05-remuestreo_files/figure-html/unnamed-chunk-21-1.png differ diff --git a/05-remuestreo_files/figure-html/unnamed-chunk-61-1.png b/05-remuestreo_files/figure-html/unnamed-chunk-61-1.png index b7eb845..a91bf12 100644 Binary files a/05-remuestreo_files/figure-html/unnamed-chunk-61-1.png and b/05-remuestreo_files/figure-html/unnamed-chunk-61-1.png differ diff --git a/89-transformaciones.md b/89-transformaciones.md index 10f6ac2..f9517b8 100644 --- a/89-transformaciones.md +++ b/89-transformaciones.md @@ -106,23 +106,23 @@ animals_tbl |> ``` ```{=html} -
- diff --git a/89-transformaciones_files/figure-html/unnamed-chunk-3-1.png b/89-transformaciones_files/figure-html/unnamed-chunk-3-1.png index 8385d5b..b5a250f 100644 Binary files a/89-transformaciones_files/figure-html/unnamed-chunk-3-1.png and b/89-transformaciones_files/figure-html/unnamed-chunk-3-1.png differ diff --git a/89-transformaciones_files/figure-html/unnamed-chunk-4-1.png b/89-transformaciones_files/figure-html/unnamed-chunk-4-1.png index b8dfab9..c7436d9 100644 Binary files a/89-transformaciones_files/figure-html/unnamed-chunk-4-1.png and b/89-transformaciones_files/figure-html/unnamed-chunk-4-1.png differ diff --git "a/an\303\241lisis-exploratorio.html" "b/an\303\241lisis-exploratorio.html" index b82d760..2b45f4f 100644 --- "a/an\303\241lisis-exploratorio.html" +++ "b/an\303\241lisis-exploratorio.html" @@ -394,23 +394,23 @@

Algunos conceptos básicospropinas <- read_csv("./data/propinas.csv")

Y vemos una muestra

slice_sample(propinas, n = 10) |> gt()
-
- @@ -855,64 +855,64 @@

Algunos conceptos básicos - 30.06 -2.00 + 16.32 +4.30 Si -Sab +Vie Cena -3 - 24.01 -2.00 +2 + 32.68 +5.00 Si +Jue +Comida +2 + 14.00 +3.00 +No Sab Cena -4 - 45.35 -3.50 -Si +2 + 9.94 +1.56 +No Dom Cena -3 - 30.14 -3.09 +2 + 34.65 +3.68 Si -Sab +Dom Cena 4 - 20.08 -3.15 + 10.29 +2.60 No -Sab +Dom Cena -3 - 19.65 -3.00 +2 + 20.92 +4.08 No Sab Cena 2 - 38.07 -4.00 -No -Dom -Cena -3 - 11.69 -2.31 + 10.65 +1.50 No Jue Comida 2 - 26.41 -1.50 + 17.31 +3.50 No -Sab +Dom Cena 2 - 13.81 -2.00 + 32.90 +3.11 Si -Sab +Dom Cena 2 @@ -953,23 +953,23 @@

Algunos conceptos básicos arrange(f) bind_rows(head(cuenta), tail(cuenta)) |> gt() |> fmt_number(columns = f, decimals = 3)

-
- diff --git "a/ap\303\251ndice-transformaciones.html" "b/ap\303\251ndice-transformaciones.html" index 9ed70a4..3a3f3d5 100644 --- "a/ap\303\251ndice-transformaciones.html" +++ "b/ap\303\251ndice-transformaciones.html" @@ -420,23 +420,23 @@

Apéndice: Transformaciones arrange(body) |> gt::gt() |> gt::fmt_number()

-
- diff --git "a/estimaci\303\263n-y-distribuci\303\263n-de-muestreo-1.html" "b/estimaci\303\263n-y-distribuci\303\263n-de-muestreo-1.html" index 40927e9..14879b0 100644 --- "a/estimaci\303\263n-y-distribuci\303\263n-de-muestreo-1.html" +++ "b/estimaci\303\263n-y-distribuci\303\263n-de-muestreo-1.html" @@ -349,7 +349,7 @@

Sección 4 Estimación y distribución de muestreo

-

En esta sección discutiremos cuál el objetivo general del proceso de estimación. +

En esta sección discutiremos cuál el objetivo general del proceso de estimación, y cómo entender y manejar la variabilidad que se produce cuando aleatorizamos la selección de las muestras que utilizamos para hacer análisis.

A diferencia de las pruebas de permutación, donde evaluábamos como cambiaría una @@ -413,7 +413,7 @@

Ejemplo: precios de casas
estimar_total(sample_n(marco_casas, 100), N) |>
-  mutate(across(where(is.numeric), round, 2))

+ mutate(across(where(is.numeric), \(x) round(x, 2)))

## # A tibble: 1 × 3
 ##   total_muestra factor_exp est_total_millones
 ##           <dbl>      <dbl>              <dbl>
@@ -867,13 +867,13 @@ 

Ejemplo valores_est <- map_dbl(1:m, ~ est(rexp(n, lambda))) tibble(id_muestra = 1:m, estimacion = valores_est) } -sim_estimador_1 <- replicar_muestreo_exp(sum, 4000, n = 150) +sim_estimador_1 <- replicar_muestreo_exp(sum, 4000, n = 15) teorica <- tibble(x = seq(0, 35, 0.001)) |> - mutate(f_dens = dgamma(x, shape = 150, rate = 1)) + mutate(f_dens = dgamma(x, shape = 15, rate = 1)) # graficar aprox de distribución de muestreo ggplot(sim_estimador_1) + - geom_histogram(aes(x = estimacion, y = ..density..), bins = 35) + - geom_line(data = teorica, aes(x = x, y = f_dens), colour = "red", size = 1.2)

+ geom_histogram(aes(x = estimacion, y = after_stat(density)), bins = 35) + + geom_line(data = teorica, aes(x = x, y = f_dens), colour = "red", linewidth = 1.2)

@@ -1072,8 +1072,8 @@

Ejemplo
ggplot(replicaciones_2, aes(sample = est_total_millones)) +
   geom_qq(alpha = 0.3) + 
   geom_qq_line(colour = "red")
-

-Y vemos que en efecto el TCL aplica en este ejemplo, y la aproximación es buena. +

+

Y vemos que en efecto el TCL aplica en este ejemplo, y la aproximación es buena. Aunque la población original es sesgada, la descripción de la distribución de muestreo es sorprendemente compacta: