Prueba U de Mann-Whitney

La prueba de U de Mann-Whitney es una prueba no paramétrica utilizada para comparar dos grupos independientes y determinar si existen diferencias significativas entre sus medianas. Es ideal cuando los datos no siguen una distribución normal o cuando las muestras son pequeñas. Esta prueba evalúa si una muestra tiende a tener valores más altos o más bajos que la otra, sin asumir normalidad. Se utiliza comúnmente en estudios de ciencias sociales, biología y medicina cuando se comparan dos grupos distintos, como tratamientos vs. controles o diferentes grupos de una población.

Características de los datos

  • no se asume la distribución normal

  • muestras pequeñas

  • independientes

  • cualitativos

Contexto

Se busca analizar la efectividad de dos tipos de insecticidas en sprays. Para esto, se cotaron el número de insectos muertos según el insecticida A y el insecticida B.

#Bibliotecas

library(tidyverse)
library(faraway)
library(datarium)
library(reshape2)
library(nortest)
library(ggpubr)

#Datos

df <- InsectSprays
df <- subset(InsectSprays, spray %in% c("A", "B"))

#Debido a que este data.set está conformado por más grupos, aplicamos el %in% para obtener una base de datos para el insecticida A y el insecticida B

Para comenzar, puedes hacer una gráfica para conocer el comportamiento de tus datos

ggplot(df, aes(x = spray, y = count, fill = spray)) +
  geom_violin() +
  geom_boxplot(color = 'black', fill = c('royalblue', 'cyan4'), width = 0.5) +
  scale_fill_manual(values = alpha(c('royalblue', 'cyan4'), 0.5)) +
  ggtitle('Número de insectos muestros por insecticida') +
  theme_minimal()

Conclusión: Aquí se puede observar el tipo de distribución de tus datos, y qué tan parecidos pueden ser. Además, en caso de tenerlos, puedes encontrar los puntos extremos.

Prueba de U de Mann-Whitney

df_A <- df %>% filter(spray == 'A')
df_B <- df %>% filter(spray == 'B')

wilcox.test(df_A$count, df_B$count)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  df_A$count and df_B$count
## W = 62, p-value = 0.5812
## alternative hypothesis: true location shift is not equal to 0

Conclusión: debido a que el valor de p es de 0.5812, no podemos descartar la hipótesis alternativa. En otras palabras, no existe diferencia significativa entre ambos grupos. Aterrizándolo a nuestro problema, podemos aplicar ambos insecticidas y obtendríamos el mismo resultado. Para observarlo mejor, se recomienda hacer una gráfica.

df_mediana <- df %>%  group_by(spray) %>%  summarise(m_count = median(count),
                                                    de = sd(count))


ggplot(df_mediana, aes(x = spray, y = m_count, group = 1)) +
  geom_line() +
  geom_point() +
  geom_errorbar(aes(ymin = m_count - de, ymax = m_count + de), width = 0.2,
                position = position_dodge(0.05)) +
  ggtitle('Número de insectos muertos según el tipo de insecticida') +
  theme_minimal()