1 Introducción

Se evaluó el efecto de cuatro bioinsumos sobre el rendimiento del fríjol (Phaseolus vulgaris), medido en kg/parcela. Como el lote presentaba un gradiente de humedad, se utilizaron cuatro bloques. El experimento corresponde a un diseño de bloques completos al azar (DBCA), con 16 observaciones.

2 1. Carga y preparación de los datos

Guarde Datos_frijol_bioinsumos.csv en la misma carpeta que este archivo R Markdown. El archivo está separado por punto y coma.

datos <- read.csv("Datos_frijol_bioinsumos.csv", sep = ";", header = TRUE)

str(datos)
## 'data.frame':    16 obs. of  4 variables:
##  $ Tratamiento: chr  "T1" "T1" "T1" "T1" ...
##  $ Bioinsumo  : chr  "B1" "B1" "B1" "B1" ...
##  $ Bloque     : int  1 2 3 4 1 2 3 4 1 2 ...
##  $ Rendimiento: num  2.2 1.7 2.5 1.9 2.4 2.6 3 2.3 3.1 2.5 ...
head(datos)
##   Tratamiento Bioinsumo Bloque Rendimiento
## 1          T1        B1      1         2.2
## 2          T1        B1      2         1.7
## 3          T1        B1      3         2.5
## 4          T1        B1      4         1.9
## 5          T2        B2      1         2.4
## 6          T2        B2      2         2.6
datos$Bioinsumo <- as.factor(datos$Bioinsumo)
datos$Bloque <- as.factor(datos$Bloque)

# Verificar que estén las 16 observaciones esperadas
nrow(datos)
## [1] 16
table(datos$Bioinsumo)
## 
## B1 B2 B3 B4 
##  4  4  4  4
table(datos$Bloque)
## 
## 1 2 3 4 
## 4 4 4 4

3 2. Análisis exploratorio

3.1 Boxplot del rendimiento por bioinsumo

boxplot(Rendimiento ~ Bioinsumo, data = datos,
        xlab = "Bioinsumo",
        ylab = "Rendimiento (kg/parcela)",
        main = "Rendimiento del fríjol según bioinsumo",
        col = "lightgreen")

3.2 Tabla de medias

medias <- aggregate(Rendimiento ~ Bioinsumo, data = datos, FUN = mean)
medias
##   Bioinsumo Rendimiento
## 1        B1       2.075
## 2        B2       2.575
## 3        B3       2.875
## 4        B4       3.175

Las medias permiten observar el rendimiento promedio de cada tratamiento. La comparación formal entre tratamientos se realiza mediante el análisis de varianza y la prueba de comparación de medias.

4 3. Modelo DBCA y tabla ANOVA

modelo <- aov(Rendimiento ~ Bloque + Bioinsumo, data = datos)
summary(modelo)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Bloque       3   0.74  0.2467    6.00 0.015716 *  
## Bioinsumo    3   2.64  0.8800   21.41 0.000196 ***
## Residuals    9   0.37  0.0411                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

La hipótesis nula para Bioinsumo establece que los cuatro rendimientos medios son iguales. Si el valor p de Bioinsumo es menor que 0,05, se rechaza esa hipótesis y se concluye que existen diferencias estadísticas entre al menos dos bioinsumos.

Para evaluar si el bloqueo aportó información, se revisa el valor p correspondiente a Bloque. Un valor p menor que 0,05 indica diferencias entre bloques y sugiere que el bloqueo permitió captar variación asociada a la ubicación de las parcelas.

5 4. Verificación de supuestos

5.1 Normalidad de los residuales: Shapiro-Wilk

shapiro.test(residuals(modelo))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(modelo)
## W = 0.89968, p-value = 0.07942

Si el valor p es mayor que 0,05, no se rechaza la hipótesis de normalidad de los residuales.

5.2 Homogeneidad de varianzas: prueba de Bartlett

bartlett.test(Rendimiento ~ Bioinsumo, data = datos)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  Rendimiento by Bioinsumo
## Bartlett's K-squared = 0.2339, df = 3, p-value = 0.9719

Si el valor p es mayor que 0,05, no se rechaza la hipótesis de igualdad de varianzas entre los grupos.

6 5. Comparación de medias con Tukey

if (!requireNamespace("agricolae", quietly = TRUE)) {
  install.packages("agricolae", repos = "https://cloud.r-project.org")
}
library(agricolae)

comparacion <- HSD.test(modelo, "Bioinsumo", group = TRUE)
comparacion$groups
##    Rendimiento groups
## B4       3.175      a
## B3       2.875     ab
## B2       2.575      b
## B1       2.075      c

6.1 Gráfico de medias y grupos

grupos <- comparacion$groups
grupos$Bioinsumo <- rownames(grupos)
grupos <- grupos[order(grupos$Bioinsumo), ]

barplot(grupos$Rendimiento,
        names.arg = grupos$Bioinsumo,
        xlab = "Bioinsumo",
        ylab = "Rendimiento medio (kg/parcela)",
        main = "Medias de rendimiento y grupos de Tukey",
        col = "lightblue",
        ylim = c(0, max(grupos$Rendimiento) * 1.2)

)
text(x = seq_len(nrow(grupos)),
     y = grupos$Rendimiento,
     labels = grupos$groups,
     pos = 3)

Los tratamientos que comparten al menos una letra no presentan diferencias estadísticamente significativas según Tukey al 5 %. Los tratamientos que no comparten letras sí presentan diferencias significativas.

7 6. Conclusión agronómica

medias[order(-medias$Rendimiento), ]
##   Bioinsumo Rendimiento
## 4        B4       3.175
## 3        B3       2.875
## 2        B2       2.575
## 1        B1       2.075

Con base en los resultados del archivo, el bioinsumo con la media más alta es el que presenta el mayor rendimiento observado. La recomendación final debe considerar también la comparación de Tukey: si dos tratamientos comparten letras, no se puede afirmar que sus rendimientos sean estadísticamente diferentes. Además, si el efecto de Bloque resulta significativo, esto indica que hubo variación entre bloques y respalda la utilidad del bloqueo para controlar diferencias en el lote.

8 7. Nota para la entrega

Revise que el informe se ejecute completo con Knit → Knit to HTML. Para publicarlo, abra una cuenta en RPubs, use la opción Publish del visor HTML de RStudio y copie el enlace público que se genere. No escriba un enlace hasta haber publicado efectivamente el documento.