Intervalos de Confianza y Teorema del límite central

Author

Dr. Juan Fidel Osuna-Ramos

Published

December 9, 2024

Intervalos de Confianza

Introducción:

Un intervalo de confianza (IC) es un rango de valores dentro del cual podemos decir, - con cierto nivel de confianza (e.g., 95%), que se encuentra el valor verdadero - de un parámetro poblacional (como la media). Es importante recordar que un IC - NO mide la variabilidad de los datos, sino la precisión de la estimación de un parametro, por ejemplo de la media.

Ejercicio:

Explicación paso a paso

  1. Creación de datos simulados:

    • Generamos un conjunto de datos ficticio representando los niveles de glucosa en 50 personas.
  2. Cálculo de la media y el error estándar:

    • La media es la estimación puntual de los datos.

    • El error estándar mide la precisión de la media en base al tamaño de la muestra.

  3. Cálculo del intervalo de confianza:

    • Usamos la distribución t de Student debido al tamaño de muestra (n<30).

    • Calculamos el margen de error multiplicando el error estándar por el valor crítico de t.

  4. Resultados:

    • El intervalo de confianza nos da el rango dentro del cual, con un 95% de confianza, creemos que se encuentra la verdadera media poblacional.
  5. Visualización:

    • Un gráfico muestra la distribución de los datos y los límites del IC para interpretar fácilmente los resultados.

Paso 1: Crear un conjunto de datos

Simularemos un conjunto de datos que represente los niveles de glucosa (mg/dL) de 50 personas.

set.seed(123)  # Aseguramos reproducibilidad
niveles_glucosa <- rnorm(50, mean = 100, sd = 15)  # Media = 100, Desviación estándar = 15

niveles_glucosa
 [1]  91.59287  96.54734 123.38062 101.05763 101.93932 125.72597 106.91374
 [8]  81.02408  89.69721  93.31507 118.36123 105.39721 106.01157 101.66024
[15]  91.66238 126.80370 107.46776  70.50074 110.52034  92.90813  83.98264
[22]  96.73038  84.60993  89.06663  90.62441  74.69960 112.56681 102.30060
[29]  82.92795 118.80722 106.39696  95.57393 113.42688 113.17200 112.32372
[36] 110.32960 108.30876  99.07132  95.41056  94.29293  89.57940  96.88124
[43]  81.01905 132.53434 118.11943  83.15337  93.95673  93.00017 111.69948
[50]  98.74946
str(niveles_glucosa)
 num [1:50] 91.6 96.5 123.4 101.1 101.9 ...

Paso 2: Calcular la media y el error estándar

media <- mean(niveles_glucosa)  # Media de los datos
sd <- sd(niveles_glucosa)       # Desviación estándar
n <- length(niveles_glucosa)    # Tamaño de la muestra
se <- sd / sqrt(n)              # Error estándar de la media

media
[1] 100.5161
sd
[1] 13.88805
n
[1] 50
se
[1] 1.964067

Paso 3: Calcular el intervalo de confianza del 95%

Determinamos los límites del intervalo de confianza

El cálculo de un Intervalo de Confianza (IC) del 95% implica varios pasos clave. Vamos a desglosar y entender cada uno de ellos detalladamente.

Para calcular un IC de la media poblacional (𝜇) basado en una muestra, usamos la siguiente formula:

Paso 1: Nivel de significancia (𝛼)

El nivel de confianza (1 −𝛼) indica qué tan seguro estamos de que el intervalo contiene el valor verdadero de la media poblacional:

  • Para un IC del 95%, el nivel de confianza es 0.95 (𝛼= 0.05).

α=1−Nivel de Confianza

Paso 2: Valor crítico (𝑡𝛼/2)

El valor crítico (𝑡𝛼/2) determina cuántos errores estándar necesitamos sumar y restar para abarcar el 95% de los datos. Se calcula utilizando la distribución 𝑡 t de Student y depende de:

Nivel de confianza (1−α): Para un IC del 95%, usamos 𝛼/2= 0.025 para calcular el límite superior e inferior.

Grados de libertad ( 𝑑 𝑓 ): Calculado como 𝑛 − 1

(donde 𝑛 n es el tamaño de la muestra).

Fórmula:

df <- n - 1

alpha <- 0.05                   # Nivel de significancia (1 - 95%)

t_critico <- qt(1 - alpha / 2, df = n - 1)  # Valor crítico t para el 95%

margen_error <- t_critico * se  # Margen de error

margen_error
[1] 3.94694

La función qt en R calcula el valor crítico basado en:

  • 1−α/2: Área acumulada de la cola inferior.

  • Grados de libertad (df).

Paso 3: Margen de error

El margen de error define qué tan lejos de la media muestral (x̄) se extiende el intervalo de confianza. Se calcula multiplicando el valor crítico (𝑡𝛼/2) por el error estándar (𝑆𝐸):

  • S=desviación estándar de la muestra).

  • n= tamaño de la muestra.

margen_error <- t_critico * se  # Margen de error

Finalmente, el Intervalo de Confianza se construye sumando y restando el margen de error a la media muestral:

ic_inf <- media - margen_error
ic_inf
[1] 96.56911
ic_sup <- media + margen_error
ic_sup
[1] 104.463
# Resultado
cat("Media:", round(media, 2), "\n")
Media: 100.52 
cat("Intervalo de Confianza del 95%: [", round(ic_inf, 2), ",", round(ic_sup, 2), "]\n")
Intervalo de Confianza del 95%: [ 96.57 , 104.46 ]

Podemos interpretar que con un 95% de confianza, la verdadera media de glucosa en la población se encuentra entre 96.5 mg/dL y 104.53 mg/dL

Este análisis es esencial para reportar resultados en investigaciones científicas, ya que muestra no solo la estimación puntual sino también la precisión de la misma.

Ejemplo práctico

Supongamos:

  • Media muestral (x̄) = 100

  • Desviación estándar (S) = 15

  • Tamaño de muestra (n) = 30

# Establecemos Parámetros
alpha <- 0.05
n <- 15
S <- 30
media <- 100

# Error estándar
se <- S / sqrt(n)

# Valor crítico t
t_critico <- qt(1 - alpha / 2, df = n - 1)

# Margen de error
margen_error <- t_critico * se

# Intervalo de confianza
ic_inf <- media - margen_error
ic_sup <- media + margen_error

cat("Intervalo de Confianza del 95%:", round(ic_inf, 2), "-", round(ic_sup, 2), "\n")
Intervalo de Confianza del 95%: 83.39 - 116.61 

Resumen gráfico

Puedes visualizar el cálculo del IC en un gráfico para mayor claridad:

library(ggplot2)

# Crear un data frame
df <- data.frame(
  media = media,
  ic_inf = ic_inf,
  ic_sup = ic_sup
)

# Graficar el IC
ggplot(df, aes(x = 1, y = media)) +
  geom_point(size = 3, color = "red") + 
  ylim(0,200) +
  geom_errorbar(aes(ymin = ic_inf, ymax = ic_sup), width = 0.2, color = "blue") +
  labs(title = "Intervalo de Confianza del 95% para la Media",
       x = "Muestra",
       y = "Media") +
  theme_minimal()

t_critico <- qt(1 - alpha / 2, df = n - 1)

Calculo en R

# Datos simulados
set.seed(123)
datos <- rnorm(30, mean = 100, sd = 15)

# Calcular estadísticas
media <- mean(datos)  # Media muestral ( <- = aparece con alt + - (gión))
sd <- sd(datos)       # Desviación estándar muestral
n <- length(datos)    # Tamaño de la muestra
se <- sd / sqrt(n)    # Error estándar

# Nivel de significancia
alpha <- 0.05

# Valor crítico t
t_critico <- qt(1 - alpha / 2, df = n - 1)

# Margen de error
margen_error <- t_critico * se

# Intervalo de confianza
ic_inf <- media - margen_error
ic_sup <- media + margen_error

cat("Media:", round(media, 2), "\n")
Media: 99.29 
cat("Intervalo de Confianza del 95%: [", round(ic_inf, 2), ",", round(ic_sup, 2), "]\n")
Intervalo de Confianza del 95%: [ 93.8 , 104.79 ]

Interpretación

  • El Intervalo de Confianza del 95% indica que estamos 95% seguros de que el verdadero valor poblacional de μ está entre [IC inf - IC sup]

  • Este rango refleja tanto la variabilidad en los datos como el tamaño de la muestra.

  • El valor tα/2​ ajusta el margen de error según el tamaño de la muestra y su variabilidad.

Cuadro Resumen: Cálculo de Intervalos de Confianza para Diferentes Parámetros

A continuación, se presenta un cuadro que resume los métodos de cálculo de intervalos de confianza (IC) para los parámetros más comunes en estadística:

Diferencias entre Intervalos de Confianza y el Valor p

  1. Intervalos de Confianza (IC):

    • Los IC nos dan un rango plausible para el valor verdadero de un parámetro (como la media o una diferencia entre medias).

    • Interpretación: Un IC del 95% indica que, si repitiéramos el estudio múltiples veces, el 95% de esos intervalos incluiría el valor verdadero del parámetro.

  2. Valor p:

    • El valor p indica la probabilidad de observar un efecto tan extremo (o más) que el encontrado, bajo la hipótesis nula (H0​).

    • Es una herramienta para tomar decisiones sobre rechazar o no H0.

  3. Diferencia práctica:

    • El IC proporciona información sobre la magnitud y precisión del efecto estimado.

    • El valor p solo indica si un efecto es estadísticamente significativo, sin proporcionar información directa sobre su magnitud.

Uso de R: Comparación entre IC y valor p

Paso 1: Datos del Ejemplo

Simulamos datos de niveles de glucosa:

set.seed(123)
niveles_glucosa <- rnorm(200, mean = 100, sd = 15)  # Media = 100, SD = 15

Paso 2: Cálculo del IC 95%

# Calcular estadísticos
media <- mean(niveles_glucosa)  # Media muestral
sd <- sd(niveles_glucosa)       # Desviación estándar muestral
n <- length(niveles_glucosa)    # Tamaño de la muestra
se <- sd / sqrt(n)              # Error estándar

# IC 95%
alpha <- 0.05
t_critico <- qt(1 - alpha / 2, df = n - 1)  # Valor crítico de t
margen_error <- t_critico * se              # Margen de error
ic_inf <- media - margen_error
ic_sup <- media + margen_error

cat("Intervalo de Confianza del 95%: [", round(ic_inf, 2), ",", round(ic_sup, 2), "]\n")
Intervalo de Confianza del 95%: [ 97.9 , 101.84 ]

Paso 3: Cálculo del Valor p

Supongamos que queremos probar si la media poblacional es igual a 95 ( H0​:μ=95):

# Prueba t para media poblacional de 95
t_test <- t.test(niveles_glucosa, mu = 95)  # Hipótesis nula: media = 95

# Resultado del valor p
cat("Valor p:", t_test$p.value, "\n")
Valor p: 2.2747e-06 

Resultados:

  1. IC 95%: Muestra el rango en el que creemos que está la verdadera media de los niveles de glucosa.

    • Ejemplo: Si el IC es [93.8,103.2], sabemos que con un 95% de confianza, la verdadera media de la población está dentro de este rango.
  2. Valor p: Mide si los datos respaldan H0​.

    • Ejemplo: Si el valor p es < 0.05, rechazamos H0​ (es decir, creemos que la media no es 95).

Visualización: IC vs Valor p

Podemos usar un gráfico para explicar cómo el IC y el valor p se relacionan visualmente.

library(ggplot2)

# Crear un data frame para el gráfico
df <- data.frame(
  media = media,
  ic_inf = ic_inf,
  ic_sup = ic_sup
)

# Graficar
ggplot(df, aes(x = 1)) +
  geom_errorbar(aes(ymin = ic_inf, ymax = ic_sup), width = 0.2, color = "blue") + ylim(0,200)+
  geom_point(aes(y = media), size = 4, color = "red") +
  geom_hline(yintercept = 95, linetype = "dashed", color = "black", size = 1.2) +
  labs(
    title = "Comparación entre Intervalos de Confianza e Hipótesis Nula",
    x = "Muestra (niveles de glucosa)",
    y = "Niveles de Glucosa (mg/dL)"
  ) +
  theme_minimal()
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.

Interpretación del Gráfico

  1. Intervalo de Confianza:

    • La línea azul muestra el rango plausible para la verdadera media de la población.

    • Si H0=95 cae fuera del intervalo (línea negra discontinua), podemos concluir que es improbable que μ=95

  2. Valor p:

    • Si el valor p es menor que α=0.05, rechazamos H0​, que es consistente con el hecho de que el IC no incluye 95.

Ventaja de combinar IC y valor p

  1. IC: Proporciona una visión más rica, mostrando la magnitud del efecto y su precisión.

  2. Valor p: Permite tomar decisiones rápidas sobre la hipótesis nula, pero no indica la magnitud del efecto.

Conclusión

  • En investigaciones epidemiológicas, los IC son preferibles porque no solo indican si un efecto es significativo, sino también qué tan grande o preciso es el efecto estimado.

  • El valor p complementa este análisis, ayudándonos a determinar si debemos rechazar una hipótesis nula específica.

Cuando comparamos dos grupos, los Intervalos de Confianza (IC) y el valor p son herramientas complementarias para interpretar las diferencias. A continuación, te presento un ejemplo detallado en R para comparar dos grupos con un enfoque en la estimación de IC y el valor p.

Comparación de Dos Grupos

Supongamos que queremos comparar los niveles de glucosa entre dos grupos: grupo control y grupo experimental.

Datos Simulados

set.seed(123)  # Reproducibilidad

# Simular datos
grupo_control <- rnorm(30, mean = 100, sd = 15)  # Media = 100, SD = 15
grupo_experimental <- rnorm(30, mean = 110, sd = 15)  # Media = 110, SD = 15

Paso 1: Cálculo del Intervalo de Confianza para la Diferencia de Medias

Fórmula:

Código para IC

# Estadísticas descriptivas
media_control <- mean(grupo_control)
media_experimental <- mean(grupo_experimental)
sd_control <- sd(grupo_control)
sd_experimental <- sd(grupo_experimental)
n_control <- length(grupo_control)
n_experimental <- length(grupo_experimental)

# Diferencia de medias
diferencia <- media_experimental - media_control

# Error estándar combinado
se <- sqrt((sd_control^2 / n_control) + (sd_experimental^2 / n_experimental))

# Valor crítico t para IC del 95%
alpha <- 0.05
t_critico <- qt(1 - alpha / 2, df = n_control + n_experimental - 2)

# Margen de error
margen_error <- t_critico * se

# Límites del IC
ic_inf <- diferencia - margen_error
ic_sup <- diferencia + margen_error

cat("Diferencia de medias:", round(diferencia, 2), "\n")
Diferencia de medias: 13.38 
cat("Intervalo de Confianza del 95%: [", round(ic_inf, 2), ",", round(ic_sup, 2), "]\n")
Intervalo de Confianza del 95%: [ 6.32 , 20.44 ]

Paso 2: Prueba de Hipótesis y Valor p

Usamos una prueba t para dos muestras independientes para determinar si la diferencia es estadísticamente significativa.

Código para Prueba t

# Prueba t para dos muestras independientes
t_test <- t.test(grupo_control, grupo_experimental, var.equal = TRUE)

# Resultados
cat("Valor p:", t_test$p.value, "\n")
Valor p: 0.0003576581 
cat("Diferencia estimada (t-test):", t_test$estimate, "\n")
Diferencia estimada (t-test): 99.29344 112.6751 

Paso 3: Visualización de los Resultados

Podemos graficar las distribuciones de ambos grupos y superponer los IC para la diferencia de medias.

Código para Visualización

library(ggplot2)

# Crear un data frame con los datos
df <- data.frame(
  grupo = rep(c("Control", "Experimental"), each = 30),
  niveles_glucosa = c(grupo_control, grupo_experimental)
)

# Graficar los datos
ggplot(df, aes(x = grupo, y = niveles_glucosa, fill = grupo)) +
  geom_boxplot(alpha = 0.7, outlier.colour = "red") +
  geom_point(position = position_jitter(width = 0.1), alpha = 0.5) +
  labs(
    title = "Comparación de Niveles de Glucosa entre Grupos",
    x = "Grupo",
    y = "Niveles de Glucosa (mg/dL)"
  ) +
  theme_minimal() +
  scale_fill_manual(values = c("#00BFC4", "#F8766D"))

¿Te gustaría agregar la significancia al gráfico?

Para agregar la significancia a un gráfico de comparación entre dos grupos con ggpubr, puedes usar la función stat_compare_means() que simplifica la adición de etiquetas de significancia estadística al gráfico.

# Instalar ggpubr si no lo tienes
# install.packages("ggpubr")

library(ggplot2)
library(ggpubr)

# Crear un data frame con los datos
df <- data.frame(
  grupo = rep(c("Control", "Experimental"), each = 30),
  niveles_glucosa = c(grupo_control, grupo_experimental)
)

# Graficar los datos con significancia
ggplot(df, aes(x = grupo, y = niveles_glucosa, fill = grupo)) +
  geom_boxplot(alpha = 0.7, outlier.colour = "red") +
  geom_point(position = position_jitter(width = 0.1), alpha = 0.5) +
  labs(
    title = "Comparación de Niveles de Glucosa entre Grupos",
    x = "Grupo",
    y = "Niveles de Glucosa (mg/dL)"
  ) +
  theme_minimal() +
  scale_fill_manual(values = c("#00BFC4", "#F8766D")) +
  stat_compare_means(
    method = "t.test", # Realizar prueba t
    label = "p.format", # Mostrar el valor p en formato estándar o lo puedes cambiar por "p.signif" para asteriscos
    label.y = max(df$niveles_glucosa) + 5 # Ajustar la posición de la etiqueta
  ,label.x=1.5)

  1. stat_compare_means():

    • Agrega la significancia estadística al gráfico.

    • El argumento method especifica el tipo de prueba estadística (en este caso, t.test para comparar dos medias).

  2. label = "p.format":

    • Formatea el valor p que se mostrará en el gráfico.
  3. label.y:

    • Ajusta la posición vertical de la etiqueta para que no interfiera con los datos.

Interpretación del Gráfico

  • Ahora, el gráfico incluye un indicador visual del valor p, mostrando si la diferencia entre los grupos es estadísticamente significativa.

  • Si el valor p es menor a 0.05, los resultados son considerados estadísticamente significativos.

    Entonces:

  • Intervalo de Confianza (IC):

    • Proporciona un rango para la diferencia entre medias.

    • Ejemplo: Si el IC es [8.5,13.2], podemos decir con un 95% de confianza que la verdadera diferencia de medias está en este rango.

  • Valor p:

    • Determina si la diferencia entre las medias es estadísticamente significativa.

    • Ejemplo: Si p<0.05, rechazamos la hipótesis nula de que las medias son iguales.

Interpretación: IC vs Valor p

  1. El IC:

    • Nos dice no solo si la diferencia es significativa, sino también cuán grande es la diferencia y qué tan precisa es la estimación.
  2. El Valor p:

    • Solo nos dice si la diferencia es significativa a un nivel específico (α=0.05).

En este ejemplo:

  • El IC muestra la magnitud y precisión de la diferencia de medias.

  • El valor p complementa este análisis al indicar si la diferencia es estadísticamente significativa.

Este enfoque integrado es esencial para reportar resultados significativos en la investigación😊.