Intervalos de confianza

Jose Alejandro Martinez Arias

2025-11-12

library(ggplot2)
library(dplyr)
library(flextable)
library(nortest)

Introducción

La rama de la estadítica que utiliza técnicas para estimar parametros que caracetrizan una distribución se conoce com estadística inferencial.

En este curso se van a estudiar dos técnicas:

  1. Intervalos de confianza.
  2. Prueba de hipótesis

En esta parte se muestran las funciones que hay disponibles en R para construir intervalos de confianza para:

  1. la media \(\ μ\) de una población normal,
  2. la proporción \(p\),
  3. la varianza \(\ σ^2\) de una población normal,
  4. la diferencia de medias \(\ μ_1− \ μ_2\) de dos poblaciones normales independientes,
  5. la diferencia de proporciones \(p_1−p_2\), de poblaciones normales.

Para ilustrar el uso de las funciones se utilizará la base de datos medidas del cuerpo.

Función t.test

La función t.test se usa para calcular intervalos de confianza para la media y para diferencia de medias, con muestras independientes.

Intervalo de confianza bilateral para la media \(\small \mu\)

Para calcular intervalos de confianza bilaterales para la media a partir de la función t.test es necesario definir 2 argumentos:

  • x: vector numérico con los datos.
  • conf.level: nivel de confianza a usar, por defecto es 0.95.

Los demás argumentos se usan cuando se desea obtener intervalos de confianza para diferencia de media con muestras independientes y dependientes (o pareadas).

Ejemplo

Suponga que se quiere obtener un intervalo de confianza bilateral del 90% para la altura promedio de los hombres de la base de datos medidas del cuerpo.

Solución

Para calcular el intervalo de confianza, primero se carga la base de datos usando la url apropiada, luego se crea un subconjunto de datos y se aloja en el objeto hombres como sigue a continuación:

url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/medidas_cuerpo'

datos <- read.table(file = url, header=TRUE)

head(datos,10) 
##    edad peso altura   sexo muneca biceps
## 1    43 87.3  188.0 Hombre   12.2   35.8
## 2    65 80.0  174.0 Hombre   12.0   35.0
## 3    45 82.3  176.5 Hombre   11.2   38.5
## 4    37 73.6  180.3 Hombre   11.2   32.2
## 5    55 74.1  167.6 Hombre   11.8   32.9
## 6    33 85.9  188.0 Hombre   12.4   38.5
## 7    25 73.2  180.3 Hombre   10.6   38.3
## 8    35 76.3  167.6 Hombre   11.3   35.0
## 9    28 65.9  183.0 Hombre   10.2   32.1
## 10   26 90.9  183.0 Hombre   12.0   40.4
attach(datos)

hombres <- datos[sexo == "Hombre",] 

# Estas pruebas de normalidad para verfificar que la distribucion sea normal
attach(hombres)
# Mostrar si altura proviene de una distribucion normal

# cuando al realizar la prueba, da un valor mayor a 0.10, se dice que los datos provienen de una distribucion normal

lillie.test(altura)$p.value 
## [1] 0.3839829
cvm.test(altura)$p.value
## [1] 0.2303828
pearson.test(altura)$p.value
## [1] 0.694963
ad.test(altura)$p.value
## [1] 0.2659667
sf.test(altura)$p.value
## [1] 0.3764676
# Solo se debe probar con alguna de las 5 pruebas

cat("Con todas las pruebas de normalidad probadas, se concluye que las alturas de los hombres provienen de una distribucion normal")
## Con todas las pruebas de normalidad probadas, se concluye que las alturas de los hombres provienen de una distribucion normal

Una vez chequeado el supuesto de normalidad se puede usar la función t.test sobre la variable de interés para construir el intervalo de confianza. El resultado de usar t.test es una lista, uno de los elementos de esa lista es justamente el intevalo de confianza y para extraerlo es que se usa $conf.int al final de la instrucción. A continuación se muestra el código utilizado.

res <- t.test(x = hombres$altura, conf.level=0.90)$conf.int

cat("El intervalo de confianza del 90% para μ esta entre", res)
## El intervalo de confianza del 90% para μ esta entre 176.4384 181.7172

Intervalo de confianza bilateral para la diferencia de medias (μ1−μ2) de muestras independientes

Para construir intervalos de confianza bilaterales para la diferencia de medias (μ1−μ2) de muestras independientes se usa la función t.test y es necesario definir 5 argumentos:

x: vector numérico con la información de la muestra 1. y: vector numérico con la información de la muestra 2.

paired=FALSE: indica que el intervalo de confianza se hará para muestras independientes.

var.equal=FALSE: indica que las varianzas son desconocidas y diferentes, si la varianzas se pueden considerar desconocidas e iguales se coloca var.equal=TRUE.

conf.level: nivel de confianza.

Ejemplo Se quiere saber si existe diferencia estadísticamente significativa entre las alturas de los hombres y las mujeres. Para responder esto se va a construir un intervalo de confianza del 95%para la diferencia de las altura promedio de los ho mbres y de las mujeres \(\mu_{hombres} − \ μ_{mujeres}\).

Solución

Para construir el intervalo de confianza, primero se carga la base de datos usando la url apropiada, luego se crean dos subconjuntos de datos y se alojan en los objetos hombres y mujeres como sigue a continuación:

mujeres <- datos[datos$sexo=="Mujer", ]

# Prueba de normalidad para las alturas de las mujeres

lillie.test(x = mujeres$altura)$p.value
## [1] 0.51194
res1 <- t.test(x=hombres$altura, y=mujeres$altura,
              var.equal = FALSE, conf.level = 0.95)$conf.int

cat("El intervalo de confianza para la diferencia de las alturas entre hombres y mujeres cae entre:", res1)
## El intervalo de confianza para la diferencia de las alturas entre hombres y mujeres cae entre: 10.05574 20.03315