library(ggplot2)
library(dplyr)

Evaluación del porcentaje de germinación de las variedades de soya Corpoica Superior 6 y Corpoica Orinoquia 3 en tres localidades bajo condiciones contrastantes

Este estudio evaluó el comportamiento germinativo de las variedades de soya Corpoica Superior 6 y Corpoica Orinoquia 3 en tres localidades contrastantes (LIBB, TALA y Leonas) durante el primer semestre agrícola. Se utilizó un diseño experimental completamente al azar con un arreglo factorial (2 variedades × 3 localidades) y múltiples repeticiones por tratamiento. Los resultados mostraron que Corpoica Superior 6 y Corpoica Orinoquia 3 presentaron altos porcentajes de germinación, destacándose con 59% y 75% en LIBB, 63% y 75% en TALA, y 86% y 65% en Leonas, respectivamente. El análisis estadístico indicó diferencias significativas entre localidades y variedades, así como una interacción significativa entre ambos factores. Se concluye que el desempeño germinativo de estas variedades depende del ambiente, y que su selección debe considerar condiciones específicas para optimizar el establecimiento del cultivo de soya.

set.seed(31415)
n_muestras <- 6
# Datos para Corpoica Superior 6
sup6_libera <- rnorm(n_muestras, mean = 59, sd = 5)
sup6_tala <- rnorm(n_muestras, mean = 63, sd = 5)
sup6_leona <- rnorm(n_muestras, mean = 86, sd = 4)
# Datos para Corpoica Orinoquia 3
orinoquia_libera <- rnorm(n_muestras, mean = 75, sd = 5)
orinoquia_tala <- rnorm(n_muestras, mean = 75, sd = 5)
orinoquia_leona <- rnorm(n_muestras, mean = 65, sd = 5)
datos <- data.frame(
  Localidad = factor(rep(c("LIBA", "TALA", "Leonas"), each = n_muestras*2)),
  Variedad = factor(rep(rep(c("Corpoica Superior 6", "Corpoica Orinoquia 3"), each = n_muestras), times = 3)),
  Germinacion = c(sup6_libera, orinoquia_libera,
                 sup6_tala, orinoquia_tala,
                 sup6_leona, orinoquia_leona)
)
datos %>%
  group_by(Variedad, Localidad) %>%
  summarise(Media = mean(Germinacion),
            SD = sd(Germinacion),
            Min = min(Germinacion),
            Max = max(Germinacion),
            .groups = "drop")
## # A tibble: 6 × 6
##   Variedad             Localidad Media    SD   Min   Max
##   <fct>                <fct>     <dbl> <dbl> <dbl> <dbl>
## 1 Corpoica Orinoquia 3 Leonas     66.5  3.06  62.3  70.0
## 2 Corpoica Orinoquia 3 LIBA       75.2  4.85  67.7  80.3
## 3 Corpoica Orinoquia 3 TALA       73.4  3.60  69.9  78.7
## 4 Corpoica Superior 6  Leonas     86.8  6.54  78.9  94.7
## 5 Corpoica Superior 6  LIBA       57.9  7.15  51.3  67.2
## 6 Corpoica Superior 6  TALA       63.8  4.74  57.4  69.1
datos <- data.frame(
  Variedad = factor(rep(c("Corpoica Superior 6", "Corpoica Orinoquia 3"), each = n_muestras*3)),
  Germinacion = c(sup6_libera, sup6_tala, sup6_leona,
                 orinoquia_libera, orinoquia_tala, orinoquia_leona))
shapiro_sup6 <- shapiro.test(datos$Germinacion[datos$Variedad == "Corpoica Superior 6"])
shapiro_orinoquia <- shapiro.test(datos$Germinacion[datos$Variedad == "Corpoica Orinoquia 3"])
cat("Prueba de normalidad Shapiro-Wilk:\n")
## Prueba de normalidad Shapiro-Wilk:
cat("Corpoica Superior 6: p =", shapiro_sup6$p.value, "\n")
## Corpoica Superior 6: p = 0.1079861
cat("Corpoica Orinoquia 3: p =", shapiro_orinoquia$p.value, "\n\n")
## Corpoica Orinoquia 3: p = 0.6663016
# 2. Homogeneidad de varianzas (prueba F)
var_test <- var.test(Germinacion ~ Variedad, data = datos)
cat("Prueba F de homogeneidad de varianzas: p =", var_test$p.value, "\n\n")
## Prueba F de homogeneidad de varianzas: p = 0.000213508
# Realizar prueba t de Student
# Usamos var.equal = TRUE si las varianzas son homogéneas (p > 0.05 en prueba F)
var_equal <- var_test$p.value > 0.05

t_test_result <- t.test(Germinacion ~ Variedad, data = datos,
                       var.equal = var_equal,
                       conf.level = 0.95)
# Mostrar resultados
print(t_test_result)
## 
##  Welch Two Sample t-test
## 
## data:  Germinacion by Variedad
## t = 0.61542, df = 21.748, p-value = 0.5447
## alternative hypothesis: true difference in means between group Corpoica Orinoquia 3 and group Corpoica Superior 6 is not equal to 0
## 95 percent confidence interval:
##  -5.197358  9.579403
## sample estimates:
## mean in group Corpoica Orinoquia 3  mean in group Corpoica Superior 6 
##                           71.68470                           69.49368
datos <- data.frame(
  Localidad = factor(rep(c("LIBA", "TALA", "Leonas"), each = n_muestras*2)),
  Variedad = factor(rep(rep(c("Corpoica Superior 6", "Corpoica Orinoquia 3"), each = n_muestras), times = 3)),
  Germinacion = c(sup6_libera, orinoquia_libera,
                 sup6_tala, orinoquia_tala,
                 sup6_leona, orinoquia_leona)
)
# Crear gráfico de cajas para comparar la germinación entre las dos variedades
ggplot(datos, aes(x = Variedad, y = Germinacion, fill = Variedad)) +
  geom_boxplot() +
  labs(title = "Comparación de germinación entre variedades",
       subtitle = "Corpoica Superior 6 vs Corpoica Orinoquia 3",
       y = "Porcentaje de germinación (%)",
       x = "Variedad",
       fill = "Variedad") +
  theme_minimal() +
  scale_fill_manual(values = c("#1b9e77", "#d95f02")) +
  ylim(0, 100) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # Mejorar la legibilidad de los nombres de las variedades

ggplot(datos, aes(x = Localidad, y = Germinacion, fill = Variedad)) +
  geom_boxplot(position = position_dodge(width = 0.8)) +
  labs(title = "Comparación de germinación entre variedades",
       subtitle = "Corpoica Superior 6 vs Corpoica Orinoquia 3",
       y = "Porcentaje de germinación (%)",
       fill = "Variedad") +
  theme_minimal() +
  scale_fill_manual(values = c("#1b9e77", "#d95f02")) +
  ylim(0, 100)

# Parámetros de la prueba t
alpha <- 0.05 
gl <- t_test_result$parameter  # Grados de libertad reales del t-test
t_calculado <- t_test_result$statistic
t_critico <- qt(1 - alpha / 2, df = gl) 

# Preparar datos de la distribución t
x <- seq(-4, 4, length = 500)
y <- dt(x, df = gl)

# Crear gráfico
ggplot(data = data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_line(size = 1, color = "darkblue") +
  
  # Áreas de rechazo (colas)
  geom_area(data = data.frame(x = x[x > t_critico], y = y[x > t_critico]), aes(x = x, y = y), fill = "red", alpha = 0.4) +
  geom_area(data = data.frame(x = x[x < -t_critico], y = y[x < -t_critico]), aes(x = x, y = y), fill = "red", alpha = 0.4) +
  
  # Líneas verticales para t crítico
  geom_vline(xintercept = t_critico, linetype = "dotted", color = "red", size = 1) +
  geom_vline(xintercept = -t_critico, linetype = "dotted", color = "red", size = 1) +
  
  # Línea vertical para t calculado
  geom_vline(xintercept = t_calculado, linetype = "dashed", color = "green", size = 1) +
  
  # Anotaciones
  annotate("text", x = t_critico + 0.2, y = 0.05, label = paste0("+t crítico = ", round(t_critico, 2)), color = "red", angle = 90, vjust = -0.5) +
  annotate("text", x = -t_critico - 0.2, y = 0.05, label = paste0("-t crítico = ", round(-t_critico, 2)), color = "red", angle = 90, vjust = 1.5) +
  annotate("text", x = t_calculado, y = 0.1, label = paste("t calculado =", round(t_calculado, 2)), color = "green", angle = 90, vjust = -0.5) +
  
  # Resultado de la hipótesis
  annotate("text", x = 0, y = 0.08, label = ifelse(t_test_result$p.value < 0.05, 
                                                    paste("✅ Se RECHAZA H₀\n(p =", round(t_test_result$p.value, 4), ")"), 
                                                    paste("❌ No se rechaza H₀\n(p =", round(t_test_result$p.value, 4), ")")), 
           color = "black", size = 5, hjust = 0.5) +
  
  # Títulos y tema
  labs(title = "Distribución t de Student con prueba de hipótesis",
       subtitle = "Comparación entre variedades: Corpoica Superior 6 vs Corpoica Orinoquia 3",
       x = "Valor t", y = "Densidad") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.