Cargar paquetes necesarios

library(dplyr)
library(ggplot2)
library(tidyr)

Instalacion y carga de los paqutes necesarios

# Instalar readxl si no está instalada
if (!requireNamespace("readxl", quietly = TRUE)) {
  install.packages("readxl")
}

# Cargar la librería
library(readxl)

Instalar y cargar los paquetes necesarios

library(readxl)

Cargar el archivo (ajusta el path si es necesario)

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>

Ver estructura

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,…

Situación 1.

1. Utilizando la información de la muestra, calcule el intervalo que estime con un 95% de confianza que genotipos de soja tienen una mayor cantidad promedio de vainas en sus plantas.

Calculó del intervalo de confianza del 95% para el número de vainas por genotipo

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.

2. Ahora, calcule el intervalo que estime que genotipos de soja tienen una mayor cantidad promedio de semillas por vaina en sus plantas.

Calculó del intervalo de confianza del 95% para el número de semillas por vaina por genotipo

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.

3. ¿Cuál genotipo nos dará en promedio un mayor número de semillas por planta?

Calculó promedio de semillas por planta (vainas * semillas/vaina) por genotipo

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.

Situación 2.

Teniendo en cuenta el genotipo que mas semillas da en promedio por planta.

1. ¿Podemos decir que la proporción poblacional de estrés hídrico alto es menor al 45%?

1. Identificación del genotipo con mayor número promedio de semillas por planta

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.

Situación 3.

También teniendo el genotipo que más semillas no da en promedio por planta.

1.¿Se observa ganancias en la altura promedio de las plantas con aplicación de ácido salicílico a dosis alta y a dosis baja en comparación con el grupo control? Para esto calcule las diferencias de medias para ambos grupos de tratamiento con el grupo control.

1. Identificar el genotipo con mayor semillas por planta

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.

2. ¿Se observa que la proporción de plantas con estrés hídrico alto es diferente a la proporción de plantas con riesgo hídrico bajo? Calcula la diferencia de proporciones para ambos grupos.

Calculó de la diferencia de proporciones para ambos grupos.

# 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.