Diseño Completamente al Azar
ANOVA • Kruskal-Wallis • Supuestos estadísticos
Comparación de cuatro tratamientos
Se realizó un experimento mediante un Diseño Completamente al Azar (DCA) para comparar los rendimientos de cuatro variedades de aceitunas de mesa.
Los tratamientos evaluados fueron Sevillana, Acolana, Empeltre y Bo, utilizando un número desigual de repeticiones.
La variable respuesta fue el rendimiento, expresado en toneladas por hectárea (t/ha).
Se aplicaron dos pruebas:
También se evaluaron los supuestos estadísticos correspondientes.
¿Existen diferencias estadísticamente significativas en el rendimiento de las cuatro variedades de aceitunas de mesa?
Comparar el rendimiento de las cuatro variedades de aceitunas mediante ANOVA y Kruskal-Wallis, dentro de un Diseño Completamente al Azar.
| Elemento | Descripcion |
|---|---|
| Diseño experimental | Completamente al Azar (DCA) |
| Factor | Variedad de aceituna |
| Variable independiente | Tratamiento |
| Variable dependiente | Rendimiento (t/ha) |
| Tipo de factor | Cualitativo nominal |
| Tipo de respuesta | Cuantitativa continua |
| Tratamientos | Sevillana, Acolana, Empeltre y Bo |
| Unidad experimental | Parcela, suponiendo una medición por parcela |
| Repeticiones | Desiguales |
| Nivel de significancia | 5% |
Sevillana <- c(4.9, 8.5, 9.4, 9.8, 7.4, 10.5)
Acolana <- c(8.2, 4.7, 5.6, 6.3, 6.4, 5.2, 4.8)
Empeltre <- c(5.9, 5.6, 5.0, 4.7, 4.3)
Bo <- c(10.6, 9.8, 8.7, 10.3, 9.9, 8.7)
Tratamiento <- factor(
c(
rep("Sevillana", length(Sevillana)),
rep("Acolana", length(Acolana)),
rep("Empeltre", length(Empeltre)),
rep("Bo", length(Bo))
),
levels = c("Sevillana", "Acolana", "Empeltre", "Bo")
)
Rendimiento <- c(
Sevillana, Acolana, Empeltre, Bo
)
datos <- data.frame(
Tratamiento,
Rendimiento
)
knitr::kable(
datos,
digits = 2,
caption = "Base de datos del experimento"
)| Tratamiento | Rendimiento |
|---|---|
| Sevillana | 4.9 |
| Sevillana | 8.5 |
| Sevillana | 9.4 |
| Sevillana | 9.8 |
| Sevillana | 7.4 |
| Sevillana | 10.5 |
| Acolana | 8.2 |
| Acolana | 4.7 |
| Acolana | 5.6 |
| Acolana | 6.3 |
| Acolana | 6.4 |
| Acolana | 5.2 |
| Acolana | 4.8 |
| Empeltre | 5.9 |
| Empeltre | 5.6 |
| Empeltre | 5.0 |
| Empeltre | 4.7 |
| Empeltre | 4.3 |
| Bo | 10.6 |
| Bo | 9.8 |
| Bo | 8.7 |
| Bo | 10.3 |
| Bo | 9.9 |
| Bo | 8.7 |
Descripción: Se analizaron 24 observaciones correspondientes a cuatro tratamientos, con repeticiones desiguales.
resumen <- datos %>%
group_by(Tratamiento) %>%
summarise(
Repeticiones = n(),
Media = mean(Rendimiento),
Mediana = median(Rendimiento),
Desviacion = sd(Rendimiento),
Varianza = var(Rendimiento),
Minimo = min(Rendimiento),
Maximo = max(Rendimiento),
.groups = "drop"
)
knitr::kable(
resumen,
digits = 3,
caption = "Estadísticas descriptivas por variedad"
)| Tratamiento | Repeticiones | Media | Mediana | Desviacion | Varianza | Minimo | Maximo |
|---|---|---|---|---|---|---|---|
| Sevillana | 6 | 8.417 | 8.95 | 2.031 | 4.126 | 4.9 | 10.5 |
| Acolana | 7 | 5.886 | 5.60 | 1.220 | 1.488 | 4.7 | 8.2 |
| Empeltre | 5 | 5.100 | 5.00 | 0.652 | 0.425 | 4.3 | 5.9 |
| Bo | 6 | 9.667 | 9.85 | 0.802 | 0.643 | 8.7 | 10.6 |
mejor <- resumen %>%
arrange(desc(Media)) %>%
slice(1)
menor <- resumen %>%
arrange(Media) %>%
slice(1)Conclusión descriptiva:
La variedad con mayor rendimiento promedio fue Bo, con 9.67 t/ha.
La de menor rendimiento promedio fue Empeltre, con 5.1 t/ha.
El modelo utilizado es:
\[ Y_{ij}=\mu+\tau_i+\varepsilon_{ij} \]
Donde:
Se supone que los tratamientos fueron asignados aleatoriamente a unidades experimentales comparables.
Hipótesis nula:
\[ H_0:\mu_1=\mu_2=\mu_3=\mu_4 \]
Hipótesis alternativa:
Al menos una variedad presenta un rendimiento promedio diferente.
Se evalúan la normalidad de los residuos y la homocedasticidad.
La independencia debe estar garantizada por el diseño experimental.
¿Los residuos del modelo siguen aproximadamente una distribución normal?
prueba_shapiro <- shapiro.test(
residuals(modelo)
)
p_shapiro <- prueba_shapiro$p.value
knitr::kable(
data.frame(
Estadistico_W = unname(prueba_shapiro$statistic),
Valor_p = p_shapiro
),
digits = 4,
caption = "Prueba de normalidad Shapiro-Wilk"
)| Estadistico_W | Valor_p |
|---|---|
| 0.9482 | 0.2472 |
Conclusión de normalidad:
Como p = 0.2472 es mayor que 0.05, no se rechaza H0. No se detectan desviaciones significativas de normalidad en los residuos.
¿Las cuatro variedades presentan varianzas estadísticamente similares?
prueba_levene <- car::leveneTest(
Rendimiento ~ Tratamiento,
data = datos,
center = median
)
p_levene <- prueba_levene[["Pr(>F)"]][1]
knitr::kable(
as.data.frame(prueba_levene),
digits = 4,
caption = "Prueba de homocedasticidad de Levene"
)| Df | F value | Pr(>F) | |
|---|---|---|---|
| group | 3 | 1.511 | 0.2423 |
| 20 | NA | NA |
Conclusión de homocedasticidad:
Como p = 0.2423 es mayor que 0.05, no se rechaza H0. No existe evidencia suficiente de diferencias entre las varianzas.
residuos <- data.frame(
Residuo = residuals(modelo)
)
ggplot(
residuos,
aes(sample = Residuo)
) +
stat_qq(
color = "#315D83",
size = 2.5
) +
stat_qq_line(
color = "#C65A58",
linewidth = 1
) +
labs(
title = "Normalidad de los residuos",
subtitle = "Gráfico Q-Q del DCA",
x = "Cuantiles teóricos",
y = "Cuantiles observados"
) +
tema_graficoInterpretación: Los puntos cercanos a la línea indican un comportamiento compatible con normalidad.
diagnostico <- data.frame(
Ajustados = fitted(modelo),
Residuos = residuals(modelo)
)
ggplot(
diagnostico,
aes(x = Ajustados, y = Residuos)
) +
geom_point(
color = "#315D83",
size = 3
) +
geom_hline(
yintercept = 0,
linetype = "dashed",
color = "#C65A58"
) +
labs(
title = "Residuos frente a valores ajustados",
subtitle = "Diagnóstico de dispersión",
x = "Valores ajustados",
y = "Residuos"
) +
tema_grafico¿Existen diferencias significativas entre los rendimientos promedio de las cuatro variedades?
tabla_anova <- summary(modelo)
p_anova <- tabla_anova[[1]][["Pr(>F)"]][1]
knitr::kable(
as.data.frame(tabla_anova[[1]]),
digits = 5,
caption = "Tabla ANOVA del DCA"
)| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Tratamiento | 3 | 79.28976 | 26.42992 | 15.33492 | 2e-05 |
| Residuals | 20 | 34.47024 | 1.72351 | NA | NA |
Conclusión del ANOVA:
El valor p = 2.055e-05 es menor que 0.05. Se rechaza H0. Existen diferencias estadísticamente significativas entre las medias de rendimiento de las variedades.
¿Qué variedades presentan diferencias significativas entre sí?
resultado_tukey <- TukeyHSD(modelo)
tabla_tukey <- data.frame(
Comparacion = rownames(resultado_tukey$Tratamiento),
resultado_tukey$Tratamiento,
row.names = NULL,
check.names = FALSE
)
knitr::kable(
tabla_tukey,
digits = 4,
caption = "Comparaciones múltiples de Tukey"
)| Comparacion | diff | lwr | upr | p adj |
|---|---|---|---|---|
| Acolana-Sevillana | -2.5310 | -4.5753 | -0.4866 | 0.0120 |
| Empeltre-Sevillana | -3.3167 | -5.5417 | -1.0916 | 0.0024 |
| Bo-Sevillana | 1.2500 | -0.8715 | 3.3715 | 0.3753 |
| Empeltre-Acolana | -0.7857 | -2.9373 | 1.3659 | 0.7387 |
| Bo-Acolana | 3.7810 | 1.7366 | 5.8253 | 0.0002 |
| Bo-Empeltre | 4.5667 | 2.3416 | 6.7917 | 0.0001 |
¿Existen diferencias significativas entre las distribuciones de rendimiento de las variedades?
Hipótesis:
resultado_kruskal <- kruskal.test(
Rendimiento ~ Tratamiento,
data = datos
)
p_kruskal <- resultado_kruskal$p.value
knitr::kable(
data.frame(
Estadistico = unname(resultado_kruskal$statistic),
Grados_libertad = unname(resultado_kruskal$parameter),
Valor_p = p_kruskal
),
digits = 5,
caption = "Prueba de Kruskal-Wallis"
)| Estadistico | Grados_libertad | Valor_p |
|---|---|---|
| 14.84921 | 3 | 0.00195 |
Conclusión de Kruskal-Wallis:
El valor p = 0.00195 es menor que 0.05. Se rechaza H0. Existen diferencias significativas entre las distribuciones de rendimiento de las variedades.
Esta prueba requiere independencia de las observaciones y grupos independientes.
Normalidad: No requiere distribución normal.
Homocedasticidad: No exige varianzas iguales para contrastar igualdad de distribuciones. Sin embargo, para interpretar sus resultados como diferencias de localización o medianas, conviene que las distribuciones tengan formas similares.
La prueba de Levene realizada anteriormente permite evaluar diferencias en las varianzas.
Conclusión:
Kruskal-Wallis permite comparar los cuatro tratamientos sin asumir normalidad. Su interpretación debe considerar la independencia de las observaciones y la forma de las distribuciones.
Se aplican comparaciones de Wilcoxon por pares con ajuste de Holm.
resultado_wilcoxon <- pairwise.wilcox.test(
datos$Rendimiento,
datos$Tratamiento,
p.adjust.method = "holm",
exact = FALSE
)
resultado_wilcoxon##
## Pairwise comparisons using Wilcoxon rank sum test with continuity correction
##
## data: datos$Rendimiento and datos$Tratamiento
##
## Sevillana Acolana Empeltre
## Acolana 0.14 - -
## Empeltre 0.14 0.40 -
## Bo 0.40 0.02 0.04
##
## P value adjustment method: holm
Interpretación: Los pares con p ajustado menor que 0.05 presentan diferencias estadísticamente significativas.
¿Cómo se distribuye el rendimiento de las cuatro variedades de aceitunas?
grafico_boxplot <- ggplot(
datos,
aes(
x = Tratamiento,
y = Rendimiento,
fill = Tratamiento
)
) +
geom_boxplot(
width = 0.55,
alpha = 0.75,
outlier.shape = NA
) +
geom_jitter(
width = 0.10,
size = 2.5,
alpha = 0.80,
color = "#263238"
) +
stat_summary(
fun = mean,
geom = "point",
shape = 23,
size = 4,
fill = "white",
color = "black"
) +
scale_fill_manual(
values = colores
) +
labs(
title = "Rendimiento de las variedades de aceitunas",
subtitle = "Comparación entre tratamientos - DCA",
x = "Tratamientos",
y = "Rendimiento (t/ha)",
caption = "Rombo blanco: media del tratamiento"
) +
tema_grafico
print(grafico_boxplot)Conclusión del boxplot:
La variedad con mayor rendimiento promedio observado es Bo, con 9.67 t/ha.
El gráfico también permite comparar la mediana y la variabilidad de los rendimientos entre tratamientos.
ggplot(
resumen,
aes(
x = Tratamiento,
y = Media,
fill = Tratamiento
)
) +
geom_col(
width = 0.65,
alpha = 0.85
) +
geom_text(
aes(label = round(Media, 2)),
vjust = -0.5,
size = 4.5
) +
scale_fill_manual(
values = colores
) +
expand_limits(
y = max(resumen$Media) * 1.15
) +
labs(
title = "Rendimiento promedio por variedad",
x = "Variedad de aceituna",
y = "Rendimiento promedio (t/ha)"
) +
tema_graficoEta cuadrado permite identificar la proporción de la variabilidad del rendimiento asociada con los tratamientos.
tabla <- summary(modelo)[[1]]
SC_tratamiento <- tabla[1, "Sum Sq"]
SC_total <- sum(tabla[, "Sum Sq"])
eta2 <- SC_tratamiento / SC_total
knitr::kable(
data.frame(
Eta_cuadrado = eta2,
Porcentaje_explicado = eta2 * 100
),
digits = 3,
caption = "Tamaño del efecto del tratamiento"
)| Eta_cuadrado | Porcentaje_explicado |
|---|---|
| 0.697 | 69.699 |
Conclusión:
El tratamiento explica aproximadamente el 69.7 % de la variabilidad observada del rendimiento en este experimento.
| Prueba | Valor_p | Decision |
|---|---|---|
| Shapiro-Wilk | 0.24716 | No rechazar H0 |
| Levene | 0.24226 | No rechazar H0 |
| ANOVA | 0.00002 | Rechazar H0 |
| Kruskal-Wallis | 0.00195 | Rechazar H0 |
1. Normalidad.
La prueba de Shapiro-Wilk obtuvo un valor p de 0.2472.
No se encontraron evidencias significativas de falta de normalidad en los residuos.
2. Homocedasticidad.
La prueba de Levene obtuvo un valor p de 0.2423.
No se encontraron diferencias significativas entre las varianzas.
3. ANOVA.
El ANOVA obtuvo un valor p de 2.055^{-5}.
Existen diferencias estadísticamente significativas entre los rendimientos promedio de las variedades.
4. Kruskal-Wallis.
La prueba obtuvo un valor p de 0.00195.
Se encontraron diferencias significativas entre las distribuciones de rendimiento de los tratamientos.
5. Variedad con mayor rendimiento.
La variedad Bo presentó el mayor rendimiento promedio observado, con 9.67 t/ha.
Tanto el ANOVA como Kruskal-Wallis encontraron diferencias significativas entre los tratamientos. Esto indica que los rendimientos no presentan el mismo comportamiento entre las cuatro variedades estudiadas.
La variedad Bo obtuvo el mayor promedio observado. Sin embargo, la comparación de Tukey permite determinar si supera significativamente a las demás variedades.
Se recomienda utilizar el ANOVA como análisis principal cuando sus supuestos resulten razonables y complementar el estudio con Kruskal-Wallis.
También es importante conservar los gráficos de diagnóstico y el boxplot para facilitar la interpretación del rendimiento de las cuatro variedades.
Nota: Este análisis se elaboró con los valores transcritos del ejercicio de aceitunas. Se recomienda confirmar los datos originales antes de entregar el informe.