La distribución muestral de la diferencia de medias es fundamental para comparar las medias de dos poblaciones independientes. Consideramos varios escenarios según las características de las poblaciones y los datos muestrales. Escenarios
Cuando no se conocen las varianzas poblacionales, es importante determinar si las varianzas de las muestras son significativamente diferentes. Esto se puede realizar utilizando:
Prueba de Levene: Evaluada para verificar si las varianzas de dos o más grupos son iguales. Es robusta a desviaciones de la normalidad.
Prueba de Bartlett: Asume que los datos provienen de una distribución normal. Es más sensible a desviaciones de la normalidad.
\[ {\mu}_{\overline{X}_{1}-\overline{X}_{2}}={\mu}_{1}-{\mu}_{2} \]
\[ S_p^2=\frac{(n_1−1)s_1^2+(n_2−1)s_2^2}{n_1+n_2−2} \]
\[ {\sigma}_{\overline{X}_{1}-\overline{X}_{2}}=\sqrt{S_p^2\left(\frac{1}{n_1}+\frac{1}{n_2}\right)} \]
\[ {\mu}_{\overline{X}_{1}-\overline{X}_{2}}={\mu}_{1}-{\mu}_{2} \]
\[ {\sigma}_{\overline{X}_{1}-\overline{X}_{2}}=\sqrt{\left(\frac{S_1^2}{n_1}+\frac{S_2^2}{n_2}\right)} \]
Simularemos dos poblaciones con varianzas iguales y calcularemos la distribución muestral de la diferencia de medias. Realizaremos la prueba de Levene para verificar la igualdad de varianzas.
set.seed(123)
# Definir parámetros poblacionales
mu1 <- 5
mu2 <- 7
sigma <- 2 # Varianzas iguales
# Tamaños de muestra
n1 <- 50
n2 <- 50
# Generar muestras
muestra1 <- rnorm(n1, mean = mu1, sd = sigma)
muestra2 <- rnorm(n2, mean = mu2, sd = sigma)
# Prueba de Levene
datos_var_iguales <- data.frame(
valor = c(muestra1, muestra2),
grupo = factor(rep(c("Grupo 1", "Grupo 2"), c(n1, n2)))
)
levene_test_result <- leveneTest(valor ~ grupo, data = datos_var_iguales)
# Calcular diferencias de medias muestrales
diferencias_medias_iguales <- replicate(1000, {
mean(sample(muestra1, replace = TRUE)) - mean(sample(muestra2, replace = TRUE))
})
# Crear un data frame para graficar
df_diferencias_iguales <- data.frame(Diferencia = diferencias_medias_iguales)
# Graficar
ggplot(df_diferencias_iguales, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightblue", alpha = 0.7) +
geom_vline(aes(xintercept = mu1 - mu2), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de la Diferencia de Medias (Varianzas Iguales)",
x = "Diferencia de Medias Muestrales", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu1 - mu2, y = max(table(cut(df_diferencias_iguales$Diferencia, breaks = 30))) * 0.8,
label = "Diferencia Poblacional", color = "red", hjust = -0.2, size = 4)
# Resultados de la prueba de Levene
levene_test_result
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 1 0.2071 0.65
## 98
Simularemos dos poblaciones con varianzas diferentes y calcularemos la distribución muestral de la diferencia de medias. Verificamos la igualdad de varianzas usando la prueba de Levene.
set.seed(123)
# Definir parámetros poblacionales
mu1_diff <- 5
mu2_diff <- 7
sigma1_diff <- 2
sigma2_diff <- 3
# Generar muestras
muestra1_diff <- rnorm(n1, mean = mu1_diff, sd = sigma1_diff)
muestra2_diff <- rnorm(n2, mean = mu2_diff, sd = sigma2_diff)
# Prueba de Levene
datos_var_diferentes <- data.frame(
valor = c(muestra1_diff, muestra2_diff),
grupo = factor(rep(c("Grupo 1", "Grupo 2"), c(n1, n2)))
)
levene_test_result_diff <- leveneTest(valor ~ grupo, data = datos_var_diferentes)
# Calcular diferencias de medias muestrales
diferencias_medias_diferentes <- replicate(1000, {
mean(sample(muestra1_diff, replace = TRUE)) - mean(sample(muestra2_diff, replace = TRUE))
})
# Crear un data frame para graficar
df_diferencias_diferentes <- data.frame(Diferencia = diferencias_medias_diferentes)
# Graficar
ggplot(df_diferencias_diferentes, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "orange", alpha = 0.7) +
geom_vline(aes(xintercept = mu1_diff - mu2_diff), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de la Diferencia de Medias (Varianzas Diferentes)",
x = "Diferencia de Medias Muestrales", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu1_diff - mu2_diff, y = max(table(cut(df_diferencias_diferentes$Diferencia, breaks = 30))) * 0.8,
label = "Diferencia Poblacional", color = "red", hjust = -0.2, size = 4)
# Resultados de la prueba de Levene
levene_test_result_diff
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 1 4.4228 0.03802 *
## 98
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Cuando las varianzas son conocidas, podemos calcular la desviación estándar directamente. Si no, usamos la varianza muestral.
# Supongamos que conocemos las varianzas
sigma1_known <- 2
sigma2_known <- 2
# Calcular la diferencia de medias con varianzas conocidas
diferencias_medias_conocidas <- replicate(1000, {
muestra1 <- rnorm(n1, mean = mu1, sd = sigma1_known)
muestra2 <- rnorm(n2, mean = mu2, sd = sigma2_known)
mean(muestra1) - mean(muestra2)
})
# Crear un data frame para graficar
df_diferencias_conocidas <- data.frame(Diferencia = diferencias_medias_conocidas)
# Graficar
ggplot(df_diferencias_conocidas, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightcoral", alpha = 0.7) +
geom_vline(aes(xintercept = mu1 - mu2), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de la Diferencia de Medias (Varianzas Conocidas)",
x = "Diferencia de Medias Muestrales", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu1 - mu2, y = max(table(cut(df_diferencias_conocidas$Diferencia, breaks = 30))) * 0.8,
label = "Diferencia Poblacional", color = "red", hjust = -0.2, size = 4)
# Calcular la diferencia de medias con varianzas desconocidas
diferencias_medias_desconocidas <- replicate(1000, {
muestra1 <- rnorm(n1, mean = mu1, sd = sigma)
muestra2 <- rnorm(n2, mean = mu2, sd = sigma)
mean(muestra1) - mean(muestra2)
})
# Crear un data frame para graficar
df_diferencias_desconocidas <- data.frame(Diferencia = diferencias_medias_desconocidas)
# Graficar
ggplot(df_diferencias_desconocidas, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightgreen", alpha = 0.7) +
geom_vline(aes(xintercept = mu1 - mu2), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de la Diferencia de Medias (Varianzas Desconocidas)",
x = "Diferencia de Medias Muestrales", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu1 - mu2, y = max(table(cut(df_diferencias_desconocidas$Diferencia, breaks = 30))) * 0.8,
label = "Diferencia Poblacional", color = "red", hjust = -0.2, size = 4)
Los datos pareados surgen cuando las observaciones son dependientes, como en estudios de antes y después. En estos casos, analizamos la diferencia dentro de cada par.
Simularemos datos de un estudio antes y después para calcular la distribución muestral de la diferencia de pares.
set.seed(123)
# Supongamos que tenemos una población donde los cambios tienen una media de 2
mu_cambio <- 2
sigma_cambio <- 1.5
# Número de pares
n_pares <- 50
# Simular datos pareados
diferencias_pareadas <- rnorm(n_pares, mean = mu_cambio, sd = sigma_cambio)
# Crear un data frame para graficar
df_pareados <- data.frame(Diferencia = diferencias_pareadas)
# Graficar
ggplot(df_pareados, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightblue", alpha = 0.7) +
geom_vline(aes(xintercept = mu_cambio), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de Datos Pareados",
x = "Diferencia de Pares", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu_cambio, y = max(table(cut(df_pareados$Diferencia, breaks = 30))) * 0.8,
label = "Media de Cambio", color = "red", hjust = -0.2, size = 4)
Apliquemos estos conceptos con un ejercicio que compara dos grupos, considerando varianzas conocidas y desconocidas, así como datos pareados.
set.seed(456)
# Definir parámetros poblacionales
mu1_alt <- 70
mu2_alt <- 75
sigma_alt_known <- 4 # Varianzas conocidas
# Tamaños de muestra
n1_alt <- 40
n2_alt <- 60
# Calcular diferencias de medias muestrales
diferencias_medias_alt_known <- replicate(1000, {
muestra1 <- rnorm(n1_alt, mean = mu1_alt, sd = sigma_alt_known)
muestra2 <- rnorm(n2_alt, mean = mu2_alt, sd = sigma_alt_known)
mean(muestra1) - mean(muestra2)
})
# Crear un data frame para graficar
df_diferencias_alt_known <- data.frame(Diferencia = diferencias_medias_alt_known)
# Graficar
ggplot(df_diferencias_alt_known, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightpink", alpha = 0.7) +
geom_vline(aes(xintercept = mu1_alt - mu2_alt), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de la Diferencia de Medias (Varianzas Conocidas - Grupos Alternativos)",
x = "Diferencia de Medias Muestrales", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu1_alt - mu2_alt, y = max(table(cut(df_diferencias_alt_known$Diferencia, breaks = 30))) * 0.8,
label = "Diferencia Poblacional", color = "red", hjust = -0.2, size = 4)
set.seed(789)
# Simular cambios en los pares
mu_cambio_alt <- 3
sigma_cambio_alt <- 2
# Número de pares
n_pares_alt <- 40
# Simular datos pareados
diferencias_pareadas_alt <- rnorm(n_pares_alt, mean = mu_cambio_alt, sd = sigma_cambio_alt)
# Crear un data frame para graficar
df_pareados_alt <- data.frame(Diferencia = diferencias_pareadas_alt)
# Graficar
ggplot(df_pareados_alt, aes(x = Diferencia)) +
geom_histogram(bins = 30, fill = "lightcoral", alpha = 0.7) +
geom_vline(aes(xintercept = mu_cambio_alt), color = "red", linetype = "dashed", size = 1) +
labs(title = "Distribución Muestral de Datos Pareados (Grupos Alternativos)",
x = "Diferencia de Pares", y = "Frecuencia") +
theme_minimal() +
annotate("text", x = mu_cambio_alt, y = max(table(cut(df_pareados_alt$Diferencia, breaks = 30))) * 0.8,
label = "Media de Cambio", color = "red", hjust = -0.2, size = 4)
La distribución muestral de la diferencia de medias es esencial para realizar pruebas de hipótesis sobre la diferencia de medias poblacionales. Considerar si las varianzas son iguales, diferentes, conocidas o desconocidas, y si los datos son pareados, nos ayuda a seleccionar el método estadístico apropiado. A través de los ejemplos, hemos visto cómo las diferencias de medias muestrales se distribuyen en diversos escenarios, lo cual es crucial para la inferencia estadística.