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
Creación de datos simulados:
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.
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.
Resultados:
Visualización:
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 81.02408 89.69721 93.31507 118.36123 105.39721 106.01157
[14] 101.66024 91.66238 126.80370 107.46776 70.50074 110.52034 92.90813 83.98264 96.73038 84.60993 89.06663 90.62441 74.69960
[27] 112.56681 102.30060 82.92795 118.80722 106.39696 95.57393 113.42688 113.17200 112.32372 110.32960 108.30876 99.07132 95.41056
[40] 94.29293 89.57940 96.88124 81.01905 132.53434 118.11943 83.15337 93.95673 93.00017 111.69948 98.74946
str(niveles_glucosa)
num [1:50] 91.6 96.5 123.4 101.1 101.9 ...
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
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:
El nivel de confianza (1 −𝛼) indica qué tan seguro estamos de que el intervalo contiene el valor verdadero de la media poblacional:
α=1−Nivel de Confianza
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.
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).
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
[1] 3.94694
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.
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
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()
Fórmulas clave
El intervalo de confianza para la media poblacional u, basado en una muestra, se calcula con la fórmula:
IC= XIta/2• SE
Donde:
X: Media muestral.
ta/2: Valor crítico de la distribución t de Student, que depende del nivel de confianza y los grados de libertad (n- 1).
SE: Error estándar de la media:
S: Desviación estándar muestral.
n: Tamaño de la muestra.
Cálculo paso a paso
Paso 1: Establecer el nivel de significancia a
El nivel de significancia está relacionado con el nivel de confianza deseado (1 - a). Para un IC del 95%:
a = 1 - 0.95 = 0.05
Esto significa que existe un 5% de probabilidad de que el verdadero valor poblacional u quede fuera del intervalo calculado.
Paso 2: Obtener el valor crítico ta/2
El valor crítico ta/2 se obtiene de la distribución t de Student. Este valor depende de:
a/ 2: Mitad del nivel de significancia, ya que el IC tiene dos colas (a/ 2 en cada lado).
Grados de libertad (df): Para una muestra, df = n - 1.
En R, calculamos esto usando la función qt :
t_critico <- qt(1-alpha / 2, df = n - 1)
Paso 3: Calcular
el error estándar (SE)
El error estándar de la media estima cuánto varía la media muestral con respecto a la media poblacional.
Paso 4: Calcular el margen de error
El margen de error mide cuánto podemos desviar la estimación puntual (media muestral) para construir el intervalo.
Paso 5: Construir el intervalo de confianza
Finalmente, construimos el IC sumando y restando el margen de error de la media muestral ($).
Calculo en R
# datos simulados
set.seed(123)
datos <- rnorm(30, mean = 100, sd = 15)
# calcular estadísticas
media <- mean(datos)
sd <- sd(datos) # desviación estándar muestral
n <- length(datos) #tamaño de la muestra
se <- sd / sqrt(n) # error estandar
# nivel de significancia
alpha <- 0.05
# valor crítico t
t_critico <- qt(1 - alpha / 2, df = n - 1)
#margen de eror
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 ]
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.
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.
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.
Simulamos datos de niveles de glucosa:
Paso 2: Cálculo del IC 95%
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
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.
Valor p: Mide si los datos respaldan o rechazan la H0.
Podemos usar un gráfico para explicar cómo el IC y el valor p se relacionan visualmente.
Intervalo de Confianza:
La línea punteada 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
Valor p:
IC: Proporciona una visión más integrativa, mostrando la magnitud del efecto y su precisión.
Valor p: Permite tomar decisiones rápidas sobre la hipótesis nula, pero no indica la magnitud del efecto.
En investigaciones epidemiológicas, clínicas o biologicas. 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.
Supongamos que queremos comparar los niveles de glucosa entre dos grupos: grupo control y grupo experimental.
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 ]
Usamos una prueba t para dos muestras independientes para determinar si la diferencia es estadísticamente significativa.
# 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
Podemos graficar las distribuciones de ambos grupos y superponer los IC para la diferencia de medias.
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"))
AGREGAR SIGNIFICANCIA 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)
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).
label = "p.format":
label.y:
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.
El IC:
El Valor p:
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 nuestras investigaciones.