🌱 Práctica Guiada 2: ANOVA y MANOVA

Asignatura: Estadística Aplicada con Python y R

Tema: Comparación del Efecto de Fertilizantes en el Crecimiento de Cultivos

Objetivo del Ejercicio

Imagina que eres un ingeniero agrónomo encargado de un proyecto de agricultura sostenible. Una empresa ha desarrollado dos nuevos biofertilizantes y afirma que son tan buenos o mejores que el fertilizante químico tradicional, pero con un menor impacto ambiental.

Tu misión es diseñar y analizar un experimento para verificar estas afirmaciones. Utilizarás ANOVA para determinar si hay una diferencia significativa en el rendimiento del cultivo entre los fertilizantes. Luego, usarás MANOVA para evaluar el efecto simultáneo sobre el rendimiento y la altura de la planta, dos indicadores clave de la salud del cultivo.

Paso 1: Configuración del Proyecto (El Flujo “De Cero a Héroe”)

  1. Crear Repositorio en GitHub:

    • Crea un nuevo repositorio público llamado proyecto-anova-fertilizantes.
    • Inicialízalo con un README.md y un .gitignore para R.
  2. Clonar en Posit Cloud:

    • Copia la URL HTTPS del repositorio.
    • En Posit Cloud, crea un New Project from Git Repository usando esa URL.
  3. Configurar Git:

    • Si es necesario, configura tu identidad en la Consola de R (use_git_config) y guarda tu PAT (gitcreds_set).

Paso 2: Creación de los Datos y el Entorno de Trabajo

1. Crear la Carpeta y el Archivo de Datos:

  • En Posit Cloud, crea una carpeta llamada data.
  • Dentro de data, crea un nuevo archivo de texto (New File > Text File) llamado datos_fertilizantes.csv.
  • Pega los siguientes datos de un experimento de campo simulado y guarda el archivo:
Parcela,Fertilizante,Rendimiento_kg_ha,Altura_cm
1,Control,3200,85
2,Control,3350,88
3,Control,3280,86
4,Control,3100,83
5,Control,3320,89
6,Biofertilizante_A,3600,92
7,Biofertilizante_A,3750,95
8,Biofertilizante_A,3550,91
9,Biofertilizante_A,3680,94
10,Biofertilizante_A,3800,96
11,Biofertilizante_B,3500,94
12,Biofertilizante_B,3450,92
13,Biofertilizante_B,3650,96
14,Biofertilizante_B,3380,91
15,Biofertilizante_B,3550,95
16,Quimico,3700,90
17,Quimico,3820,93
18,Quimico,3900,94
19,Quimico,3650,89
20,Quimico,3880,92

2. Crear el Documento R Markdown:

  • Crea un nuevo archivo R Markdown (New File > R Markdown...).

  • Titúlalo “Análisis de Fertilizantes con ANOVA y MANOVA”.

  • Guárdalo como analisis_anova.Rmd y borra el contenido de ejemplo.

Paso 3: Análisis en R Markdown

Ahora, dentro de tu archivo analisis_anova.Rmd, desarrollarás el análisis.

3.1 Carga de Librerías y Exploración de Datos 🔬

Primero, cargamos las herramientas y visualizamos los datos para entenderlos.

# Cargar librerías para manipulación, visualización y análisis
library(tidyverse)
library(car) # Para la prueba de Levene
# Cargar el dataset
datos <- read_csv("data/datos_fertilizantes.csv")
## Rows: 20 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Fertilizante
## dbl (3): Parcela, Rendimiento_kg_ha, Altura_cm
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Convertir la variable 'Fertilizante' a un factor (importante para ANOVA)
datos$Fertilizante <- factor(datos$Fertilizante, 
                             levels = c("Control", "Biofertilizante_A", "Biofertilizante_B", "Quimico"))

# Ver la estructura
str(datos)
## spc_tbl_ [20 × 4] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Parcela          : num [1:20] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Fertilizante     : Factor w/ 4 levels "Control","Biofertilizante_A",..: 1 1 1 1 1 2 2 2 2 2 ...
##  $ Rendimiento_kg_ha: num [1:20] 3200 3350 3280 3100 3320 3600 3750 3550 3680 3800 ...
##  $ Altura_cm        : num [1:20] 85 88 86 83 89 92 95 91 94 96 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Parcela = col_double(),
##   ..   Fertilizante = col_character(),
##   ..   Rendimiento_kg_ha = col_double(),
##   ..   Altura_cm = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>
# Visualización con Boxplots para comparar los grupos
# Gráfico para Rendimiento
ggplot(datos, aes(x = Fertilizante, y = Rendimiento_kg_ha, fill = Fertilizante)) +
  geom_boxplot() +
  geom_jitter(width = 0.1, alpha = 0.6) +
  labs(title = "Comparación de Rendimiento por Tipo de Fertilizante",
       x = "Tipo de Fertilizante",
       y = "Rendimiento (kg/ha)") +
  theme_minimal()

# Gráfico para Altura
ggplot(datos, aes(x = Fertilizante, y = Altura_cm, fill = Fertilizante)) +
  geom_boxplot() +
  geom_jitter(width = 0.1, alpha = 0.6) +
  labs(title = "Comparación de Altura por Tipo de Fertilizante",
       x = "Tipo de Fertilizante",
       y = "Altura Promedio (cm)") +
  theme_minimal()

Observación Preliminar: Los boxplots sugieren que el grupo “Control” tiene un rendimiento y altura menores que los grupos con fertilizantes. El “Biofertilizante A” y el “Químico” parecen ser los más efectivos. ````

3.2 Análisis de Varianza (ANOVA)

Aquí respondemos la primera pregunta: ¿Afecta el tipo de fertilizante al rendimiento del cultivo?

Hipótesis del ANOVA:

  • \(H_0\) (Hipótesis Nula): No hay diferencia significativa entre los rendimientos promedio de los cuatro grupos. (\(\mu_{control} = \mu_{bioA} = \mu_{bioB} = \mu_{quimico}\))

  • \(H_a\) (Hipótesis Alternativa): Al menos un grupo tiene un rendimiento promedio significativamente diferente.

1. Verificación de Supuestos del ANOVA

  • Homogeneidad de Varianzas (Prueba de Levene):

    leveneTest(Rendimiento_kg_ha ~ Fertilizante, data = datos)
    <script data-pagedtable-source type="application/json">
    {“columns”:[{“label”:[“”],“name”:[“rn”],“type”:[“”],“align”:[“left”]},{“label”:[“Df”],“name”:[1],“type”:[“int”],“align”:[“right”]},{“label”:[“F value”],“name”:[2],“type”:[“dbl”],“align”:[“right”]},{“label”:[“Pr(>F)”],“name”:[3],“type”:[“dbl”],“align”:[“right”]}],“data”:[{“1”:“3”,“2”:“0.04447439”,“3”:“0.9870663”,“rn”:“group”},{“1”:“16”,“2”:“NA”,“3”:“NA”,“rn”:““}],“options”:{“columns”:{“min”:{},“max”:[10]},“rows”:{“min”:[10],“max”:[10]},“pages”:{}}}

    Si el p-valor (Pr(>F)) es mayor a 0.05, asumimos que las varianzas son iguales.

2. Ejecución del Modelo ANOVA

modelo_anova <- aov(Rendimiento_kg_ha ~ Fertilizante, data = datos)
summary(modelo_anova)
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## Fertilizante  3 826455  275485   25.36 2.55e-06 ***
## Residuals    16 173840   10865                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación del ANOVA:

Observamos el p-valor (Pr(>F)) en la tabla de resultados. Si es muy pequeño (típicamente < 0.05), rechazamos la hipótesis nula.

Esto significa que hay evidencia estadística de que el tipo de fertilizante sí afecta el rendimiento.

3. Prueba Post-Hoc (Tukey HSD)

El ANOVA nos dice que hay diferencias, pero no entre qué pares. La prueba de Tukey nos lo dirá.

TukeyHSD(modelo_anova)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Rendimiento_kg_ha ~ Fertilizante, data = datos)
## 
## $Fertilizante
##                                     diff        lwr       upr     p adj
## Biofertilizante_A-Control            426  237.38956 614.61044 0.0000423
## Biofertilizante_B-Control            256   67.38956 444.61044 0.0064980
## Quimico-Control                      540  351.38956 728.61044 0.0000022
## Biofertilizante_B-Biofertilizante_A -170 -358.61044  18.61044 0.0849586
## Quimico-Biofertilizante_A            114  -74.61044 302.61044 0.3416364
## Quimico-Biofertilizante_B            284   95.38956 472.61044 0.0027380

Interpretación de Tukey HSD:

La tabla muestra la comparación de todos los pares de grupos. Fíjate en la columna p adj.

Si el valor es < 0.05, la diferencia entre ese par es estadísticamente significativa.

Por ejemplo, podrás confirmar si “Biofertilizante_A” es significativamente mejor que “Control”, pero no necesariamente diferente del “Químico”.

3.3 Análisis de Varianza Multivariado (MANOVA)

Ahora respondemos la pregunta más compleja:

¿Afecta el tipo de fertilizante al conjunto de variables (rendimiento y altura) de forma simultánea?

Hipótesis del MANOVA:

  • \(H_0\) (Hipótesis Nula): Los vectores de medias de (Rendimiento, Altura) son iguales para todos los tipos de fertilizante.

  • \(H_a\) (Hipótesis Alternativa): Al menos un grupo tiene un vector de medias significativamente diferente.

# Creamos una matriz con las variables dependientes
variables_dependientes <- cbind(datos$Rendimiento_kg_ha, datos$Altura_cm)

# Ejecutamos el modelo MANOVA
modelo_manova <- manova(variables_dependientes ~ Fertilizante, data = datos)

# Usamos summary para obtener los resultados con la prueba de Pillai
summary(modelo_manova, test = "Pillai")
##              Df Pillai approx F num Df den Df    Pr(>F)    
## Fertilizante  3 1.6727   27.261      6     32 2.893e-11 ***
## Residuals    16                                            
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación del MANOVA:

El resultado clave es el p-valor (Pr(>F)) de la prueba de Pillai.

Si es < 0.05, rechazamos la hipótesis nula.

Concluimos que el tipo de fertilizante tiene un efecto multivariado significativo sobre las características del cultivo.

Esto refuerza nuestros hallazgos, mostrando que el efecto no se limita a una sola variable, sino al perfil de crecimiento general de la planta.

Paso 4: Conclusiones y Sincronización

1. Escribir las Conclusiones:

  • Basado en el ANOVA y la prueba de Tukey, ¿qué fertilizante recomendarías para maximizar el rendimiento?

  • ¿Hay alguna diferencia significativa entre el mejor biofertilizante y el fertilizante químico?

  • ¿Qué información adicional te aportó el MANOVA?

2. Generar el Reporte:

  • Haz clic en Knit para generar tu reporte en HTML.

3. Sincronizar con GitHub ✅:

  • Ve a la pestaña Git.

  • Stage: Marca todos los archivos nuevos (.Rmd, .html, etc.).

  • Commit: Escribe un mensaje claro, como Análisis ANOVA y MANOVA de fertilizantes completado.

  • Push: Envía tu trabajo finalizado a tu repositorio en GitHub.

¡Excelente trabajo! Has aplicado dos técnicas estadísticas muy potentes para resolver un problema de ingeniería real y documentado todo el proceso de forma reproducible.