library(dplyr)
library(ggplot2)
library(tidyr)
# Instalar readxl si no está instalada
if (!requireNamespace("readxl", quietly = TRUE)) {
install.packages("readxl")
}
# Cargar la librería
library(readxl)
library(readxl)
soja <- read_excel("SoybeanDataset.xlsx")
# Ver las primeras filas
head(soja)
## # A tibble: 6 × 15
## Genotipo Estrés_Hidrico Acido_Salicilico Altura_de_la_planta Numero_de_Vainas
## <chr> <chr> <chr> <dbl> <dbl>
## 1 G1 ALTO Control 458 151
## 2 G1 ALTO Dosis Baja 513 136
## 3 G1 ALTO Dosis Baja 500 137
## 4 G1 ALTO Dosis Alta 568 150
## 5 G1 ALTO Control 474 151
## 6 G1 ALTO Dosis Baja 520 136
## # ℹ 10 more variables: Peso_biologico <dbl>, Azúcares <dbl>,
## # Contenido_relativo_de_agua_en_hojas <dbl>, Clorofila_A663 <dbl>,
## # Clorofila_B649 <dbl>, Porcentaje_de_proteina <dbl>,
## # Peso_de_300_semillas <dbl>, Indice_de_área_foliar <dbl>,
## # Numero_de_semillas_por_vaina <dbl>, Contenido_de_proteina <dbl>
glimpse(soja)
## Rows: 55,450
## Columns: 15
## $ Genotipo <chr> "G1", "G1", "G1", "G1", "G1", "G1"…
## $ Estrés_Hidrico <chr> "ALTO", "ALTO", "ALTO", "ALTO", "A…
## $ Acido_Salicilico <chr> "Control", "Dosis Baja", "Dosis Ba…
## $ Altura_de_la_planta <dbl> 458, 513, 500, 568, 474, 520, 531,…
## $ Numero_de_Vainas <dbl> 151, 136, 137, 150, 151, 136, 152,…
## $ Peso_biologico <dbl> 870, 660, 650, 886, 840, 630, 897,…
## $ Azúcares <dbl> 323, 882, 861, 445, 331, 832, 344,…
## $ Contenido_relativo_de_agua_en_hojas <dbl> 0.717, 0.662, 0.674, 0.626, 0.739,…
## $ Clorofila_A663 <dbl> 19, 17, 18, 15, 10, 14, 14, 15, 17…
## $ Clorofila_B649 <dbl> 25, 30, 32, 22, 29, 31, 21, 22, 23…
## $ Porcentaje_de_proteina <dbl> 0.376, 0.344, 0.330, 0.329, 0.321,…
## $ Peso_de_300_semillas <dbl> 375, 353, 371, 354, 397, 376, 332,…
## $ Indice_de_área_foliar <dbl> 3, 4, 3, 9, 3, 5, 9, 9, 1, 9, 9, 9…
## $ Numero_de_semillas_por_vaina <dbl> 22, 208, 22, 19, 205, 19, 16, 19, …
## $ Contenido_de_proteina <dbl> 73, 6, 48, 95, 78, 6, 8, 92, 7, 8,…
intervalo_vainas <- soja %>%
group_by(Genotipo) %>%
summarise(
media_vainas = mean(Numero_de_Vainas, na.rm = TRUE),
sd_vainas = sd(Numero_de_Vainas, na.rm = TRUE),
n = n(),
error = qt(0.975, df = n - 1) * sd_vainas / sqrt(n),
IC_inf = media_vainas - error,
IC_sup = media_vainas + error
) %>%
arrange(desc(media_vainas))
# Mostrar resultados
print(intervalo_vainas)
## # A tibble: 6 × 7
## Genotipo media_vainas sd_vainas n error IC_inf IC_sup
## <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 G4 156. 19.0 9242 0.388 156. 156.
## 2 G3 147. 20.8 9242 0.425 146. 147.
## 3 G2 143. 17.9 9242 0.365 143. 144.
## 4 G6 142. 22.1 9241 0.451 142. 143.
## 5 G1 142. 22.3 9241 0.454 141. 142.
## 6 G5 139. 11.2 9242 0.229 139. 139.
Interpretación: Con base en la información de la muestra y utilizando un nivel de confianza del 95%, se puede afirmar que el genotipo G4 presenta la mayor cantidad promedio de vainas por planta, con un intervalo de confianza que va de 155.721 a 156.496 vainas.
intervalo_semillas_vaina <- soja %>%
group_by(Genotipo) %>%
summarise(
media_semillas = mean(Numero_de_semillas_por_vaina, na.rm = TRUE),
sd_semillas = sd(Numero_de_semillas_por_vaina, na.rm = TRUE),
n = n(),
error = qt(0.975, df = n - 1) * sd_semillas / sqrt(n),
IC_inf = media_semillas - error,
IC_sup = media_semillas + error
) %>%
arrange(desc(media_semillas))
# Mostrar resultados
print(intervalo_semillas_vaina)
## # A tibble: 6 × 7
## Genotipo media_semillas sd_semillas n error IC_inf IC_sup
## <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 G4 130. 89.6 9242 1.83 128. 132.
## 2 G5 120. 87.1 9242 1.78 118. 122.
## 3 G2 91.9 87.7 9242 1.79 90.1 93.7
## 4 G1 91.4 89.5 9241 1.82 89.6 93.2
## 5 G3 83.8 86.6 9242 1.77 82.0 85.6
## 6 G6 83.5 88.3 9241 1.80 81.7 85.3
Interpretación: Con un 95% de confianza, los genotipos G4 y G5 presentan una mayor cantidad promedio de semillas por vaina en sus plantas, destacándose G4 como el más productivo en este aspecto.
semillas_por_planta <- soja %>%
group_by(Genotipo) %>%
summarise(
media_vainas = mean(Numero_de_Vainas, na.rm = TRUE),
media_semillas_vaina = mean(Numero_de_semillas_por_vaina, na.rm = TRUE),
semillas_por_planta = media_vainas * media_semillas_vaina
) %>%
arrange(desc(semillas_por_planta))
# Mostrar resultados
print(semillas_por_planta)
## # A tibble: 6 × 4
## Genotipo media_vainas media_semillas_vaina semillas_por_planta
## <chr> <dbl> <dbl> <dbl>
## 1 G4 156. 130. 20287.
## 2 G5 139. 120. 16677.
## 3 G2 143. 91.9 13164.
## 4 G1 142. 91.4 12974.
## 5 G3 147. 83.8 12305.
## 6 G6 142. 83.5 11885.
Interpretación: El genotipo G4 nos dará en promedio el mayor número de semillas por planta, con un valor estimado de 20.287 semillas por planta. Esto se debe a que G4 combina la mayor cantidad promedio de vainas por planta (156.1) con la mayor cantidad promedio de semillas por vaina (130), lo que da como resultado el valor más alto de semillas totales por planta en comparación con los demás genotipos.
mejor_genotipo <- soja %>%
group_by(Genotipo) %>%
summarise(
media_vainas = mean(Numero_de_Vainas, na.rm = TRUE),
media_semillas_vaina = mean(Numero_de_semillas_por_vaina, na.rm = TRUE),
semillas_planta = media_vainas * media_semillas_vaina
) %>%
arrange(desc(semillas_planta)) %>%
slice(1) %>%
pull(Genotipo)
# Filtrar datos para ese genotipo
datos_genotipo <- soja %>%
filter(Genotipo == mejor_genotipo)
# Contar observaciones con estrés hídrico ALTO
n <- nrow(datos_genotipo)
x <- sum(datos_genotipo$`Estrés_Hidrico` == "ALTO", na.rm = TRUE)
# Prueba de proporciones de estrés hídrico ALTO es menor al 45% (H0: p = 0.45 vs H1: p < 0.45)
test_proporcion <- prop.test(
x = x,
n = n,
p = 0.45,
alternative = "less",
correct = FALSE
)
# Imprimir resultados
cat("Genotipo con mayor semillas por planta:", mejor_genotipo, "\n")
## Genotipo con mayor semillas por planta: G4
print(test_proporcion)
##
## 1-sample proportions test without continuity correction
##
## data: x out of n, null probability 0.45
## X-squared = 11.744, df = 1, p-value = 0.0003052
## alternative hypothesis: true p is less than 0.45
## 95 percent confidence interval:
## 0.0000000 0.4407604
## sample estimates:
## p
## 0.4322657
Interpretación: Sí, podemos decir que la proporción poblacional de estrés hídrico alto es menor al 45% con un nivel de confianza del 95%.
Esto se concluye porque: - El valor p (p-value) es 0.0003, mucho menor que 0.05, lo que indica que hay evidencia estadística suficiente para rechazar la hipótesis nula (que la proporción es igual a 0.45). - El intervalo de confianza del 95% para la proporción poblacional va de 0 hasta 0.44076, lo que no incluye al 0.45, reforzando la conclusión anterior. - La estimación muestral de la proporción fue 0.432, que está por debajo del 0.45 planteado como umbral.
genotipo_mayor_rendimiento <- soja %>%
group_by(Genotipo) %>%
summarise(
mean_vainas = mean(Numero_de_Vainas, na.rm = TRUE),
mean_semillas_vaina = mean(Numero_de_semillas_por_vaina, na.rm = TRUE),
semillas_planta = mean_vainas * mean_semillas_vaina
) %>%
arrange(desc(semillas_planta)) %>%
slice(1) %>%
pull(Genotipo)
# Filtrar datos solo para ese genotipo
datos_filtrados <- soja %>%
filter(Genotipo == genotipo_mayor_rendimiento)
# Calcular medias por tratamiento
resumen_altura <- datos_filtrados %>%
group_by(Acido_Salicilico) %>%
summarise(media_altura = mean(Altura_de_la_planta, na.rm = TRUE))
# Calculo de diferencias de medias con el grupo control
control <- resumen_altura %>% filter(Acido_Salicilico == "Control") %>% pull(media_altura)
dosis_baja <- resumen_altura %>% filter(Acido_Salicilico == "Dosis Baja") %>% pull(media_altura)
dosis_alta <- resumen_altura %>% filter(Acido_Salicilico == "Dosis Alta") %>% pull(media_altura)
dif_baja <- dosis_baja - control
dif_alta <- dosis_alta - control
# Mostrar resultados
cat("Genotipo con mayor número de semillas por planta:", genotipo_mayor_rendimiento, "\n")
## Genotipo con mayor número de semillas por planta: G4
cat("Diferencia de altura (Dosis Baja - Control):", round(dif_baja, 2), "cm\n")
## Diferencia de altura (Dosis Baja - Control): 68.68 cm
cat("Diferencia de altura (Dosis Alta - Control):", round(dif_alta, 2), "cm\n")
## Diferencia de altura (Dosis Alta - Control): 110.65 cm
Interpretación: Sí, se observan ganancias en la altura promedio de las plantas con la aplicación de ácido salicílico tanto a dosis baja como a dosis alta en comparación con el grupo control. Las diferencias de medias son las siguientes: - Dosis Baja - Control: La diferencia de altura es de 68.68 cm, lo que indica que las plantas con dosis baja de ácido salicílico fueron 68.68 cm más altas en promedio que el grupo control. - Dosis Alta - Control: La diferencia de altura es de 110.65 cm, lo que significa que las plantas con dosis alta de ácido salicílico fueron 110.65 cm más altas en promedio que el grupo control. - Ambas diferencias de medias indican un aumento significativo en la altura de las plantas debido a la aplicación de ácido salicílico, y el efecto de la dosis alta es aún mayor que el de la dosis baja.
# Filtrar solo los niveles de estrés hídrico "ALTO" y "BAJO"
datos_estrés <- soja %>%
filter(Estrés_Hidrico %in% c("ALTO", "BAJO"))
# Calculó de proporciones por grupo
conteo <- datos_estrés %>%
group_by(Estrés_Hidrico) %>%
summarise(n = n()) %>%
mutate(prop = n / sum(n))
# Extraer proporciones
prop_alto <- conteo %>% filter(Estrés_Hidrico == "ALTO") %>% pull(prop)
prop_bajo <- conteo %>% filter(Estrés_Hidrico == "BAJO") %>% pull(prop)
# Calculó de diferencia de proporciones
diferencia <- prop_alto - prop_bajo
# Mostrar resultados
cat("Proporción de plantas con estrés hídrico ALTO:", round(prop_alto, 4), "\n")
## Proporción de plantas con estrés hídrico ALTO: 0.4887
cat("Proporción de plantas con estrés hídrico BAJO:", round(prop_bajo, 4), "\n")
## Proporción de plantas con estrés hídrico BAJO: 0.5113
cat("Diferencia de proporciones (ALTO - BAJO):", round(diferencia, 4), "\n")
## Diferencia de proporciones (ALTO - BAJO): -0.0225
Interpretación: La diferencia de proporciones entre las plantas con estrés hídrico alto y aquellas con riesgo hídrico bajo es de -0.0225, lo que indica que la proporción de plantas con estrés hídrico alto es ligeramente menor que la de plantas con riesgo hídrico bajo.