Ejercicio: efecto de pesticidas en la supervivencia de larvas de Aedes aegypti

Autor/a

Francisco Jeronimo G

Fecha de publicación

6 de febrero de 2026

Introducción

Análisis de un experimento diseñado para evaluar la efectividad de dos pesticidas (A y B) en comparación con un control, sobre la supervivencia de larvas de Aedes aegypti.

Factor 1: Tratamiento (3 niveles: Control, Pesticida A, Pesticida B).

Factor 2: Territorio (Bloque) (3 niveles: prístino, uso medio, muy alterado).

Unidad Experimental: Larvas obtenidas de adultos capturados de territorios distintos.

Modelo estadistico

\(Supervivencia_ij = µ + α_i + β_j + ε_ij\)

µ: Media general.

α_i: Efecto de los tratamientos (i = Control, A, B).

β_j: Efecto del territorio (j = prístino, medio, alterado).

ε_ij: Error experimental

Hipotesis

Hipótesis nula (H₀): No existen diferencias en la supervivencia media de las larvas entre los tratamientos (Control, Pesticida A, Pesticida B).

\(H0​:α1​=α2​=α3​\)

Hipótesis alternativa (H₁): Al menos uno de los tratamientos produce un efecto diferente en la supervivencia.

Datos

Código
# Crear el conjunto de datos con los valores del experimento
datos_experimento <- data.frame(
  Tratamiento = c("Control", "Pesticida_A", "Pesticida_B", 
                  "Control", "Pesticida_A", "Pesticida_B",
                  "Control", "Pesticida_A", "Pesticida_B"),
  
  Territorio = c("Prístino", "Prístino", "Prístino",
                 "Uso_medio", "Uso_medio", "Uso_medio",
                 "Muy_alterado", "Muy_alterado", "Muy_alterado"),
  
  Supervivencia = c(77.20, 58.85, 57.79,   # Prístino
                    80.35, 60.65, 58.58,   # Uso medio
                    82.30, 53.67, 46.57)   # Muy alterado
)

# Convertir a factores (variables categóricas)
datos_experimento$Tratamiento <- factor(datos_experimento$Tratamiento,
                                       levels = c("Control", "Pesticida_A", "Pesticida_B"))

datos_experimento$Territorio <- factor(datos_experimento$Territorio,
                                      levels = c("Prístino", "Uso_medio", "Muy_alterado"))

# Mostrar los primeros datos
cat("=== DATOS DEL EXPERIMENTO ===\n")
=== DATOS DEL EXPERIMENTO ===
Código
print(datos_experimento)
  Tratamiento   Territorio Supervivencia
1     Control     Prístino         77.20
2 Pesticida_A     Prístino         58.85
3 Pesticida_B     Prístino         57.79
4     Control    Uso_medio         80.35
5 Pesticida_A    Uso_medio         60.65
6 Pesticida_B    Uso_medio         58.58
7     Control Muy_alterado         82.30
8 Pesticida_A Muy_alterado         53.67
9 Pesticida_B Muy_alterado         46.57
Código
cat("\n=== RESUMEN ESTADÍSTICO ===\n")

=== RESUMEN ESTADÍSTICO ===
Código
summary(datos_experimento)
      Tratamiento        Territorio Supervivencia  
 Control    :3    Prístino    :3    Min.   :46.57  
 Pesticida_A:3    Uso_medio   :3    1st Qu.:57.79  
 Pesticida_B:3    Muy_alterado:3    Median :58.85  
                                    Mean   :64.00  
                                    3rd Qu.:77.20  
                                    Max.   :82.30  

Grafico

Código
# Configurar área de gráficos: 2 filas, 3 columnas
par(mfrow = c(2, 3), mar = c(4, 4, 3, 1))

# 1. Boxplot por tratamiento
boxplot(Supervivencia ~ Tratamiento, data = datos_experimento,
        col = c("lightgreen", "orange", "coral"),
        main = "A) Por Tratamiento",
        ylab = "Supervivencia (%)",
        ylim = c(40, 90))

# 2. Boxplot por territorio  
boxplot(Supervivencia ~ Territorio, data = datos_experimento,
        col = c("lightblue", "lightyellow", "pink"),
        main = "B) Por Territorio",
        ylab = "Supervivencia (%)",
        ylim = c(40, 90))

# 3. Diagrama de puntos coloreados
plot(1:9, datos_experimento$Supervivencia,
     pch = 19, cex = 1.5,
     col = as.numeric(datos_experimento$Tratamiento),
     xlab = "Observación", ylab = "Supervivencia (%)",
     main = "C) Todos los datos",
     ylim = c(40, 90))
legend("bottomright", legend = levels(datos_experimento$Tratamiento),
       col = 1:3, pch = 19, bty = "n")

# 4. Gráfico de interacción (tendencias)
interaction.plot(datos_experimento$Tratamiento, 
                 datos_experimento$Territorio,
                 datos_experimento$Supervivencia,
                 type = "b", col = 1:3, pch = 16:18,
                 xlab = "Tratamiento", 
                 ylab = "Supervivencia Media (%)",
                 trace.label = "Territorio",
                 main = "D) Tendencias")

# 5. Gráfico de barras por tratamiento
medias_trat <- tapply(datos_experimento$Supervivencia, 
                      datos_experimento$Tratamiento, mean)
barplot(medias_trat,
        col = c("lightgreen", "orange", "coral"),
        ylim = c(0, 90),
        main = "E) Medias por Tratamiento",
        ylab = "Supervivencia (%)")

# 6. Gráfico de barras por territorio
medias_terr <- tapply(datos_experimento$Supervivencia,
                      datos_experimento$Territorio, mean)
barplot(medias_terr,
        col = c("lightblue", "lightyellow", "pink"),
        ylim = c(0, 90),
        main = "F) Medias por Territorio",
        ylab = "Supervivencia (%)")

Anova sin tomar en cuenta la interacción

Código
# ANOVA de dos vías sin interacción
modelo_anova <- aov(Supervivencia ~ Tratamiento + Territorio, 
                    data = datos_experimento)

cat("=== ANOVA DE DOS VÍAS SIN INTERACCIÓN ===\n")
=== ANOVA DE DOS VÍAS SIN INTERACCIÓN ===
Código
print(summary(modelo_anova))
            Df Sum Sq Mean Sq F value  Pr(>F)   
Tratamiento  2 1162.9   581.4  29.200 0.00411 **
Territorio   2   50.1    25.1   1.258 0.37677   
Residuals    4   79.6    19.9                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Código
# Interpretación simple
cat("\n=== INTERPRETACIÓN ===\n")

=== INTERPRETACIÓN ===
Código
p_valor_trat <- summary(modelo_anova)[[1]]["Tratamiento", "Pr(>F)"]
p_valor_terr <- summary(modelo_anova)[[1]]["Territorio", "Pr(>F)"]

if(p_valor_trat < 0.05) {
  cat("1. El TRATAMIENTO tiene un efecto SIGNIFICATIVO (p =", 
      format(p_valor_trat, digits = 3), ")\n")
} else {
  cat("1. El TRATAMIENTO NO tiene efecto significativo\n")
}
1. El TRATAMIENTO tiene un efecto SIGNIFICATIVO (p = 0.00411 )
Código
if(p_valor_terr < 0.05) {
  cat("2. El TERRITORIO tiene un efecto SIGNIFICATIVO (p =", 
      format(p_valor_terr, digits = 3), ")\n")
} else {
  cat("2. El TERRITORIO NO tiene efecto significativo (p =", 
      format(p_valor_terr, digits = 3), ")\n")
}
2. El TERRITORIO NO tiene efecto significativo (p = 0.377 )
Código
cat("=== Tuckey para ver difernecias entre tratamientos ===\n\n")
=== Tuckey para ver difernecias entre tratamientos ===
Código
# Diferencias en los tratamientos
tukey_result <- TukeyHSD(modelo_anova, "Tratamiento")
print(tukey_result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = Supervivencia ~ Tratamiento + Territorio, data = datos_experimento)

$Tratamiento
                             diff       lwr        upr     p adj
Pesticida_A-Control     -22.22667 -35.21194  -9.241391 0.0080304
Pesticida_B-Control     -25.63667 -38.62194 -12.651391 0.0047479
Pesticida_B-Pesticida_A  -3.41000 -16.39528   9.575275 0.6493822
Código
# 2. Medias de cada tratamiento
medias <- aggregate(Supervivencia ~ Tratamiento, data = datos_experimento, mean)
cat("\nSupervivencia promedio:\n")

Supervivencia promedio:
Código
print(medias)
  Tratamiento Supervivencia
1     Control      79.95000
2 Pesticida_A      57.72333
3 Pesticida_B      54.31333

Conclusiones

Ambos pesticidas reducen significativamente la supervivencia, pero no hay diferencia entre ellos.

(Sthle y Wold 1989; Janczyk y Pfister 2023)

Referencias

Janczyk, Markus, y Roland Pfister. 2023. «One-Way Analysis of Variance (ANOVA)». En, 97-125. Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-662-66786-6_8.
Sthle, Lars, y Svante Wold. 1989. «Analysis of Variance (ANOVA)». Chemometrics and Intelligent Laboratory Systems 6 (4): 259-72. https://doi.org/10.1016/0169-7439(89)80095-4.