Un estudio compara el número de huevos que pone un determinado insecto bajo 3 condiciones distintas. ¿Existen diferencias significativas dependiendo de las condiciones?
datos <- data.frame(condicion = c(rep("condicion1", 18), rep("condicion2", 18), rep("condicion3", 18)), n_huevos = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 27, 28, 29, 30, 51, 52, 53, 342, 40, 41, 42, 43, 44, 45, 46, 47, 48, 67, 88, 89, 90, 91,92, 93, 94, 293, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 25, 36, 37, 58, 59, 60, 71, 72))
head(datos)
## condicion n_huevos
## 1 condicion1 1
## 2 condicion1 2
## 3 condicion1 3
## 4 condicion1 4
## 5 condicion1 5
## 6 condicion1 6
aggregate(n_huevos ~condicion, data = datos, FUN = mean)
## condicion n_huevos
## 1 condicion1 37.38889
## 2 condicion2 77.38889
## 3 condicion3 36.27778
Se comprueba que la media de huevos bajo la condición 1 es de 37,38 ; para la condición 2 es de 77,38 y para la condición 3 es de 36,27; Se observan promedios diferentes en cada clase. Aunque la media de la condición 1 y la 2 parecen similares.
aggregate(n_huevos ~condicion, data = datos, FUN = median)
## condicion n_huevos
## 1 condicion1 12.5
## 2 condicion2 57.5
## 3 condicion3 26.5
Al analizar las medianas, sí se observarían diferencias en los promedios entre las condiciones analizadas. Los resultados no son parecidos a los promedios, indiciando la presencia de datos extremos en las distribuciones.
aggregate(n_huevos ~condicion, data = datos, FUN = var)
## condicion n_huevos
## 1 condicion1 6100.6046
## 2 condicion2 3412.6046
## 3 condicion3 345.6242
Tenemos varianzas muy diferentes entre las categorías; se debería ver un problema de heterocedasticidad entre los grupos.
La heterocedasticidad es un problema en modelos de regresión donde la varianza de los errores (residuos) no es constante a lo largo de las observaciones. Esto viola uno de los supuestos clave de los modelos lineales clásicos (homocedasticidad, que implica varianza constante de los errores).
aggregate(n_huevos ~condicion, data = datos, FUN = sd)
## condicion n_huevos
## 1 condicion1 78.10637
## 2 condicion2 58.41750
## 3 condicion3 18.59097
Tenemos desviaciones típicas muy diferentes; entre las categorías se debería verificar un problema de heterocedasticidad entre los grupos.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(data=datos, mapping = aes(x=condicion, y=n_huevos, color=condicion))+
geom_boxplot()+
theme_bw()+
theme(legend.position="right")
En el diagrama de caja, lo primero que observamos son datos anómalos muy
importantes (mucha separación) con la condición 1 y la condición 2.
En segundo lugar, las dispersiones mostradas en los boxplots son diferentes.
Se aprecia que la media puede ser similar entre la condición 1 y la 3. Pero que la condición 1 muestra diferencias con la 2, pero la 2 comparte valores con la 3, en este caso podría tener medias similares.
ggplot(data=datos, mapping=aes(x=n_huevos, color = condicion))+
geom_histogram()+
facet_grid(.~condicion)+
theme(legend.position="right")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
El primer histograma no acepta la normalidad, pues presenta datos
atípicos mayores a 300. Tiene forma más de una chi-cuadrado.
El segundo histograma no acepta la normalidad, pues presenta datos atípicos mayores a 280. Tiene forma más de una chi-cuadrado.
El tercer histograma presenta una marcada asimetría positiva y además un gran apuntamiento. Por ello, no aceptaría la normalidad.
Dado que las distribuciones son similares (gran asimetría positiva y apuntamiento), podemos aplicar el test de Kruskal Wallis para la comparación de las medias (no el ANOVA, pues éste se aplica con normalidad y homocedasticidad).
kruskal.test(n_huevos ~condicion, data = datos)
##
## Kruskal-Wallis rank sum test
##
## data: n_huevos by condicion
## Kruskal-Wallis chi-squared = 19.964, df = 2, p-value = 4.623e-05
El test proporciona un p valor de 0.000 < 0.05.
Tenemos evidencia empírica suficiente para rechazar la hipótesis nula de igualdad de promedios entre los grupos.
#.Comparaciones post-hoc para saber que dos grupos difieren.
Existen diferencias métodos de corrección del nivel de significancia, entre ellos destacan el de Bonferroni, que es muy estricto y el de holm, este último parece ser más recomendado.
pairwise.wilcox.test(
x = datos$n_huevos,
g = datos$condition,
p.adjust.method = "holm"
)
##
## Pairwise comparisons using
##
## data: datos$n_huevos and datos$condition
##
## <0 x 0 matrix>
##
## P value adjustment method: holm
Condición 2 vs condición 1: El p valor es 0.00029 < 0.05. Las medias son diferentes.
Condición 3 vs condición 1: El p valor es 0.047 < 0.05. Las medias son diferentes.
Condición 3 vs condición 2: EL p valor es 0.00058 < 0.05. Las medias son diferentes.
Al nivel de significación del 5%, todas las medias son diferentes.
#CONCLUSION
El promedio de huevos de los insectos es similar, empleando la condición 3 y la 1. En cambio, para el resto de comparaciones, las medias de los huevos serían diferentes al nivel de significación del 5%.