Regresar a la página principal

Análisis de rendimiento en variedades de arroz

Vamos a analizar la varianza bajo un modelo completamente al azar de las siguientes variedades de arroz evaluadas.

Los rendimientos obtenidos en toneladas por hectárea fueron los siguientes:

#Datos de rendimiento
rendimiento1 <- c(3.4, 4.7, 2, 6.3)
rendimiento2 <- c(3.3, 4.7, 2.1, 5.2)
nombres <- factor(rep(c("JUMA 58", "TIKAL 2","MACUSPANA A-75","BG 90-2")))
#Creación del data.fram
Datos <- data.frame(nombres,rendimiento1,rendimiento2)
print(Datos)
##          nombres rendimiento1 rendimiento2
## 1        JUMA 58          3.4          3.3
## 2        TIKAL 2          4.7          4.7
## 3 MACUSPANA A-75          2.0          2.1
## 4        BG 90-2          6.3          5.2

Exportación de Datos

Guardamos los datos en formato CSV para su uso externo.

write.csv(Datos, "arroz.csv", row.names = FALSE)

Analisis exploratorio de datos

Generamos una tabla con promedios, desviación estándar, error estándar y límites de confianza.

Resumen de los datos:

summary(Datos)
##            nombres   rendimiento1   rendimiento2  
##  BG 90-2       :1   Min.   :2.00   Min.   :2.100  
##  JUMA 58       :1   1st Qu.:3.05   1st Qu.:3.000  
##  MACUSPANA A-75:1   Median :4.05   Median :4.000  
##  TIKAL 2       :1   Mean   :4.10   Mean   :3.825  
##                     3rd Qu.:5.10   3rd Qu.:4.825  
##                     Max.   :6.30   Max.   :5.200
# Estadísticas descriptivas por rendimiento

estadisticas_rendimiento1 <- summarise(Datos,
  Promedio1 = mean(rendimiento1, na.rm = TRUE),
  DE1 = sd(rendimiento1, na.rm = TRUE),
  n1 = n(),
  Error1 = DE1 / sqrt(n1)
)
estadisticas_rendimiento2 <- summarise(Datos,
  Promedio2 = mean(rendimiento2, na.rm = TRUE),
  DE2 = sd(rendimiento2, na.rm = TRUE),
  n2 = n(),
  Error2 = DE2 / sqrt(n2)
)

#Estadisticas para cada rendimiento

estadisticas_rendimiento1
##   Promedio1      DE1 n1    Error1
## 1       4.1 1.834848  4 0.9174239
estadisticas_rendimiento2
##   Promedio2     DE2 n2   Error2
## 1     3.825 1.40327  4 0.701635

Análisis de Varianza ANOVA

En un diseño completamente aleatorizado, cada unidad experimental se asigna al azar a un tratamiento. En nuestro caso, cada medición de rendimiento se considera una observación independiente de una variedad específica. Esto nos permite evaluar si las diferencias en los rendimientos promedio entre las variedades son estadísticamente significativas.

# Asegurar que los datos están en el formato correcto

Datos$rendimiento1 <- as.numeric(as.character(Datos$rendimiento1))
Datos$rendimiento2 <- as.numeric(as.character(Datos$rendimiento2))

# Preparación de los datos combinando rendimiento1 y rendimiento2

datos1 <- data.frame(nombres = Datos$nombres, rendimiento = Datos$rendimiento1, medicion = 'rendimiento1')

datos2 <- data.frame(nombres = Datos$nombres, rendimiento = Datos$rendimiento2, medicion = 'rendimiento2')

#Uso rbind para combinar los dos data.frames

datos_long <- rbind(datos1, datos2)

# Hacer análisis ANOVA con los datos preparados

resultado_anova <- aov(rendimiento ~ nombres, data = datos_long)
summary(resultado_anova)
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## nombres      3 15.544   5.181    33.7 0.00268 **
## Residuals    4  0.615   0.154                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(agricolae)

#Usando los resultados anteriores, hacemos la prueba de Duncan
duncan_test <- duncan.test(resultado_anova, "nombres", alpha = 0.05)

# Ver los resultados de la prueba de Duncan
print(duncan_test)
## $statistics
##   MSerror Df   Mean       CV
##   0.15375  4 3.9625 9.895512
## 
## $parameters
##     test  name.t ntr alpha
##   Duncan nombres   4  0.05
## 
## $duncan
##      Table CriticalRange
## 2 3.926503      1.088676
## 3 4.012542      1.112531
## 4 4.033093      1.118229
## 
## $means
##                rendimiento        std r        se Min Max   Q25  Q50   Q75
## BG 90-2               5.75 0.77781746 2 0.2772634 5.2 6.3 5.475 5.75 6.025
## JUMA 58               3.35 0.07071068 2 0.2772634 3.3 3.4 3.325 3.35 3.375
## MACUSPANA A-75        2.05 0.07071068 2 0.2772634 2.0 2.1 2.025 2.05 2.075
## TIKAL 2               4.70 0.00000000 2 0.2772634 4.7 4.7 4.700 4.70 4.700
## 
## $comparison
## NULL
## 
## $groups
##                rendimiento groups
## BG 90-2               5.75      a
## TIKAL 2               4.70      a
## JUMA 58               3.35      b
## MACUSPANA A-75        2.05      c
## 
## attr(,"class")
## [1] "group"

Análisis de la prueba Duncan

El resultado de la prueba de medias de Duncan indica que las variedades se han dividido en tres grupos distintos basados en sus rendimientos promedio, y estos grupos se denotan con las letras “a”, “b” y “c”. resultados que se pueden interpretar de la siguiente forma:

*Grupo a: Incluye a las variedades “BG 90-2” y “TIKAL 2”, con rendimientos promedio de 5.75 y 4.70 respectivamente. No hay diferencias estadísticamente significativas en los rendimientos promedio entre estas dos variedades, ya que ambas comparten la misma letra de grupo “a”.

*Grupo b: Solo incluye a la variedad “JUMA 58”, con un rendimiento promedio de 3.35. Esta variedad se diferencia significativamente en rendimiento de las variedades en el grupo “a” y del grupo “c”, pero está sola en su grupo, lo que indica su posición intermedia en términos de rendimiento.

*Grupo c: Contiene únicamente a la variedad “MACUSPANA A-75”, con un rendimiento promedio de 2.05. Esta variedad tiene el rendimiento promedio más bajo y es significativamente diferente de las variedades en los grupos “a” y “b”.

Conclusiones

Gráfico de barras con los grupos Duncan

Se preparan los gráficos en un data.frame

#Creación del data.frame con los datos y los grupos

resultado_duncan <- data.frame(
  variedad = c("BG 90-2", "TIKAL 2", "JUMA 58", "MACUSPANA A-75"),
  rendimiento = c(5.75, 4.70, 3.35, 2.05),
  grupo = c("a", "a", "b", "c")
)

#Cargue de la librería gráfica ggplot2

library(ggplot2)

#Elaboración del gráfico

ggplot(resultado_duncan, aes(x = variedad, y = rendimiento, fill = grupo)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_text(aes(label = grupo), vjust = -0.5) + 
  # Añade etiquetas de grupo sobre las barras
  scale_fill_manual(values = c("a" = "blue", "b" = "green", "c" = "red")) + 
  # Colores personalizados para cada grupo
  theme_minimal() +
  labs(title = "Rendimiento por Variedad y Grupo de Duncan",
       x = "Variedad",
       y = "Rendimiento",
       fill = "Grupo de Duncan") +
  theme(plot.title = element_text(hjust = 0.5)) # Centrar el título

En el gráfico se puede corroborar lo que se pudo ver en las conclusiones de los grupos de Duncan, es claro que de acuerdo con las barras, se puede decir que “BG 90-2” es la mejor variedad, junto con “TIKAL 2”, seguido en el grupo b. de “JUMA 58”, con un promedio intermedio, mientras que la variedad “MACUSPANA A-75” es la variedad que tiene menor rendimiento promedio y por ésto quedó en el grupo c.