1 Panorama del experimento

Se comparan los rendimientos de cuatro variedades de aceitunas de mesa en un diseño completamente al azar (DCA) desbalanceado, con 24 observaciones. El nivel de significación es α = 0.05.

Resultado principal: el ANOVA detecta diferencias entre medias (p = < 1e-04). Con estos datos, Tukey distingue dos conjuntos: Ilo y Sevillana presentan rendimientos mayores que Ascolana y Empeltre. No se detectan diferencias dentro de cada conjunto.

Esta interpretación corresponde a los datos proporcionados. Se presupone que cada observación procede de una unidad experimental independiente; el enunciado no identifica esas unidades ni documenta la aleatorización.

Elemento Identificación
Factor Variedad de aceituna
Tratamientos Sevillana, Ascolana, Empeltre e Ilo
Variable de respuesta Rendimiento, en tn/ha; cuantitativa continua
Repeticiones por tratamiento 6, 7, 5 y 6, respectivamente
Bloques No se incluyen en el DCA descrito

2 Datos y descripción

Los espacios vacíos corresponden a la ausencia de repeticiones adicionales en este diseño desbalanceado; no representan rendimientos de cero. Las filas de esta tabla no constituyen bloques ni parejas de observaciones.

knitr::kable(aceitunas, digits = 1, caption = "Datos originales de rendimiento (tn/ha)",
             format.args = list(na.print = ""))
Datos originales de rendimiento (tn/ha)
Sevillana Ascolana Empeltre Ilo
4.9 8.2 5.6 10.6
8.5 4.7 4.9 9.6
9.4 5.6 5.0 8.7
9.8 6.3 4.7 10.3
7.4 6.4 4.3 9.9
10.5 5.2 NA 8.7
NA 4.8 NA NA
knitr::kable(resumen, digits = 3,
             caption = "Resumen descriptivo por variedad. DE: desviación estándar.")
Resumen descriptivo por variedad. DE: desviación estándar.
Variedad n Media Mediana DE Minimo Maximo
Sevillana 6 8.417 8.95 2.031 4.9 10.5
Ascolana 7 5.886 5.60 1.220 4.7 8.2
Empeltre 5 4.900 4.90 0.474 4.3 5.6
Ilo 6 9.633 9.75 0.799 8.7 10.6

2.1 Distribución y observaciones individuales

par(mar = c(4.5, 4.7, 1.5, 1), bty = "l", las = 1)
boxplot(rendimiento ~ variedad, data = datos,
        col = adjustcolor(paleta, alpha.f = 0.35), border = paleta,
        outline = FALSE, xlab = "", ylab = "Rendimiento (tn/ha)")
set.seed(24)
stripchart(rendimiento ~ variedad, data = datos, vertical = TRUE,
           method = "jitter", jitter = 0.09, pch = 19,
           col = "#334653", add = TRUE)
points(seq_len(nrow(resumen)), resumen$Media, pch = 23,
       bg = "white", col = "#172C3A", cex = 1.5)
Distribuciones de rendimiento y observaciones individuales. El rombo representa la media.

Distribuciones de rendimiento y observaciones individuales. El rombo representa la media.

Ilo presenta el mayor promedio observado, mientras que Sevillana muestra la mayor dispersión. Las diferencias visuales deben evaluarse junto con las pruebas y el diseño experimental.

3 Revisión de supuestos

La normalidad se evalúa sobre los residuos del modelo, y la homogeneidad compara las varianzas entre variedades.

supuestos <- data.frame(
  Prueba = c("Shapiro-Wilk", "Fligner-Killeen"),
  Supuesto = c("Normalidad de residuos", "Igualdad de varianzas"),
  Estadistico = c(unname(normalidad$statistic), unname(homogeneidad$statistic)),
  p = c(normalidad$p.value, homogeneidad$p.value)
)
supuestos$Decision <- ifelse(supuestos$p < alpha,
                            "Se rechaza la hipótesis nula", "No se rechaza la hipótesis nula")
knitr::kable(supuestos, digits = 4, caption = "Diagnóstico de supuestos (α = 0.05)")
Diagnóstico de supuestos (α = 0.05)
Prueba Supuesto Estadistico p Decision
Shapiro-Wilk Normalidad de residuos 0.9467 0.2299 No se rechaza la hipótesis nula
Fligner-Killeen Igualdad de varianzas 5.8551 0.1189 No se rechaza la hipótesis nula

Shapiro-Wilk (p = 0.2299) y Fligner-Killeen (p = 0.1189) no detectan evidencia suficiente contra los supuestos evaluados. No rechazarlos no demuestra que se cumplan perfectamente, especialmente con muestras pequeñas.

3.1 Diagnósticos gráficos

par(mfrow = c(1, 2), mar = c(4.6, 4.5, 2.6, 1), bty = "l")
qqnorm(residuals(modelo), pch = 19, col = "#287D8E",
       main = "Gráfico Q-Q", xlab = "Cuantiles teóricos", ylab = "Residuos")
qqline(residuals(modelo), col = "#C46B43", lwd = 2)
plot(fitted(modelo), residuals(modelo), pch = 19,
     col = paleta[as.character(datos$variedad)],
     xlab = "Valores ajustados (tn/ha)", ylab = "Residuos", main = "Residuos vs. ajustados")
abline(h = 0, lty = 2, col = "#6A7885")
Izquierda: normalidad de residuos. Derecha: residuos frente a valores ajustados.

Izquierda: normalidad de residuos. Derecha: residuos frente a valores ajustados.

par(mfrow = c(1, 1))

En el Q-Q se busca proximidad a la recta; en el gráfico de residuos se revisan dispersiones diferentes, observaciones extremas o patrones. La independencia se sustenta en el procedimiento experimental y no se comprueba con estas pruebas.

4 ANOVA de un factor

H₀: las cuatro medias poblacionales son iguales.
H₁: al menos una media es diferente.

tabla_anova <- data.frame(Fuente = c("Variedad", "Error"),
                         GL = anova_tab$Df, SC = anova_tab$`Sum Sq`,
                         CM = anova_tab$`Mean Sq`, F = anova_tab$`F value`,
                         p = anova_tab$`Pr(>F)`)
knitr::kable(tabla_anova, digits = 6, caption = "Análisis de varianza del DCA")
Análisis de varianza del DCA
Fuente GL SC CM F p
Variedad 3 82.89 27.6299 16.422 1.3e-05
Error 20 33.65 1.6825 NA NA

El estadístico F es 16.42, con 3 y 20 grados de libertad. Como p = < 1e-04, se rechaza H₀. El resultado no implica que todas las variedades difieran entre sí.

Como comprobación adicional ante posibles diferencias de varianzas, Welch obtiene p = < 1e-04. Su uso no depende de demostrar igualdad de varianzas.

5 Comparaciones múltiples de Tukey

Se comparan todas las parejas con intervalos de confianza simultáneos del 95 % y valores p ajustados. La diferencia corresponde a primera variedad menos segunda variedad.

tabla_tukey <- data.frame(Comparacion = rownames(tukey), tukey, row.names = NULL,
                          check.names = FALSE)
names(tabla_tukey) <- c("Comparación", "Diferencia", "Límite inferior", "Límite superior", "p ajustado")
tabla_tukey$Significativa <- ifelse(tukey[, "p adj"] < alpha, "Sí", "No")
knitr::kable(tabla_tukey, digits = 6, caption = "Comparaciones de Tukey (tn/ha)")
Comparaciones de Tukey (tn/ha)
Comparación Diferencia Límite inferior Límite superior p ajustado Significativa
Ascolana-Sevillana -2.53095 -4.55080 -0.5111 0.010957 Sí
Empeltre-Sevillana -3.51667 -5.71507 -1.3183 0.001218 Sí
Ilo-Sevillana 1.21667 -0.87943 3.3128 0.388038 No
Empeltre-Ascolana -0.98571 -3.11155 1.1401 0.574812 No
Ilo-Ascolana 3.74762 1.72777 5.7675 0.000240 Sí
Ilo-Empeltre 4.73333 2.53493 6.9317 0.000038 Sí
par(mar = c(4.5, 11, 1.5, 1), bty = "l", las = 1)
y <- rev(seq_len(nrow(tukey)))
colores <- ifelse(tukey[, "p adj"] < alpha, "#287D8E", "#8B939C")
plot(tukey[, "diff"], y, xlim = range(tukey[, c("lwr", "upr")]),
     ylim = c(0.5, nrow(tukey) + 0.5), yaxt = "n", pch = 19,
     col = colores, xlab = "Diferencia de medias (tn/ha)", ylab = "")
abline(v = 0, lty = 2, col = "#C46B43")
segments(tukey[, "lwr"], y, tukey[, "upr"], y, col = colores, lwd = 3)
axis(2, at = y, labels = rownames(tukey), tick = FALSE, cex.axis = 0.9)
Diferencias de medias e intervalos simultáneos del 95 %. Un intervalo que cruza cero no indica diferencia significativa.

Diferencias de medias e intervalos simultáneos del 95 %. Un intervalo que cruza cero no indica diferencia significativa.

Ilo y Sevillana superan significativamente a Ascolana y Empeltre. No se detecta diferencia entre Ilo y Sevillana, ni entre Ascolana y Empeltre. La ausencia de significación no demuestra equivalencia.

6 Kruskal-Wallis

Como análisis complementario basado en rangos, se evalúa la igualdad de las distribuciones entre variedades.

knitr::kable(data.frame(Prueba = "Kruskal-Wallis",
                       H = unname(kw$statistic), GL = unname(kw$parameter),
                       p = kw$p.value), digits = 6)
Prueba H GL p
Kruskal-Wallis 15.23 3 0.00163

Con p = 0.00163, se rechaza la hipótesis de igualdad de distribuciones. Es consistente con la existencia de diferencias globales, pero no contrasta exactamente la misma hipótesis que el ANOVA. Para interpretarlo como una comparación de medianas se requieren distribuciones de forma y dispersión similares. No sustituye automáticamente al ANOVA cuando las varianzas son diferentes.

7 Conclusión

En este DCA con 24 observaciones se detectan diferencias entre las medias de rendimiento. Tukey indica que Ilo (9.63 tn/ha) y Sevillana (8.42 tn/ha) superan a Ascolana (5.89 tn/ha) y Empeltre (4.90 tn/ha) al nivel del 5 %. Ilo tiene la mayor media observada, pero no se demuestra que supere a Sevillana.

Las pruebas de supuestos no detectan evidencia suficiente contra normalidad y homogeneidad; su interpretación se complementa con los gráficos y con la independencia y aleatorización del experimento. Kruskal-Wallis también identifica diferencias globales entre distribuciones.

8 Reproducibilidad

Este informe calcula sus tablas y figuras desde los datos, sin depender de archivos .RData, ventanas gráficas externas ni paquetes estadísticos adicionales. Requiere rmarkdown y knitr para compilarse en HTML desde RStudio.

## R version 4.6.1 (2026-06-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Panama.utf8  LC_CTYPE=Spanish_Panama.utf8   
## [3] LC_MONETARY=Spanish_Panama.utf8 LC_NUMERIC=C                   
## [5] LC_TIME=Spanish_Panama.utf8    
## 
## time zone: America/Panama
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] digest_0.6.39   R6_2.6.1        fastmap_1.2.0   xfun_0.62      
##  [5] cachem_1.1.0    knitr_1.52      htmltools_0.5.9 rmarkdown_2.32 
##  [9] lifecycle_1.0.5 cli_3.6.6       sass_0.4.10     jquerylib_0.1.4
## [13] compiler_4.6.1  tools_4.6.1     evaluate_1.0.5  bslib_0.12.0   
## [17] yaml_2.3.12     rlang_1.3.0     jsonlite_2.0.0