set.seed(123) # Fija la semilla para obtener siempre los mismos valores simulados
vector <- rnorm(100, mean = 5, sd = 2) # Crea 100 valores con media 5 y desviación estándar 2
media <- mean(vector) # Calcula la media de los valores creados
desv_estandar <- sd(vector) # Calcula la desviación estándar de los valores creados
media # Muestra la media en la consola
desv_estandar # Muestra la desviación estándar en la consolaIntervalos de Confianza y Test de hipótesis
Sesión del miércoles, 19 de agosto de 2026
Objetivo de la práctica
El objetivo de esta guía práctica es repasar intervalos de confianza, y además aplicar las herramientas teóricas y prácticas aprendidas hasta el momento para realizar pruebas de hipótesis, tanto para diferencias de medias como direccionales utilizando la prueba t.
En detalle, en el práctico de hoy veremos:
Cálculo e interpretación de intervalos de confianza
Ejercicios de test de hipótesis
1 Repaso intervalos de confianza
Recordemos que un intervalo de confianza es un rango de valores plausibles que contiene la media poblacional, el cual se construye a partir del error estándar.
Su fórmula es la siguiente:
\[ IC = \bar{x} \pm z \cdot \frac{s}{\sqrt{n}} \]
Donde:
- \(\bar{x}\) es la media de la muestra.
- \(z\) es el valor crítico.
- \(s\) es la desviación estándar de la muestra.
- \(n\) es el tamaño de la muestra.
- \(\frac{s}{\sqrt{n}}\) corresponde al error estándar.
En términos visuales, los intervalos de confianza representan la probabilidad de que la media poblacional se encuentre en su rango, ilustrado por el área bajo la curva que cubre el intervalo.

Para ejemplificar esto, calculemos un intervalo de confianza para una muestra de 200 casos, con media = 10 y desviación estándar = 4.
Los # en el código
En este código y siguientes aparecen varios #, que son una función de comentarios en R. No son necesarios para que el código funcione, pero son útiles en este caso para poder explicar que función cumple cada sección del código. Todo lo que aparece a la derecha de un # no es ejecutado por el programa.
1.1 Error estándar
Observando la fórmula, recordamos que para calcular el intervalo, debemos recorrer algunos pasos previos como calcular el error estándar, que se estima de la siguiente manera:
\[ EE = \frac{s}{\sqrt{n}} \]
Donde:
\(s\) es la desviación estándar de la muestra. \(n\) es el número de casos de la muestra.
Para nuestro caso, reemplazamos los valores de la fórmula:
ee <- desv_estandar / sqrt(100)El error estándar es de 0.18. Esto quiere decir que las medias de las distintas muestras de una misma población varían en 0.18.
El error estándar de la media estima cuánto variarían las medias entre distintas muestras
- Un error estándar pequeño indica una estimación más precisa.
- Un error estándar grande indica una estimación menos precisa.
Mantengamos la misma desviación estándar y comparemos muestras de 100 y 500 casos. Antes de ejecutar el código, anticipa: ¿cuál tendrá menor error estándar?
ee_100 <- desv_estandar / sqrt(100) # Calcula el error estándar para 25 casos
ee_500 <- desv_estandar / sqrt(500) # Calcula el error estándar para 100 casos
ee_100 # Muestra el error estándar para 25 casos[1] 0.1825632
ee_500 # Muestra el error estándar para 100 casos[1] 0.08164473
El error estándar disminuye de aproximadamente 0,18 a 0,08 cuando el tamaño de la muestra aumenta de 100 a 500 casos. Por lo tanto, ¨**na muestra más grande permite estimar la media con mayor precisió*. Recordemos que la desviación estándar se mantuvo igual en ambos cálculos; lo único que cambió fue el número de casos.
1.2 Cálculo del intervalo
Considerando nuestros datos actuales, tenemos una media de 5.18, pero no podemos asegurar que la media poblacional sea la misma. Por ello, recurrimos a los intervalos de confianza. En términos convencionales, el resultado será significativo si podemos establecerlo con un nivel de confianza del 95%.
Dicho de otra manera, si repitiéramos muchas veces el muestreo y construyéramos un intervalo en cada ocasión, aproximadamente el 95 % de esos intervalos contendría la verdadera media poblacional.
Para construir un intervalo de confianza del 95 %, buscamos los valores Z que encierran el 95 % central de la distribución normal.
Recordemos que el valor crítico para un 95% de confianza es de 1.96, el cual es calculado mediante los valores z que acumulan el 95% central de la distribución normal.
valor_critico <- 1.96 # creación del objeto valor críticolimite_inferior <- media - valor_critico * ee # Calcula el límite inferior
limite_superior <- media + valor_critico * ee # Calcula el límite superior
limite_inferior # Muestra el límite inferior[1] 4.822988
limite_superior # Muestra el límite superior[1] 5.538636
El intervalo obtenido se extiende aproximadamente entre 4,82 y 5,54.

El punto representa la media de la muestra y la línea muestra el intervalo de confianza del 95%.
2 Test de hipótesis
Para este punto, recurriremos a todas las herramientas que hemos aprendido hasta ahora:
| Concepto | Definición |
|---|---|
| Curva normal | Distribución teórica que nos entrega un estándar para comparar distribuciones empíricas |
| Teorema central del límite | Al calcular un estadístico de distintas muestras de una misma población, estos valores se distribuirán de manera normal |
| Error estándar | Desviación estándar de los promedios de distintas muestras de una misma población |
| Puntajes Z | Medida estandarizada la cual se expresa en términos de desviación estándar |
| Intervalos de confianza | Rango de probabilidad de un parámetro poblacional |
Para esta sección del práctico, trabajaremos con un subconjunto de datos previamente procesados de la Encuesta de Caracterización Socioeconómica (CASEN) del año 2022, elaborada por el Ministerio de Desarrollo Social y Familia.
Para este ejercicio, obtendremos directamente esta base desde internet. No obstante, también tienes la opción de acceder a la misma información a través del siguiente enlace: CASEN 2022. Desde allí, podrás descargar el archivo que contiene el subconjunto procesado de la base de datos CASEN 2022.
2.1 Los cinco pasos para la inferencia estadística
En inferencia, las pruebas de hipótesis nos ayudan a determinar si el resultado que obtenemos en nuestra muestra es un efecto real/extrapolable a la población o un error. Aquí recomendamos una lista de cinco pasos lógicos para enfrentarnos a la inferencia estadística:
| Paso | Detalle |
|---|---|
| 1 | Formula \(H_0\) y \(H_A\) y estipula la dirección de la prueba |
| 2 | Calcula el error estándar (SE) y el valor estimado de la prueba (ej: Z o t) |
| 3 | Especifica la probabilidad de error \(\alpha\) y el valor crítico de la prueba |
| 4 | Contrasta el valor estimado con el valor crítico |
| 5 | Interpreta los resultados |
Además de estos 5 pasos también existe la posibilidad de calcular un intervalo de confianza, que acompañe la precisión de nuestra estimación.
2.2 Preparación datos
Comencemos por preparar nuestros datos. Iniciamos cargando las librerías necesarias.
La función p_load del paquete pacman simplifica el proceso de carga de paquetes, ya que se pueden cargar varios paquetes a la vez y, en caso de que alguno de esos paquetes no esté previamente instalado, p_load lo reconoce e instala
pacman::p_load(dplyr, # Manipulacion datos
gginference, # Visualizacion
rempsyc, # Reporte
kableExtra, # Tablas
broom, # Varios
flextable, # nice table
rempsyc)
options(scipen = 999) # para desactivar notacion cientifica
rm(list = ls()) # para limpiar el entorno de trabajoCargamos los datos directamente desde internet.
load(url("https://github.com/cursos-metodos-facso/datos-ejemplos/raw/main/proc_casen.RData")) #Cargar base de datosA continuación, exploramos la base de datos proc_casen.
names(proc_casen) # Nombre de columnas [1] "id_vivienda" "folio" "id_persona" "hogar"
[5] "nucleo" "varunit" "varstrat" "expr"
[9] "edad" "sexo" "educ" "activ"
[13] "y1" "ytrabajocor" "pobreza_multi_5d" "o15"
[17] "qaut" "fdt" "ocupado" "desocupado"
[21] "inact" "hijo" "n_educ" "universitaria"
[25] "tipo_ocup" "ss_salud" "ayuda_moverse" "ayuda_thogar"
[29] "disc_fisica"
dim(proc_casen) # Dimensiones[1] 202111 29
Contamos con 29 variables (columnas) y 202.111 observaciones (filas).
2.3 Recordemos…
En estadística, la formulación de hipótesis que implica dos variables (o la comparación de grupos) busca determinar si existen diferencias en una variable entre grupos y, de ser el caso, evaluar si esta diferencia es estadísticamente significativa.
Hasta ahora, hemos aprendido a contrastar hipótesis sobre diferencias entre grupos. A esto también se le llama hipótesis de dos colas.
Contrastamos la hipótesis nula de no diferencias entre grupos: \[ H_{0}: \mu_{1} - \mu_{2} = 0 \] En relación a una hipótesis alternativa sobre diferencias entre grupos: \[ H_{A}: \mu_{1} - \mu_{2} \neq 0 \]
Además, podemos plantear hipótesis respecto a que el valor de cierto parámetro para un grupo puede ser mayor o menor al de otro grupo. A esto se le conoce como hipótesis de una cola.
\[ H_{0}: \mu_{0} ≥ \mu_{1} ; \mu_{0} ≤ \mu_{1}\]
\[ H_{A}: \mu_{0} > \mu_{1} \]
\[ H_{A}: \mu_{0} < \mu_{1} \]
Veamos ahora cómo aplicar todos estos conocimientos con ejercicios. Primero, para asegurar la reproducibilidad de los resultados, utilizamos set.seed
set.seed(123) # Fijar la semilla para reproducibilidad2.4 Ejercicio 1
Estamos en un escenario donde la pregunta de investigación es: ¿Es el salario de los hombres mayor que el de las mujeres?
Para contrastar esta hipótesis, vamos utilizar la bbdd proc_casen, seleccionaremos las variables sexo e ytrabajocor y haremos un subset de datos de 1.500 casos.
casen_subset <- proc_casen %>%
select(sexo, ytrabajocor) %>% # seleccionamos
sample_n(1500) # extraemos una muestra de 1500 casos
casen_subset <- na.omit(casen_subset) # eliminamos casos perdidos (listwise)El símbolo %>% se llama pipe, y es una de las funciones más útiles de R. Su utilidad radica en que permite encadenar operaciones, es decir, lee el código como una secuencia de pasos en lugar de funciones aisladas, donde el resultado de un comando pasa a ser el primer argumento del siguiente comando, lo que permite ahorrar líneas de código
Generamos tabla para visualizar la distribución de los datos.
casen_subset %>%
dplyr::group_by(sexo) %>% # se agrupan por la variable categórica
dplyr::summarise(Obs. = n(), # columna para el N de cada categoría
Promedio = mean(ytrabajocor, na.rm=TRUE),
SD = sd(ytrabajocor, na.rm=TRUE)) %>% # se agregan las operaciones a presentar en la tabla
kableExtra::kable(format = "markdown") # se genera la tabla| sexo | Obs. | Promedio | SD |
|---|---|---|---|
| 1 | 379 | 690724.8 | 613238.9 |
| 2 | 309 | 585360.4 | 567737.7 |
Ahora vamos con los 5 pasos de la inferencia
1. Formulación de hipótesis
El primer aspecto a establecer es el tipo de hipótesis a formular: ¿Direccional o no direccional? En este caso, la pregunta indica una direccionalidad (“mayor que”), por lo tanto corresponde a una hipótesis direccional. Si hubiera sido una pregunta que hiciera referencia simplemente a diferencias (“¿Es el salario de los hombres distinto al de las mujeres?”) correspondería a una hipótesis no direccional.
La hipótesis general es que el salario de los hombres es mayor que el de las mujeres. Pasando a lenguaje de hipótesis, esto se plantea como:
Hipótesis alternativa:
\(H_A\): Promedio salarial hombres ( \(\bar{X}_{hombres}\)) - Promedio salarial mujeres ( \(\bar{X}_{mujeres}\)) > 0
Hipótesis nula:
\(H_0\): \(\bar{X}_{hombres} - \bar{X}_{mujeres} \leq 0\)
Pasos 2, 3 y 4 de una vez con R
En clases vimos que los pasos 2, 3 y 4 corresponden a:
Obtener error estándar y estadístico de prueba empírico correspondiente (ej: Z o t)
Establecer la probabilidad de error \(\alpha\) (usualmente 0.05) y obtener valor crítico (teórico) de la prueba correspondiente
Cálculo de intervalo de confianza / contraste valores empírico/crítico
Esta secuencia de pasos tiene un sentido pedagógico para poder entender cómo finalmente se llega a interpretar el contraste de hipótesis en el paso 5. Pero en análisis de datos, luego de establecer las hipótesis nos vamos directamente al software que nos permite obtener de una vez toda la información de los pasos 2, 3 y 4.
test_ej1 <- t.test(casen_subset$ytrabajocor ~ casen_subset$sexo, # define las variables que serán sometidas al test de hipótesis
alternative = "greater", # define la hipótesis alternativa
conf.level = 0.95) # establece el nivel de confianza
test_ej1
Welch Two Sample t-test
data: casen_subset$ytrabajocor by casen_subset$sexo
t = 2.3355, df = 674.99, p-value = 0.009906
alternative hypothesis: true difference in means between group 1 and group 2 is greater than 0
95 percent confidence interval:
31054.71 Inf
sample estimates:
mean in group 1 mean in group 2
690724.8 585360.4
También podemos visualizarlo en una tabla más amable.
stats.table <- tidy(test_ej1, conf_int = T) # se convierten los datos del test en un dataframe
nice_table(stats.table, broom = "t.test") # convierte el dataframe en tablaMethod | Alternative | Mean 1 | Mean 2 | M1 - M2 | t | df | p | 95% CI |
|---|---|---|---|---|---|---|---|---|
Welch Two Sample t-test | greater | 690,724.82 | 585,360.36 | 105,364.47 | 2.34 | 674.99 | .010** | [31054.71, Inf] |
Visualicemos la distribución de esta prueba y su zona de rechazo.
gginference::ggttest(test_ej1)
5. Interpretación
La prueba t que evalúa la diferencia de medias entre el salario y el sexo sugiere que el efecto es positivo y estadísticamente signficativo (diferencia = 105.364,47, t = 2.34, p < .05). El valor \(p\) indica que la probabilidad de observar una diferencia de esta magnitud, o mayor, bajo la suposición de \(H_{0}\) es menor al 5%. Por tanto, con un 95% de confianza, rechazamos la \(H_{0}\) ya que existe evidencia a favor de nuestra \(H_{A}\) respecto a que el salario de los hombres es mayor al salario de las mujeres.
Las hipótesis se pueden rechazar, pero nunca se aceptan (lógica de falsación)
2.5 Ejercicio 2
Tomando como ejemplo el trabajo de la ganadora del Premio Nobel de Economía 2023 Claudia Goldin, en este siguiente ejercicio evaluaremos la siguiente pregunta: ¿Es el salario de las mujeres con hijos menor al salario de las mujeres sin hijos? Por ende, usaremos prueba \(t\) para diferencia de medias.
Utilizaremos la bbdd proc_casen, seleccionando las variables ocupado, sexo, ytrabajocor e hijo. Luego, filtraremos por ocupado == 1 y sexo == 2 para quedarnos sólo con mujeres ocupadas y generaremos una muestra aleatoria de 1.500 casos con la función sample_n(). Luego, eliminaremos los casos pérdidos con na.omit().
set.seed(123)
goldin_data <- proc_casen %>% # crear subset a partir de la base proc_casen
dplyr::select(ocupado, sexo, ytrabajocor, hijo) %>% # selección de variables
dplyr::filter(ocupado == 1 & sexo == 2) %>% # se filtra solo por mujeres ocupadas
sample_n(1500) %>% # submuestra de 1500
na.omit()# creamos subset Ahora generamos una tabla de descriptivos de los ingresos (ytrabajocor) según si las observaciones tienen hijos o no (hijo), presentando la cantidad de casos, la media y la desviación estándar.
goldin_data %>%
dplyr::group_by(hijo) %>%
dplyr::summarise(Obs. = n(),
Media = mean(ytrabajocor, na.rm = T),
DS = sd(ytrabajocor, na.rm = T)) %>%
kableExtra::kable(format = "markdown") # hacemos la tabla| hijo | Obs. | Media | DS |
|---|---|---|---|
| 0 | 353 | 706113.7 | 830191.0 |
| 1 | 1098 | 590847.7 | 638006.8 |
Ahora vamos con los 5 pasos de la inferencia
1. Formulación de hipótesis
El primer paso es traducir nuestra pregunta a una hipótesis estadística contrastable. Para ello cabe preguntarse, ¿direccional o no direccional? En este caso, es una hipótesis direccional (mayor que)
Luego, debemos establecer las hipótesis nula y alternativa:
(\(H_0\)): El promedio salarial de las mujeres sin hijos será igual o menor que el promedio salarial de las mujeres con hijos.
(\(H_A\)): El promedio salarial de mujeres sin hijos será mayor que el promedio salarial de las mujeres con hijos.
Pasos 2, 3 y 4 de una vez con R
Siguiendo el ejemplo del Ejercicio 1, utilizaremos el software para estimar el test de hipótesis con un 95% de confianza.
test_ej2 <- t.test(goldin_data$ytrabajocor ~ goldin_data$hijo,
alternative = "greater",
conf.level = 0.95)
test_ej2
Welch Two Sample t-test
data: goldin_data$ytrabajocor by goldin_data$hijo
t = 2.3914, df = 492.66, p-value = 0.008578
alternative hypothesis: true difference in means between group 0 and group 1 is greater than 0
95 percent confidence interval:
35835.71 Inf
sample estimates:
mean in group 0 mean in group 1
706113.7 590847.7
stats.table <- tidy(test_ej2, conf_int = T)
nice_table(stats.table, broom = "t.test")Method | Alternative | Mean 1 | Mean 2 | M1 - M2 | t | df | p | 95% CI |
|---|---|---|---|---|---|---|---|---|
Welch Two Sample t-test | greater | 706,113.65 | 590,847.70 | 115,265.96 | 2.39 | 492.66 | .009** | [35835.71, Inf] |
A partir de los resultados obtenidos: ¿es posible rechazar la hipótesis planteada?
La prueba t que evalúa la diferencia de medias
Con un 95% de confianza es posible rechazar la hipótesis nula planteada. El promedio salarial de las mujeres sin hijos es $115.265,96 mayor que el de las mujeres con hijos.
3 Ejercicio autónomo
En este ejercicio tomamos de ejemplo una pregunta clásica en ciencias sociales: ¿el ingreso de las personas está relacionado a su nivel educacional?. Para responder esta pregunta vamos a usar una prueba \(t\) de contraste de medias para dos muestras independientes. Realice lo siguiente:
Utilice la bbdd
proc_caseny seleccione las variablesytrabajocoryuniversitaria.Luego genere una muestra aleatoria 1500 casos con la función
sample_n()y elimine los datos perdidos de la variableytrabajocor.Genere una tabla de descriptivos de los ingresos (
ytrabajocor) según si las personas cuentan con educación universitaria o no (universitaria). Presente cantidad de observaciones por categoría, media y desviación estándar.Realice el test de hipótesis considerando los comandos que se vieron a lo largo de la clase y compruebe si es posible rechazar la hipótesis nula
4 Repaso
Hoy vimos:
Repaso de los intervalos de confianza, observando la importancia del error estándar y la estimación de rangos para encontrar el parámetro poblacional
Contraste de hipótesis mediante pruebas de una cola y dos colas
Aplicar los 5 pasos para la inferencia mediante software
Para cerrar…

Generalmente, nuestro objetivo será rechazar la hipótesis nula