1 Introducción

En una estación experimental se realizó un experimento para estudiar los efectos comparativos de diferentes tipos de fertilizantes sobre la altura de una variedad de plantas.

Hipótesis de investigación: Existe algún tipo de fertilizante que mejora el crecimiento de las plantas.

Para evaluar esta hipótesis se empleó un Diseño Completamente al Azar (DCA), en el cual las unidades experimentales (plantas) se asignaron aleatoriamente a cinco tratamientos de fertilización:

  • sin: sin fertilizante (testigo)
  • N: nitrógeno
  • NP: nitrógeno + fósforo
  • NPK: nitrógeno + fósforo + potasio
  • NK: nitrógeno + potasio

Cada tratamiento cuenta con 5 réplicas, para un total de 25 unidades experimentales. La variable respuesta es la altura de la planta.

2 Paquetes requeridos

# Instalar (si es necesario) y cargar los paquetes
paquetes <- c("readxl", "table1", "agricolae", "dplyr", "ggplot2", "car")
instalar <- paquetes[!(paquetes %in% installed.packages()[, "Package"])]
if (length(instalar) > 0) install.packages(instalar, repos = "https://cloud.r-project.org")

library(readxl)
library(table1)
library(agricolae)
library(dplyr)
library(ggplot2)
library(car)

3 Importación y preparación de los datos

datos <- read_excel("YDRAY-datos_dca.xlsx")

# Por seguridad, se eliminan columnas completamente vacías si las hubiera
# (evita errores si el Excel trae alguna columna en blanco al inicio)
datos <- datos[, colSums(!is.na(datos)) > 0]

# Conversión de tipos de datos
datos$fertilizante <- factor(datos$fertilizante,
                              levels = c("sin", "N", "NK", "NP", "NPK"))
datos$replica <- as.integer(datos$replica)
datos$altura  <- as.numeric(datos$altura)

str(datos)
## tibble [25 × 3] (S3: tbl_df/tbl/data.frame)
##  $ fertilizante: Factor w/ 5 levels "sin","N","NK",..: 1 1 1 1 1 2 2 2 2 2 ...
##  $ replica     : int [1:25] 1 2 3 4 5 1 2 3 4 5 ...
##  $ altura      : num [1:25] 7 7 15 11 9 12 17 12 18 18 ...
knitr::kable(datos, caption = "Datos del experimento DCA")
Datos del experimento DCA
fertilizante replica altura
sin 1 7
sin 2 7
sin 3 15
sin 4 11
sin 5 9
N 1 12
N 2 17
N 3 12
N 4 18
N 5 18
NP 1 14
NP 2 18
NP 3 18
NP 4 19
NP 5 19
NPK 1 19
NPK 2 25
NPK 3 22
NPK 4 19
NPK 5 23
NK 1 7
NK 2 10
NK 3 11
NK 4 15
NK 5 11

4 Análisis exploratorio de datos

4.1 Resumen general

table1(~ fertilizante + altura, data = datos)
Overall
(N=25)
fertilizante
sin 5 (20.0%)
N 5 (20.0%)
NK 5 (20.0%)
NP 5 (20.0%)
NPK 5 (20.0%)
altura
Mean (SD) 15.0 (5.15)
Median [Min, Max] 15.0 [7.00, 25.0]

4.2 Resumen de la altura por fertilizante

table1(~ altura | fertilizante, data = datos)
sin
(N=5)
N
(N=5)
NK
(N=5)
NP
(N=5)
NPK
(N=5)
Overall
(N=25)
altura
Mean (SD) 9.80 (3.35) 15.4 (3.13) 10.8 (2.86) 17.6 (2.07) 21.6 (2.61) 15.0 (5.15)
Median [Min, Max] 9.00 [7.00, 15.0] 17.0 [12.0, 18.0] 11.0 [7.00, 15.0] 18.0 [14.0, 19.0] 22.0 [19.0, 25.0] 15.0 [7.00, 25.0]

4.3 Visualización de los datos

ggplot(datos, aes(x = fertilizante, y = altura, fill = fertilizante)) +
  geom_boxplot(alpha = 0.7, show.legend = FALSE) +
  geom_jitter(width = 0.1, alpha = 0.6) +
  labs(title = "Altura de las plantas según tipo de fertilizante",
       x = "Fertilizante", y = "Altura (cm)") +
  theme_minimal()

El gráfico de cajas permite observar de manera preliminar diferencias en la altura media alcanzada según el tipo de fertilizante aplicado, siendo el tratamiento testigo (sin fertilizante) el que muestra, a priori, los valores más bajos.

5 Modelo DCA: Análisis de Varianza (ANOVA)

El modelo del Diseño Completamente al Azar es:

\[Y_{ij} = \mu + \tau_i + \varepsilon_{ij}\]

donde \(Y_{ij}\) es la altura de la j-ésima planta en el i-ésimo fertilizante, \(\mu\) es la media general, \(\tau_i\) es el efecto del i-ésimo fertilizante y \(\varepsilon_{ij}\) es el error aleatorio.

Hipótesis estadísticas:

  • \(H_0: \tau_1 = \tau_2 = ... = \tau_5 = 0\) (no hay efecto del fertilizante sobre la altura)
  • \(H_1\): al menos un \(\tau_i \neq 0\) (algún fertilizante afecta la altura)
anova <- aov(altura ~ fertilizante, data = datos)
summary(anova)
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## fertilizante  4  475.8  118.94   14.76 9.13e-06 ***
## Residuals    20  161.2    8.06                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Tabla ANOVA
Df Sum Sq Mean Sq F value Pr(>F)
fertilizante 4 475.76 118.94 14.7568 0
Residuals 20 161.20 8.06 NA NA

5.1 Interpretación del ANOVA

El valor p obtenido en la prueba F es 10^{-5}. Considerando un nivel de significancia \(\alpha = 0.05\):

Dado que el valor p (1e-05) es menor que 0.05, se rechaza la hipótesis nula. Existe evidencia estadística suficiente para afirmar que al menos un tipo de fertilizante tiene un efecto diferente sobre la altura de las plantas.

6 Verificación de supuestos del modelo

Antes de dar validez a los resultados del ANOVA es necesario verificar los supuestos de normalidad de los residuales y homogeneidad de varianzas.

6.1 Normalidad de los residuales

shapiro.test(residuals(anova))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(anova)
## W = 0.94387, p-value = 0.1818
par(mfrow = c(1, 1))
qqPlot(residuals(anova), main = "Gráfico Q-Q de los residuales",
       ylab = "Residuales", id = FALSE)

6.2 Homogeneidad de varianzas (homocedasticidad)

leveneTest(altura ~ fertilizante, data = datos)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  4  0.3179 0.8626
##       20

Nota: si alguno de estos supuestos no se cumple, los resultados del ANOVA deben interpretarse con cautela y podría ser necesario aplicar una transformación de la variable respuesta o una prueba no paramétrica (p. ej. Kruskal-Wallis).

7 Prueba de comparación de medias (post-ANOVA): LSD de Fisher

Dado que el ANOVA evalúa si existen diferencias globales entre tratamientos, se realiza una prueba de comparación múltiple de medias (LSD de Fisher) para identificar cuáles fertilizantes difieren entre sí.

posanova <- LSD.test(anova, trt = "fertilizante")
posanova
## $statistics
##   MSerror Df  Mean       CV  t.value      LSD
##      8.06 20 15.04 18.87642 2.085963 3.745452
## 
## $parameters
##         test p.ajusted       name.t ntr alpha
##   Fisher-LSD      none fertilizante   5  0.05
## 
## $means
##     altura      std r       se       LCL      UCL Min Max Q25 Q50 Q75
## N     15.4 3.130495 5 1.269646 12.751566 18.04843  12  18  12  17  18
## NK    10.8 2.863564 5 1.269646  8.151566 13.44843   7  15  10  11  11
## NP    17.6 2.073644 5 1.269646 14.951566 20.24843  14  19  18  18  19
## NPK   21.6 2.607681 5 1.269646 18.951566 24.24843  19  25  19  22  23
## sin    9.8 3.346640 5 1.269646  7.151566 12.44843   7  15   7   9  11
## 
## $comparison
## NULL
## 
## $groups
##     altura groups
## NPK   21.6      a
## NP    17.6      b
## N     15.4      b
## NK    10.8      c
## sin    9.8      c
## 
## attr(,"class")
## [1] "group"

7.1 Grupos de significancia

Medias de altura por fertilizante y grupos LSD
altura groups
NPK 21.6 a
NP 17.6 b
N 15.4 b
NK 10.8 c
sin 9.8 c
grupos <- posanova$groups
grupos$fertilizante <- rownames(grupos)

ggplot(grupos, aes(x = reorder(fertilizante, -altura), y = altura)) +
  geom_col(fill = "#2c7fb8", alpha = 0.8) +
  geom_text(aes(label = groups), vjust = -0.5, size = 5) +
  labs(title = "Comparación de medias de altura por fertilizante (LSD de Fisher)",
       x = "Fertilizante", y = "Altura media (cm)") +
  theme_minimal()

Tratamientos que comparten una misma letra no presentan diferencias estadísticamente significativas entre sí (p > 0.05).

8 Conclusiones

  1. Los resultados obtenidos mediante el Diseño Completamente al Azar (DCA) permitieron evaluar el efecto de cinco tratamientos de fertilización sobre la altura de las plantas. El análisis de varianza (ANOVA) mostró que existen diferencias estadísticamente significativas entre los tratamientos cuando el valor de p es menor que 0.05. Por lo tanto, se rechaza la hipótesis nula de igualdad de medias y se obtiene evidencia de que el tipo de fertilizante influye en la altura de las plantas bajo las condiciones evaluadas.

  2. La comparación de medias mediante la prueba LSD de Fisher permitió determinar que las diferencias observadas no se presentan necesariamente entre todos los fertilizantes, sino entre determinados grupos de tratamientos. El fertilizante que presentó la mayor altura promedio representa el tratamiento con mejor desempeño en términos de crecimiento, mientras que el tratamiento sin fertilizante permite establecer una referencia frente a las condiciones de fertilización. La agrupación mediante letras facilita identificar cuáles tratamientos presentan diferencias estadísticamente significativas y cuáles tienen un comportamiento similar.

  3. La verificación de los supuestos del modelo, particularmente la normalidad de los residuales y la homogeneidad de las varianzas, es fundamental para respaldar la validez del ANOVA. Cuando estos supuestos se cumplen, las diferencias encontradas pueden interpretarse con mayor confianza como efectos asociados a los tratamientos de fertilización y no como consecuencia de una violación de las condiciones del modelo.