class: center, middle, inverse, title-slide .title[ # Probabilidad e Inferencia Estadística ] .subtitle[ ## Intervalos de Confianza via Método de Bootstrap ] .author[ ###
Mauricio Bucca
github.com/mebucca
mebucca@uc.cl
] --- ## Ejemplo empírico: Promedio de ingreso mujeres .pull-left[ .center[ ``` ## # A tibble: 513 × 6 ## region sexo edad educ ingreso univ ## <int> <int> <int> <int> <int> <dbl> ## 1 2 2 6 1 NA NA ## 2 13 2 28 6 NA 0 ## 3 4 2 56 3 NA 0 ## 4 5 2 47 6 180000 0 ## 5 13 2 69 1 145000 0 ## 6 10 2 0 0 NA NA ## 7 13 2 59 8 500000 0 ## 8 4 2 28 8 330000 0 ## 9 9 2 30 11 652533 1 ## 10 9 2 36 5 95000 0 ## 11 15 2 24 7 60000 NA ## 12 5 2 43 5 2083 0 ## 13 13 2 17 3 NA NA ## 14 14 2 21 9 NA NA ## 15 14 2 86 11 450000 1 ## # ℹ 498 more rows ``` ] ] .pull-right[ ``` ## Media muestral: 368070.1 ``` ] --- ## Métodos de simulación para inferencia estadística <br> -- - Inferencia estadística tradicional se basa en resultados teóricos sobre la distribución muestral de los estimadores (ej. TLC). -- - Sin embargo, Iincluso para estimadores simples puede ser difícil (o imposible) determinar la distribución muestral (ej. mediana). -- - Los métodos de simulación cuando no se dispone de soluciones analíticas (una formula conocida). -- - Estos métodos son computacionalmente intensivos, lo que los hacía inviables en el pasado pero no actualmente. -- - "Bootstrapping" es uno de los métodos computacional más ampliamente usados para realizar inferencia estadística. --- ##Método Bootstrap <br> ####Queremos hacer inferencia pero no conocemos la distribución muestral de nuestro estimador ... .pull-left[  ] -- .pull-right[  ] --- ##Método Bootstrap <br> .bold[Intuición:] <br> -- - Aplicamos un estimador a una muestra y queremos hacer inferencia sobre del estimado obtenido. -- - No conocemos la distribución de nuestro estimador a través de infinitas muestras porque sólo tenemos una muestra. -- - Tampoco tenemos conocimiento teórico sobre la distribución de nuestro estimador (ej. TLC). -- - Podemos tomar muestras de nuestra muestra, preservando cualquier distribución desconocida subyacente en los datos. -- - Podemos observar y estudiar el comportamiento de nuestro estimador en estas muestras tomadas a partir de la muestra. --- ##Método Bootstrap .bold[Muestrando desde la muestra:] ¿Cuántas muestras podemos tomar (con reemplazo) a partir de nuestra muestra? -- .bold[Respuesta]: `\(n^n\)` <br> -- `$$\text{muestra} : \left[\begin{array}{@{}c@{}} 1 \\ 2 \\ 3 \end{array} \right]$$` <br> -- `$$\text{posibles muestras de la muesta:} \left[\begin{array}{@{}c@{}} 1 \\ 1 \\ 1 \end{array} \right] \text{ o} \left[\begin{array}{@{}c@{}} 1 \\ 1 \\ 2 \end{array} \right] \text{ o} \left[\begin{array}{@{}c@{}} 1 \\ 3 \\ 2 \end{array} \right] \text{ o} \left[\begin{array}{@{}c@{}} 3 \\ 1 \\ 2 \end{array} \right] \text{ o} \left[\begin{array}{@{}c@{}} 3 \\ 3 \\ 3 \end{array} \right] ...$$` --- ## Bootstrap Method .bold[Esquema del algoritmo]: -- 1. A partir de la muestra obtenén una muestra aleatoria del mismo tamaño que la muestra original (N), con reemplazo: `\((X_{b})\)` -- 2. Aplica el estimador `\(\theta(X_{b})\)` a la muestra `\((X_{b})\)` pera obtener el estimado `\(\hat{\theta}_{b}\)` -- 3. Repite los pasos 1 y 2 un gran número de veces B. -- 4. El conjunto de B resultados obtenidos corresponde a la "Bootstrap distribution" del estimado. -- 5. Evalúa la distribución del estimado (SE,CI, etc) o de cualquier cantidad derivada de éste. --- ## Método Bootstrap, aplicación .bold[Calculemos un IC al 99% para la `media` muestral del ingreso de las mujeres] -- ``` r # Escribir una función que ejecute re-sampling y la estimación bs_mu <- function(x) { data_b <- sample_n(casen2017_mujeres, size=nrow(casen2017_mujeres), replace=TRUE) mu_muestra_b <- mean(data_b$ingreso, na.rm=T) return(mu_muestra_b) } # Iterar función y almacenar resultados set.seed(77623) distmuestral_boot <- replicate(5000, bs_mu()) %>% as_tibble() glimpse(distmuestral_boot) ``` ``` ## Rows: 5,000 ## Columns: 1 ## $ value <dbl> 419172.0, 339894.7, 422345.3, 348431.6, 371273.9, 364408.9, 3499… ``` --- ## Método Bootstrap, aplicación .pull-left[ ``` r ee_bs <- sd(distmuestral_boot$value) ee_bs ``` ``` ## [1] 28647.05 ``` ``` r ci99_bs <- quantile(distmuestral_boot$value, p=c(0.005,0.995)) ``` ``` ## Warning in quantile.default(distmuestral_boot$value, p = c(0.005, 0.995)): ## partial argument match of 'p' to 'probs' ``` ``` r ci99_bs ``` ``` ## 0.5% 99.5% ## 303603.2 449958.5 ``` ] .pull-right[ <!-- --> ] --- ## Método Bootstrap, aplicación .bold[Calculemos un IC al 99% para la `mediana` muestral del ingreso de las mujeres] .pull-left[ ¿Cual es la distribución muestral de la mediana? <br>  ] -- <br> .pull-right[ No importa, tenemos Bootstrap! <br>  ] <style type="text/css"> .pull-right ~ * { clear: unset; } .pull-right + * { clear: both; } </style> --- ## Método Bootstrap, aplicación .bold[Calculemos un IC al 99% para la `mediana` muestral del ingreso de las mujeres] -- ``` r # Escribir una función que ejecute re-sampling y la estimación bs_median <- function(x) { data_b <- sample_n(casen2017_mujeres, size=nrow(casen2017_mujeres), replace=TRUE) median_muestra_b <- median(data_b$ingreso, na.rm=T) return(median_muestra_b) } # Iterar función y almacenar resultados set.seed(77623) distmuestral_boot <- replicate(5000, bs_median()) %>% as_tibble() glimpse(distmuestral_boot) ``` ``` ## Rows: 5,000 ## Columns: 1 ## $ value <dbl> 275000.0, 278583.5, 300000.0, 276000.0, 265750.0, 266500.0, 2750… ``` --- ## Método Bootstrap, aplicación .pull-left[ ``` r ee_bs <- sd(distmuestral_boot$value) ee_bs ``` ``` ## [1] 14051.05 ``` ``` r ci99_bs <- quantile(distmuestral_boot$value, p=c(0.005,0.995)) ``` ``` ## Warning in quantile.default(distmuestral_boot$value, p = c(0.005, 0.995)): ## partial argument match of 'p' to 'probs' ``` ``` r ci99_bs ``` ``` ## 0.5% 99.5% ## 236867.0 304171.2 ``` ] .pull-right[ <!-- --> ] --- class: inverse, center, middle ##Hasta la próxima clase. Gracias! <br> Mauricio Bucca <br> https://mebucca.github.io/ <br> github.com/mebucca