¿Qué es un intervalo de confianza?

Un intervalo de confianza (IC) estima un parámetro con un rango de posibles valores que, con cierta probabilidad (1-\(\alpha\)), contiene al valor verdadero del parámetro. Con frecuencia es expresado como porcentaje (por ejemplo: IC del 95%), es definido por un límite inferior y superior de confianza que nos dan la precisión de una estimación.

Intervalo de confianza del 95%

Derivado de la variabilidad natural del muestreo, estadísticos como la media muestral o la proporción muestral no serán los mismos en cada extracción aleatoria de datos (muestra). Si se repite el método de muestreo muchas veces, digamos 100 veces, aproximadamente un 95 de los intervalos construidos incluirían el valor verdadero de la población, esto quiere decir que tenemos un IC del 95%.

Idealmente, mientras el tamaño de muestra aumenta, el rango de valores del IC se reduce, es decir es eficiente, significando que se estima el valor verdadero del parámetro con mayor precisión o certeza, lo cual es una característica deseable de los IC.

Cuando se estudia una variable continua, por ejemplo mediciones clínicas, los datos pueden ser resumidos por la media y la desviación estándar. Una media muestral observada será una estimación de la media verdadera. El error estándar de la media representa que tan lejos está la media muestral observada del valor verdadero, y ambos estadísticos, son utilizados para calcular un IC con (1-\(\alpha\))% de nivel de confianza para la media poblacional usando la siguiente expresión:
\[ IC = \text{Media observada} \pm Z_{\alpha/2} * \text{Error típico} \]

En los casos expuestos, se tiene que: \[\text{Error típico} = \frac{\sigma}{\sqrt n }\]

Donde:

Los IC juegan un papel importante en los reportes científicos, ya que ayudan a obtener información poblacional la cual será interpretada y evaluada para realizar conclusiones con validez estadística. Sin embargo, se debe realizar con mucho cuidado las interpretaciones que se realicen respecto al estudio, recordar que el diseño es la parte más importante en una investigación.

A continuación, se presenta un ejemplo con los detalles del cálculo de intervalos de confianza para la media muestral.


Declaración de paqueterias

library(ggplot2)


1.1 Intervalo de confianza para una población

Un médico conduce un pequeño estudio con una muestra aleatoria de pacientes, donde le interesa estudiar el nivel promedio de colesterol presente en la sangre de sus pacientes. Es por ello que midió los niveles de 20 pacientes y desea realizar inferencias utilizando un IC del 95%.

A continuación se presentan los datos analizados en milimoles por litro (mmol/L):

Mediciones = c( 3.6, 6.9, 5.1, 4.2, 5.5, 7.2, 3.0, 5.8, 4.9, 9.9, 7.1, 5.4, 6.2, 4.5, 6.3, 8.2, 5.7, 4.4, 7.9, 3.2)

Descripción de variable respuesta

  • Tipo de variable: Cuantitativa continua
  • x: Nivel de colesterol en el i-ésimo paciente en mmol/L

Hipótesis estadística (Simple Vs Simple)

  • \(H_0\): La media del nivel de colesterol en pacientes es 6.2 mmol/L
  • \(H_a\): La media del nivel de colesterol en pacientes es diferente de 6.2 mmol/L

Se comienza calculando el estadístico de la muestra, que en este caso se refiere a la media, ya que se trata de una variable respuesta continua en base a mediciones sobre personas.

xmedia = mean(Mediciones)                  #Media muestral
xmedia
## [1] 5.75

Se estima que la media del nivel de colesterol en los pacientes es 5.75 mmol/L. Esto indica una estimación para la media verdadera de la población.

A continuación, se calcula la desviación estándar de las mediciones haciendo uso de unas de las funciones ya establecidas en R donde el único argumento que necesita son los datos.
sigma <- sd(Mediciones)                  #Desviación estándar de mediciones
sigma
## [1] 1.768288
Los niveles de colesterol en los pacientes tienen una desviación estándar de 1.768, la cual indica la variabilidad de los datos alrededor del valor de la media.

Y una vez obtenidos los datos anteriores se puede calcular el error típico de las mediciones de la siguiente manera:
errorTip <- sigma/sqrt(length(Mediciones))        #Error típico
errorTip
## [1] 0.3954012

El error típico ayuda a darse una idea de la precisión que tendrá el intervalo para estimar el valor verdadero de la media.

A continuación, se utilizará la distribución de t-student debido a que los datos han sido obtenidos de una muestra y no se conoce el valor de la varianza poblacional, además de que el tamaño de muestra es pequeño.

El valor de t-student es una probabilidad de \(\alpha\)/2 con n-1 grados de libertad tal como se muestra a continuación:
gl <- (length(Mediciones)-1)           #n-1 gados de libertad (n=20)
gl
## [1] 19
alfa_2 <- (1-0.95)/2                         #valor de alfa sobre 2

t <- qt(1-alfa_2, df=gl)                     #Función para obtener cuantiles de t-student
t
## [1] 2.093024

Una vez consiguiendo los valores requeridos, se pueden calcular los intervalos de confianza a 95%:

#Intervalos de confianza 

LI1 <- xmedia - (t*errorTip)       #Límite inferior
LS1 <- xmedia + (t*errorTip)       #Límite superior
(4.9224158 , 6.5775842)


Se determina con una confianza del 95% que el nivel promedio de colesterol en los pacientes van desde 4.92 hasta 6.58 mmol/L y por tanto NO se rechaza \(H_0\).

1.2 Cálculo de Intervalos de Confianza usando una prueba t

Calcular los intervalos de confianza de forma manual no es de gran dificultad cuando se dispone de funciones estadísticas, como se observó en la sección anterior. Sin embargo, la intención es emplear métodos que ayuden a encontrar los valores deseados de una forma más rápida y sencilla El software R ofrece opciones, por ejemplo usando una prueba t:


t.test(Mediciones,                 #Datos a emplear
       alternative = "two.sided",        #Tipo de prueba (bilateral)
       mu = 6.2,                         #Media de análisis
       conf.level = 0.95)                #Nivel de confianza
## 
##  One Sample t-test
## 
## data:  Mediciones
## t = -1.1381, df = 19, p-value = 0.2692
## alternative hypothesis: true mean is not equal to 6.2
## 95 percent confidence interval:
##  4.922416 6.577584
## sample estimates:
## mean of x 
##      5.75
  • El valor p es no significativo y por tanto NO se rechaza \(H_0\)
  • El IC del 95% para la media muestral es: (4.9224, 6.58), el cual contiene el 6.2 por tanto NO se rechaza \(H_0\).

1.3 Simulación de Intervalos de confianza del 95%

Se realizan 100 simulaciones (sin reemplazo) de 20 pacientes elegidos al azar, donde se calcula un intervalo de confianza para cada simulación y posteriormente son graficados, se espera que en 95 realizaciones el IC contenga el valor verdadero.

LI <- NULL                 #Iniciación de variable para limite inferior
LS <- NULL                 #Iniciación de variable para limite superior
medias <- NULL             #Iniciación de variable para las medias
si <- NULL

#Se realiza un ciclo 100 veces

Simulaciones <- for (i in 1:100){
  
  set.seed(i)
  
  Poblacion= rnorm(100, mean = xmedia, sd =sigma )
  
  muestra = sample(Poblacion, size=20 ,replace=FALSE)     #Tomamos muestra de 20 mediciones
  
  media = mean(muestra)                                         #Media de la muestra
  
  desviacionEsta = sqrt(var(muestra))                           #Desv.Están. de la muestra
  
  errorEstandar =(desviacionEsta/sqrt(length(Mediciones)))  #Error estandar de la muestra
  
  LI[i]= media-t*errorEstandar              #Limites inferiores (recolectados)
  LS[i]= media+t*errorEstandar              #Limites superiores (recolectados)
  medias[i] = media                         #Medias (recolectadas)
  
  inf = sum(LI  > mean(medias))                     #Limites inferiores mayores a la media
  sup = sum(LS  < mean(medias))                     #Limites superior menores a la media
}

noContieneMedia <- (sup+inf)/100
siContieneMedia <- (1-noContieneMedia)*100

Visualización de los datos

ejex <- c(1:100)
leg <- c("Media Verdadera")

ggplot(Simulaciones, aes(medias,ejex)) +        # ggplot2 plot with confidence intervals
  geom_point() +
  geom_errorbar(aes(xmin = LI, xmax = LS))+
  geom_vline(xintercept = mean(medias), col = "maroon", size=1)+
  geom_text(aes(mean(Poblacion), 0, label = leg, vjust = -105, hjust=0.5,color="red",fontface ="bold", show.legend = NA)) +
  scale_y_continuous(limits = c(0, 101), name = "Muestras") +
  scale_x_continuous(limits = c(3.5, 8),name = "Nivel de colesterol en mmol/L") +
  ggtitle("Nivel de colesterol en pacientes, n=20") + theme(plot.title = element_text(hjust = 0.5))

De los 100 intervalos de confianza calculados 91% contiene el valor verdadero de la media