No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
2 Hrs
9 Min
12 Seg

Revisemos la potencia de una prueba

30/37
Recursos

¿Qué es la potencia de una prueba de hipótesis?

La potencia de una prueba de hipótesis es una medida crucial en el análisis estadístico, ya que determina la capacidad de la prueba para identificar correctamente cuando una hipótesis alternativa es verdadera. En términos más simples, nos dice qué tan efectivo es nuestro test para reconocer diferencias significativas entre dos conjuntos de datos cuando, en realidad, dichas diferencias existen.

¿Cómo impacta la diferencia entre medias en la potencia?

La capacidad de una prueba de identificar diferencias está influenciada por la magnitud de la diferencia de medias de dos conjuntos de datos. Imagina dos medias que son enormemente distintas: la prueba probablemente las identificará como diferentes con facilidad. Por otro lado, si las medias apenas difieren, la detección se vuelve más compleja.

Para explorar esta interacción entre la potencia y la diferencia de medias, realizamos una serie de simulaciones. Comenzamos alejando gradualmente dos medias para observar en qué momento la prueba de hipótesis logra detectar la diferencia entre ellas.

Simulación con pruebas de Mann-Whitney y T de Student

Para este ejercicio práctico, empleamos dos tipos de pruebas de hipótesis:

  • Prueba de Mann-Whitney: Una prueba no paramétrica adecuada para distribuciones que no necesariamente siguen un patrón normal.
  • Prueba T de Student: Diseñada específicamente para situaciones donde los datos seguían una distribución normal, pudiendo ser menos potente en otros escenarios.

Pasos en la simulación

  1. Configuración Inicial: Establecimos un tamaño muestral de 50, con 80 iteraciones, y definimos un rango de diferencia de medias para observar cómo evoluciona la detección.

  2. Iteración del proceso: Por cada diferencia de medias, simulamos conjuntos de datos para ejecutar las pruebas seleccionadas.

  3. Cálculo de Potencia: Medimos la proporción de iteraciones donde el valor p fue menor al umbral de significancia (0.05, o más estricto a 0.01). Valores p bajos sugieren que las medias son significativamente diferentes.

Ejecución y resultados en R

El siguiente fragmento de código en R ilustra un proceso básico de simulación para evaluar la potencia de la prueba de Mann-Whitney:

tamaño_muestral <- 50
iteraciones <- 80
media_incial <- 0
media_final <- 3
pasos <- 50
umbral_significancia <- 0.05

potencia_wilcoxon <- c()

for (k in seq_len(pasos)) {
  diferencia_media <- seq(media_inicial, media_final, length.out = pasos)[k]
  valores_p <- numeric(iteraciones)
  
  for (i in seq_len(iteraciones)) {
    x <- rgamma(tamaño_muestral, shape = 1, rate = 1)
    y <- rgamma(tamaño_muestral, shape = 1 + diferencia_media, rate = 1)
    prueba <- wilcox.test(x, y)
    valores_p[i] <- prueba$p.value
  }
  
  potencia_wilcoxon[k] <- mean(valores_p < umbral_significancia)
}

plot(seq(media_inicial, media_final, length.out = pasos), potencia_wilcoxon, type = 'l', col = 'blue',
     xlab = 'Diferencia de Medias', ylab = 'Potencia', main = 'Potencia de la Prueba de Mann-Whitney')

A través de este ejercicio, descubrimos que la potencia de la prueba, en caso de la Mann-Whitney, incrementa conforme aumenta la diferencia entre las medias, lo que sugiere una correcta identificación de diferencias significativas.

Desempeño de la prueba T de Student

Finalmente, al repetir el análisis para la prueba T de Student encontramos una menor potencia, tal como se anticipaba dada la naturaleza no normal de los datos gamma utilizados. Sin embargo, este resultado sería más visible con gráficos avanzados usando bibliotecas como ggplot2 en combinación con tidyverse para una visualización más enriquecida.

Los estudiantes son alentados a replantear esta experiencia teórica usando datos reales y compartir aprendizajes y resultados para enriquecer su entendimiento de las pruebas de hipótesis. Con la práctica, la teoría se solidifica, así que te invitamos a seguir explorando y experimentando.

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?



# Revisemos la potencia de una prueba. ------------------------------------


# wmw con dos gamas -------------------------------------------------------

# La media de una gamma es shape/rate, vamos a mover el shape -------------

tamano_muestral <- 50
iteraciones <- 80
dif_media_ini <- 0
dif_media_fin <- 2
media_x <- 1
n_pasos <- 50
umbral_significancia <- 0.05
dif_medias <- seq(dif_media_ini, dif_media_fin, length.out = n_pasos)



# prueba wmw --------------------------------------------------------------


potencia_wmw <- vector()

for(k in seq_along(dif_medias)){ 
  
  sim_shape <- dif_medias[k] + media_x
  
  p_valores <- vector()
  
  for(i in seq_len(iteraciones)){
    x <- rgamma(tamano_muestral, media_x, 1)
    y <- rgamma(tamano_muestral, sim_shape, 1)
    p_valores[i] <- wilcox.test(x, y)$p.value
    
  }
  
  potencia_wmw[k] <- mean(p_valores < umbral_significancia)
  
}


# prueba t ----------------------------------------------------------------



potencia_t <- vector()

for(k in seq_along(dif_medias)){ 
  
  sim_shape <- dif_medias[k] + media_x
  
  p_valores <- vector()
  
  for(i in seq_len(iteraciones)){
    x <- rgamma(tamano_muestral, media_x, 1)
    y <- rgamma(tamano_muestral, sim_shape, 1)
    p_valores[i] <- t.test(x, y)$p.value
    
  }
  
  potencia_t[k] <- mean(p_valores < umbral_significancia)
  
}




plot(dif_medias, potencia_wmw, ylim = c(0, 1), col = 4, type = "l")
lines(dif_medias, potencia_t, col = 2)


# Tidy approach -----------------------------------------------------------

# Paquetes ----------------------------------------------------------------


library("ggplot2")
library("dplyr")
library("tidyr")
library("magrittr")
library("purrr")

tamano_muestral <- 50
iteraciones <- 80
dif_media_ini <- 0
dif_media_fin <- 2
media_x <- 1
n_pasos <- 50
umbral_significancia <- 0.05
dif_medias <- seq(dif_media_ini, dif_media_fin, length.out = n_pasos)



fun_potencia_wmw <- function(shape_1, shape_2, iteraciones){
  map_dbl(
    seq_len(iteraciones), 
    function(i){
      x <- rgamma(tamano_muestral, shape_1, 1)
      y <- rgamma(tamano_muestral, shape_2, 1)
      wilcox.test(x, y) %$% p.value
    }
  ) -> p_valores
  mean(p_valores < umbral_significancia)
}


fun_potencia_t <- function(shape_1, shape_2, iteraciones){
  
  map_dbl(
    seq_len(iteraciones), 
    function(i){
      x <- rgamma(tamano_muestral, shape_1, 1)
      y <- rgamma(tamano_muestral, shape_2, 1)
      t.test(x, y) %$% p.value
    }
  ) -> p_valores
  mean(p_valores < umbral_significancia)
}

tibble(
  dif_medias,
  shape_01 = media_x,
  shape_02 = shape_01 + dif_medias,
  potencia_wmw = map2_dbl(shape_01, shape_02, fun_potencia_wmw, iteraciones),
  potencia_t = map2_dbl(shape_01, shape_02, fun_potencia_t, iteraciones),
) -> simulaciones


simulaciones %>% 
  gather("prueba", "potencia", potencia_wmw, potencia_t) %>% 
  ggplot +
  geom_line(aes(x = dif_medias, y = potencia, colour = prueba), size = 0.3) +
  geom_smooth(aes(x = dif_medias, y = potencia, colour = prueba), size = 1, se = FALSE) + 
  theme_minimal() +
  theme(legend.position = "bottom")

Este curso esta muy interesante es hora de ir a la realidad.


# Revisar la potencia de dos pruebas para ver cual es mas potencte --------

tamano_muestral <- 50
iteraciones <- 80
dif_medias_ini <- 0
dif_medias_fin <- 2
media_x <- 1
n_pasos <- 50
umbral_significancia <- 0.05
dif_medias <- seq(dif_medias_ini, dif_medias_fin, length.out = n_pasos)

# WMW con dos ganas -------------------------------------------------------


# La media de una gamma es shape/rate, mover el shape ---------------------


# potencia wmw ------------------------------------------------------------


potencia_WMW <- vector()

for (k in seq_len(n_pasos)){
  sin_shape <- media_x + dif_medias[k]
  p_valores <- vector()
  
  for(i in seq_len(iteraciones)){
    x <- rgamma(tamano_muestral, media_x, 1)
    y <- rgamma(tamano_muestral, sin_shape, 1)
    p_valores[i] <- wilcox.test(x, y)$p.value
  }
  
  potencia_WMW[k] <- mean(p_valores < umbral_significancia)
}


# prueba t ----------------------------------------------------------------

potencia_t <- vector()

for (k in seq_len(n_pasos)){
  sin_shape <- media_x + dif_medias[k]
  p_valores <- vector()
  
  for(i in seq_len(iteraciones)){
    x <- rgamma(tamano_muestral, media_x, 1)
    y <- rgamma(tamano_muestral, sin_shape, 1)
    p_valores[i] <- t.test(x, y)$p.value
  }
  
  potencia_t[k] <- mean(p_valores < umbral_significancia)
}
plot(dif_medias, potencia_WMW, ylin = c(0, 1), col = 4, type = 'line')
lines(dif_medias, potencia_t, col = 2)

![](https://static.platzi.com/media/user_upload/image-0a2375f5-cd9c-4abf-8842-cd61b90d26a9.jpg) * Una curva creciente que muestra cómo la potencia se incrementa con el tamaño muestral. * Una línea horizontal roja indicando el nivel deseado de potencia (0.8 o 80%).