Intervalos 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:

  1. Cálculo e interpretación de intervalos de confianza

  2. 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.

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 consola
Tip

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.

Importante

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%.

Importante

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ítico
limite_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.

Media muestral e intervalo de confianza del 95 %.

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.

Importante

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 trabajo

Cargamos los datos directamente desde internet.

load(url("https://github.com/cursos-metodos-facso/datos-ejemplos/raw/main/proc_casen.RData")) #Cargar base de datos

A 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.

NotaPrueba 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.

NotaPrueba 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 reproducibilidad

2.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)
Tip

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:

  1. Obtener error estándar y estadístico de prueba empírico correspondiente (ej: Z o t)

  2. Establecer la probabilidad de error \(\alpha\) (usualmente 0.05) y obtener valor crítico (teórico) de la prueba correspondiente

  3. 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 tabla

Method

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.

Importante

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_casen y seleccione las variables ytrabajocor y universitaria.

  • Luego genere una muestra aleatoria 1500 casos con la función sample_n() y elimine los datos perdidos de la variable ytrabajocor.

  • 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…

Importante

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