Caris Chia Amaya - Weimar Cortes Montiel
Métodos y Simulación estadística
Maestría en Ciencia de Datos
Pontificia Universidad Javeriana de Cali
El “efecto del tamaño” (o tamaño del efecto, en inglés efect size) en el contexto de la prueba de hipótesis se refiere a la magnitud de la diferencia o la fuerza de la relación que se está investigando entre las variables. En otras palabras, mide la cantidad de cambio o la importancia práctica de los resultados, más allá de simplemente determinar si una diferencia es estadísticamente significativa.
Incluso si una prueba estadística muestra que un resultado es significativo (es decir, si se rechaza la hipótesis nula), el tamaño del efecto te indicará si esa diferencia es importante en un sentido práctico o clínico. Por ejemplo, un estudio podría encontrar que un nuevo medicamento reduce la presión arterial de manera significativa, pero el tamaño del efecto indicaría si la reducción es lo suficientemente grande como para tener relevancia clínica.
RELACIONES ENTRE LA POTENCIA, EL TAMAÑO DE LOS EFECTOS Y EL TAMAÑO DE LA MUESTRA
Para cada tamaño fijo de los efectos d, se modela la relación entre el tamaño muestral y la potencia (manteniendo constante el nivel de significancia α=0.05). En las siguientes figuras se visualizan los resultados para tamaño de efecto muy pequeño (d=0.1), pequeño (d=0.2), mediano (d=0.5) y grande (d=0.8). Repite el análisis usando 5 valores distintos del nivel de significancia. ¿Cambian los resultados? ¿Qué ocurre cuando el tamaño de muestra de los grupos que se comparan es de 20, 60, 100 y 140? Analiza y compara los resultados.
effect_sizes <- c(0.1, 0.2, 0.5, 0.8)
n_values <- seq(10, 200, by = 10)
combined_results <- data.frame()
for (d in effect_sizes) {
power_values <- sapply(n_values, function(n){
pwr.t.test(n = n, d = d, sig.level = 0.05, type = "two.sample", alternative = "two.sided")$power
})
df <- data.frame(
Tamaño_Muestral = n_values,
Potencia = power_values,
Tamaño_Efecto = paste("d =", d)
)
combined_results <- rbind(combined_results, df)
}
ggplot(combined_results, aes(x = Tamaño_Muestral, y = Potencia, color = Tamaño_Efecto, linetype = Tamaño_Efecto)) +
geom_line(size = 1) +
scale_color_manual(values = c("#1f77b4", "#ff7f0e", "#2ca02c", "#d62728")) +
scale_linetype_manual(values = c("solid", "dashed", "dotted", "dotdash")) +
labs(title = "Potencia de la Prueba T para Diferentes Tamaños de Efecto (n = 200)",
x = "Tamaño Muestral",
y = "Potencia",
color = "Tamaño Efecto",
linetype = "Tamaño Efecto") +
geom_hline(yintercept = 0.8, color = "black", linetype = "dashed") +
theme(
legend.position = "right",
legend.title = element_text(size = 12, face = "bold"),
legend.text = element_text(size = 10),
axis.title = element_text(size = 12, face = "bold"),
axis.text = element_text(size = 10)
)
Relación entre Tamaño Muestral y Potencia:
A medida que el tamaño muestral aumenta, la potencia de la prueba
también aumenta para todos los tamaños de efecto, esto significa que con
muestras más grandes, es más probable detectar un efecto si realmente
existe.
Impacto del Tamaño del Efecto:
Para un tamaño de muestra dado, los efectos más grandes (d=0.8) son
más fáciles de detectar (mayor potencia) en comparación con los efectos
más pequeños (d=0.1). Esto se refleja en las líneas de la gráfica, donde
la línea para d=0.8 alcanza una potencia alta más rápidamente que las
líneas para d=0.1, d=0.2 y d=0.5.
Tamaño de Muestra Necesario:
Para alcanzar una potencia deseada (por ejemplo, 0.8), se necesita un
tamaño de muestra mayor para detectar efectos más pequeños. Por ejemplo,
para un efecto muy pequeño (d=0.1), se requiere un tamaño de muestra
mucho mayor que para un efecto grande (d=0.8).
effect_sizes <- c(0.1, 0.2, 0.5, 0.8)
n_values <- seq(10, 20, by = 10)
combined_results <- data.frame()
for (d in effect_sizes) {
power_values <- sapply(n_values, function(n){
pwr.t.test(n = n, d = d, sig.level = 0.05, type = "two.sample", alternative = "two.sided")$power
})
df <- data.frame(
Tamaño_Muestral = n_values,
Potencia = power_values,
Tamaño_Efecto = paste("d =", d)
)
combined_results <- rbind(combined_results, df)
}
ggplot(combined_results, aes(x = Tamaño_Muestral, y = Potencia, color = Tamaño_Efecto, linetype = Tamaño_Efecto)) +
geom_line(size = 1) +
scale_color_manual(values = c("#1f77b4", "#ff7f0e", "#2ca02c", "#d62728")) +
scale_linetype_manual(values = c("solid", "dashed", "dotted", "dotdash")) +
labs(title = "Potencia de la Prueba T para Diferentes Tamaños de Efecto (n = 20)",
x = "Tamaño Muestral",
y = "Potencia",
color = "Tamaño Efecto",
linetype = "Tamaño Efecto") +
geom_hline(yintercept = 0.8, color = "black", linetype = "dashed") +
theme(
legend.position = "right",
legend.title = element_text(size = 12, face = "bold"),
legend.text = element_text(size = 10),
axis.title = element_text(size = 12, face = "bold"),
axis.text = element_text(size = 10)
)
Relación entre Tamaño del Efecto y Potencia:
Efecto muy pequeño (d=0.1): La potencia es muy baja, incluso con un
tamaño muestral de 20, lo que indica que es difícil detectar un efecto
tan pequeño con esta muestra. Efecto pequeño (d=0.2): La potencia sigue
siendo baja, aunque un poco mejor que para d=0.1. Efecto mediano
(d=0.5): La potencia es considerablemente mayor, lo que sugiere que es
más probable detectar un efecto de este tamaño con una muestra de 20.
Efecto grande (d=0.8): La potencia es alta, lo que indica que es muy
probable detectar un efecto grande con el tamaño muestral dado.
effect_sizes <- c(0.1, 0.2, 0.5, 0.8)
n_values <- seq(10, 60, by = 10)
combined_results <- data.frame()
for (d in effect_sizes) {
power_values <- sapply(n_values, function(n){
pwr.t.test(n = n, d = d, sig.level = 0.05, type = "two.sample", alternative = "two.sided")$power
})
df <- data.frame(
Tamaño_Muestral = n_values,
Potencia = power_values,
Tamaño_Efecto = paste("d =", d)
)
combined_results <- rbind(combined_results, df)
}
ggplot(combined_results, aes(x = Tamaño_Muestral, y = Potencia, color = Tamaño_Efecto, linetype = Tamaño_Efecto)) +
geom_line(size = 1) +
scale_color_manual(values = c("#1f77b4", "#ff7f0e", "#2ca02c", "#d62728")) +
scale_linetype_manual(values = c("solid", "dashed", "dotted", "dotdash")) +
labs(title = "Potencia de la Prueba T para Diferentes Tamaños de Efecto (n = 60)",
x = "Tamaño Muestral",
y = "Potencia",
color = "Tamaño Efecto",
linetype = "Tamaño Efecto") +
geom_hline(yintercept = 0.8, color = "black", linetype = "dashed") +
theme(
legend.position = "right",
legend.title = element_text(size = 12, face = "bold"),
legend.text = element_text(size = 10),
axis.title = element_text(size = 12, face = "bold"),
axis.text = element_text(size = 10)
)
Relación entre Tamaño del Efecto y Potencia:
Efecto muy pequeño (d=0.1): La potencia es baja, pero mejora en
comparación con tamaños muestrales más pequeños. Sin embargo, sigue
siendo difícil detectar un efecto tan pequeño. Efecto pequeño (d=0.2):
La potencia es mayor que para d=0.1, pero aún no es óptima. Efecto
mediano (d=0.5): La potencia es considerablemente alta, lo que sugiere
que es probable detectar un efecto de este tamaño con una muestra de 60.
Efecto grande (d=0.8): La potencia es muy alta, lo que indica que es muy
probable detectar un efecto grande con el tamaño muestral dado.
effect_sizes <- c(0.1, 0.2, 0.5, 0.8)
n_values <- seq(10, 100, by = 10)
combined_results <- data.frame()
for (d in effect_sizes) {
power_values <- sapply(n_values, function(n){
pwr.t.test(n = n, d = d, sig.level = 0.05, type = "two.sample", alternative = "two.sided")$power
})
df <- data.frame(
Tamaño_Muestral = n_values,
Potencia = power_values,
Tamaño_Efecto = paste("d =", d)
)
combined_results <- rbind(combined_results, df)
}
ggplot(combined_results, aes(x = Tamaño_Muestral, y = Potencia, color = Tamaño_Efecto, linetype = Tamaño_Efecto)) +
geom_line(size = 1) +
scale_color_manual(values = c("#1f77b4", "#ff7f0e", "#2ca02c", "#d62728")) +
scale_linetype_manual(values = c("solid", "dashed", "dotted", "dotdash")) +
labs(title = "Potencia de la Prueba T para Diferentes Tamaños de Efecto (n = 100)",
x = "Tamaño Muestral",
y = "Potencia",
color = "Tamaño Efecto",
linetype = "Tamaño Efecto") +
geom_hline(yintercept = 0.8, color = "black", linetype = "dashed") +
theme(
legend.position = "right",
legend.title = element_text(size = 12, face = "bold"),
legend.text = element_text(size = 10),
axis.title = element_text(size = 12, face = "bold"),
axis.text = element_text(size = 10)
)
Relación entre Tamaño del Efecto y Potencia:
Efecto muy pequeño (d=0.1): La potencia sigue siendo baja, aunque mejora
en comparación con tamaños muestrales más pequeños. Detectar un efecto
tan pequeño sigue siendo difícil. Efecto pequeño (d=0.2): La potencia es
mayor que para d=0.1, pero aún no es óptima. Efecto mediano (d=0.5): La
potencia es considerablemente alta, lo que sugiere que es probable
detectar un efecto de este tamaño con una muestra de 100. Efecto grande
(d=0.8): La potencia es muy alta, lo que indica que es muy probable
detectar un efecto grande con el tamaño muestral dado.
effect_sizes <- c(0.1, 0.2, 0.5, 0.8)
n_values <- seq(10, 140, by = 10)
combined_results <- data.frame()
for (d in effect_sizes) {
power_values <- sapply(n_values, function(n){
pwr.t.test(n = n, d = d, sig.level = 0.05, type = "two.sample", alternative = "two.sided")$power
})
df <- data.frame(
Tamaño_Muestral = n_values,
Potencia = power_values,
Tamaño_Efecto = paste("d =", d)
)
combined_results <- rbind(combined_results, df)
}
ggplot(combined_results, aes(x = Tamaño_Muestral, y = Potencia, color = Tamaño_Efecto, linetype = Tamaño_Efecto)) +
geom_line(size = 1) +
scale_color_manual(values = c("#1f77b4", "#ff7f0e", "#2ca02c", "#d62728")) +
scale_linetype_manual(values = c("solid", "dashed", "dotted", "dotdash")) +
labs(title = "Potencia de la Prueba T para Diferentes Tamaños de Efecto (n = 140)",
x = "Tamaño Muestral",
y = "Potencia",
color = "Tamaño Efecto",
linetype = "Tamaño Efecto") +
geom_hline(yintercept = 0.8, color = "black", linetype = "dashed") +
theme(
legend.position = "right",
legend.title = element_text(size = 12, face = "bold"),
legend.text = element_text(size = 10),
axis.title = element_text(size = 12, face = "bold"),
axis.text = element_text(size = 10)
)
Relación entre Tamaño del Efecto y Potencia:
Efecto pequeño (d=0.2): La potencia es moderada, pero aún no óptima.
Detectar un efecto pequeño sigue siendo un desafío, aunque mejora con el
aumento del tamaño muestral. Efecto mediano (d=0.5): La potencia es
considerablemente alta, lo que sugiere que es probable detectar un
efecto de este tamaño con una muestra de 140. Efecto grande (d=0.8): La
potencia es muy alta, lo que indica que es muy probable detectar un
efecto grande con el tamaño muestral dado.
En general, la capacidad de detectar un efecto (potencia) depende
tanto del tamaño del efecto como del tamaño muestral. Detectar efectos
pequeños requiere muestras más grandes, mientras que los efectos grandes
pueden ser detectados con muestras más pequeñas. A medida que el tamaño
muestral aumenta, la potencia de la prueba también aumenta, mejorando la
probabilidad de detectar efectos de cualquier tamaño.
En este problema nos centraremos en la aplicación de la prueba t de Student para comparar las medias entre dos grupos. Evaluaremos cómo las diferencias en los tamaños muestrales de los grupos influyen en la potencia de la prueba.
La potencia se define como la probabilidad de rechazar la hipótesis nula cuando la hipótesis alternativa es verdadera. En términos más sencillos, la potencia es la capacidad de una prueba estadística para identificar un efecto si este realmente existe. En general, desequilibrios muy marcados en los tamaños de muestra tienden a reducir la potencia estadística, lo que incrementa la probabilidad de cometer un error de tipo II.
Se evaluarán los siguientes tamaños muestrales, donde \(n_1\) es el número de sujetos en el grupo 1 y \(n_2\) es el número de sujetos en el grupo 2:
p <- ggplot(temp3, aes(x = `effect size`, y = power, color = samples)) +
geom_line(size=1) +
theme_bw() +
theme(axis.text=element_text(size=10),
axis.title=element_text(size=10),
legend.text=element_text(size=10)) +
geom_vline(xintercept = .54, linetype = 2) +
geom_hline(yintercept = 0.80, linetype = 2)+
labs(x="Tamaño del efecto", y="Potencia") +
scale_color_discrete(name = "Sampling size")
plotly::ggplotly(p)
Se tazaron las curvas de potencia para la prueba t de Student, en función del tamaño del efecto, asumiendo un nivel de significancia \(\alpha = 0.05\). La comparación de diferentes curvas de potencia, basadas en el tamaño de muestra de cada grupo, nos permite visualizar cómo los tamaños de muestra afectan la capacidad de la prueba para detectar efectos.
Además, se trazó una línea discontinua en el nivel de potencia aceptable del 80% y una línea vertical en el tamaño de efecto mínimo necesario para alcanzar ese nivel de potencia. Se observa que el tamaño del efecto debe ser superior a 0.54 para alcanzar una potencia aceptable del 80% en el escenario más desequilibrado \(n_1 = 28\) y \(n_2 = 1406\), en comparación con otros escenarios que conducen al 100% de potencia con tamaños de efecto más pequeños.
Este informe analiza los resultados de un ejercicio donde se calcularon curvas de potencia para diferentes niveles de significancia (\(\alpha\)) utilizando el test t de Student con muestras desiguales: \(n1 = 28\) y \(n2 = 1406\).
Sí, los resultados cambian significativamente cuando se utilizan diferentes valores de \(\alpha\). En el siguiente gráfico, se observa cómo las curvas de potencia varían en función de \(\alpha\), abarcando desde 0.01 hasta 0.10.
alpha_values <- seq(0.01, 0.10, length.out = 55)
results <- data.frame()
n1 <- 28
n2 <- 1406
for (alpha in alpha_values) {
ptab <- cbind(NULL, NULL)
for (i in seq(0, 1, length.out = 200)) {
pwrt <- pwr.t2n.test(n1 = n1, n2 = n2, sig.level = alpha, power = NULL, d = i, alternative = "two.sided")
ptab <- rbind(ptab, cbind(pwrt$d, pwrt$power, alpha))
}
ptab_df <- as.data.frame(ptab)
colnames(ptab_df) <- c("effect_size", "power", "alpha")
results <- rbind(results, ptab_df)
}
p <- ggplot(results, aes(x = effect_size, y = power, color = as.factor(alpha), group = alpha)) +
geom_line(size = 1) +
theme_bw() +
labs(x = "Efecto del tamaño", y = "Potencia", color = "Alfa") +
ggtitle(paste("Curvas de potencia para n1 =", n1, "y n2 =", n2, "con 55 niveles de alfa"))
plotly::ggplotly(p)
Respecto a Potencia y \(\alpha\), a medida que aumenta el nivel de significancia (\(\alpha\)), la potencia de la prueba aumenta para cualquier tamaño del efecto dado. Para valores más bajos de \(\alpha\) (como 0.01), es necesario un tamaño de efecto mayor para alcanzar una potencia significativa, por ejemplo, 0.80. Para valores más altos de \(\alpha\) (como 0.10), la prueba puede alcanzar una potencia alta con tamaños de efecto más pequeños. Lo anterior ocurre porque con un nivel de significancia más alto, el criterio para rechazar la hipótesis nula se vuelve menos estricto, lo que facilita detectar efectos, incluso si son pequeños. Por lo tanto, el nivel de significancia tiene un impacto directo en la potencia de la prueba.
El desequilibrio en el tamaño de las muestras tiene un impacto notable en la potencia de la prueba ya que para tamaños de efecto cercanos a 0, la potencia es baja en todos los niveles de \(\alpha\), esto es esperado, ya que el desequilibrio en los tamaños de muestra afecta la capacidad de la prueba para detectar efectos pequeños.
Por el contrario, para tamaños de efecto superiores a 0.5, la potencia comienza a aumentar rápidamente, alcanzando niveles cercanos a 1 cuando el tamaño del efecto es lo suficientemente grande, lo que muestra que la prueba es capaz de detectar efectos significativos a medida que aumenta el tamaño del efecto, incluso con el desequilibrio en el tamaño de las muestras.