Introducción

Los lepidópteros (mariposas y polillas) constituyen uno de los grupos más diversos dentro de Insecta y desempeñan un papel fundamental en los ecosistemas, especialmente como polinizadores, herbívoros y presas para numerosos vertebrados e invertebrados. Su diversidad funcional y ecológica ha sido ampliamente documentada en Europa, donde este grupo contribuye de manera significativa al mantenimiento de redes de interacción planta–polinizador. Debido a su sensibilidad a cambios ambientales y a la estrecha relación que mantienen con sus plantas hospederas, los lepidópteros también son considerados excelentes bioindicadores de cambio climático y transformación del paisaje (Kingsolver & Buckley, 2023).

Una de las características más relevantes en la ecología de este grupo es su grado de especialización alimentaria. Algunas especies son monófagas o oligófagas, alimentándose únicamente de una o pocas especies o familias de plantas, mientras que otras son polífagas, consumiendo una amplia variedad de hospederos. Estas diferencias en especificidad influyen directamente en la distribución, abundancia, vulnerabilidad y resiliencia de las especies frente a perturbaciones ambientales (Vilcinskas, 2022). Por esta razón, entender qué rasgos biológicos están asociados con la probabilidad de que una especie sea generalista resulta clave para comprender patrones más amplios de dinámica poblacional, estabilidad de redes ecológicas y respuesta al cambio climático (Montserrat et al., 2021).

En este contexto, se decidió centrar el análisis de una base de datos sobre polinizadores europeos (que incluye abejas y otros Diptera, pero se usaron solo los datos de Lepidoptera), a través de la aplicación de un modelo de regresión logística múltiple, con el fin de explorar cómo ciertos rasgos ecológicos y funcionales se asocian o influyen con mayor fuerza la probabilidad de que una especie sea polífaga.Se consideraron las siguientes variables explicativas: Overwintering stage (etapa de invernación), Flight months average (promedio de meses de vuelo),Max voltinism (máximo número de generaciones por año), y Wingspan average (envergadura alar promedio).

Código

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(forcats)
library(car)
## Cargando paquete requerido: carData
## 
## Adjuntando el paquete: 'car'
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## The following object is masked from 'package:purrr':
## 
##     some
library(broom)
library(readxl)

#Se cargan los datos
datos <- read_excel("~/Bioestadistica/datos_lepidoptera.xlsx")

#Se asegura un formato binario
datos <- datos %>%
  mutate(HPS_polyphag = as.numeric(as.character(HPS_polyphag)))

#Se convierten las variables predictoras en numéricas
datos <- datos %>%
  mutate(
    FMo_Average = as.numeric(FMo_Average),
    Vol_max = as.numeric(Vol_max),
    Wsp_average = as.numeric(Wsp_average)
  )
#Se agrupan niveles raros de Overwintering_stage
datos <- datos %>%
  mutate(Overwintering_stage = fct_lump_min(OvS, min = 5))

#Se elimina categoría con solo 1 dato ("Other")
datos <- datos %>% 
  filter(Overwintering_stage != "Other")

#Se escalan variables continuas
datos <- datos %>%
  mutate(across(c(FMo_Average, Vol_max, Wsp_average), scale))

#Se crea el modelo para la regresión lógistica (glm), que en este caso es una múltiple binomial (family=binomial) para generalista (1) o especialista (0)

modelo <- glm(
  HPS_polyphag ~ Overwintering_stage + FMo_Average +
    Vol_max + Wsp_average,
  data = datos,
  family = binomial
)

summary(modelo)
## 
## Call:
## glm(formula = HPS_polyphag ~ Overwintering_stage + FMo_Average + 
##     Vol_max + Wsp_average, family = binomial, data = datos)
## 
## Coefficients:
##                         Estimate Std. Error z value Pr(>|z|)  
## (Intercept)              -0.9458     0.5946  -1.591   0.1117  
## Overwintering_stageE      0.2367     0.7878   0.300   0.7638  
## Overwintering_stageEL    -1.1453     0.9624  -1.190   0.2340  
## Overwintering_stageELPA  -0.1573     0.7762  -0.203   0.8394  
## Overwintering_stageL     -0.7653     0.6249  -1.225   0.2207  
## Overwintering_stageLP    -0.4274     0.8045  -0.531   0.5952  
## Overwintering_stageNA    -1.3121     0.7510  -1.747   0.0806 .
## Overwintering_stageP     -0.8910     0.6660  -1.338   0.1809  
## FMo_Average               0.2414     0.1204   2.005   0.0449 *
## Vol_max                   0.3145     0.1307   2.407   0.0161 *
## Wsp_average              -0.2215     0.1379  -1.606   0.1082  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 452.88  on 491  degrees of freedom
## Residual deviance: 427.10  on 481  degrees of freedom
##   (49 observations deleted due to missingness)
## AIC: 449.1
## 
## Number of Fisher Scoring iterations: 4
#Se evalua multicolinealidad
vif(modelo)
##                         GVIF Df GVIF^(1/(2*Df))
## Overwintering_stage 1.653442  7        1.036571
## FMo_Average         1.097903  1        1.047809
## Vol_max             1.365257  1        1.168442
## Wsp_average         1.236359  1        1.111917

Resultados y discusión

library(broom)
library(dplyr)
library(flextable)
## 
## Adjuntando el paquete: 'flextable'
## The following object is masked from 'package:purrr':
## 
##     compose
tabla_or <- tidy(modelo, exponentiate = TRUE, conf.int = TRUE) %>%
  mutate(
    Odds_Ratio = round(estimate, 3),
    CI_low = round(conf.low, 3),
    CI_high = round(conf.high, 3),
    p_value = round(p.value, 4)
  ) %>%
  select(term, Odds_Ratio, CI_low, CI_high, p_value)

flextable(tabla_or)

term

Odds_Ratio

CI_low

CI_high

p_value

(Intercept)

0.388

0.111

1.195

0.1117

Overwintering_stageE

1.267

0.271

6.147

0.7638

Overwintering_stageEL

0.318

0.038

1.922

0.2340

Overwintering_stageELPA

0.854

0.184

4.025

0.8394

Overwintering_stageL

0.465

0.141

1.703

0.2207

Overwintering_stageLP

0.652

0.131

3.215

0.5952

Overwintering_stageNA

0.269

0.061

1.204

0.0806

Overwintering_stageP

0.410

0.113

1.600

0.1809

FMo_Average

1.273

1.003

1.610

0.0449

Vol_max

1.370

1.057

1.767

0.0161

Wsp_average

0.801

0.605

1.041

0.1082

En los resultados del modelo de regresión logística se observa que dos variables presentan significancia estadística en la predicción de la probabilidad de que una especie sea polífaga: la duración promedio del vuelo (FMo_Average) y el voltinismo máximo (Vol_max). Ambas muestran odds ratios mayores que 1, lo que indica que aumentan la probabilidad de polifagia. En particular, por cada incremento en una unidad estandarizada del número de meses de vuelo, las probabilidades de ser polífaga aumentan aproximadamente un 27%, mientras que por cada incremento en el voltinismo máximo, la probabilidad aumenta alrededor de un 37%. Estos resultados sugieren que las especies con temporadas de actividad más largas o con más generaciones por año tienen mayores oportunidades de interactuar con múltiples plantas hospederas, favoreciendo patrones alimentarios más generalistas.

Las variables relacionadas con el estadio de hibernación (Overwintering_stage) no mostraron efectos estadísticamente significativos en ninguna de sus categorías. Aunque algunas categorías presentan odds ratios mayores o menores que 1, sus intervalos de confianza son amplios e incluyen el valor nulo (1), lo que nos da una alta incertidumbre en la estimación y por lo tanto no es un buen predictor por sí solo de la polifagia. La falta de significancia podría deberse a que algunas categorías presentan poco número de especies o a que este rasgo simplemente no está asociado al comportamiento alimentario.

Finalmente, la variable Wsp_average (temperatura promedio) mostró una tendencia negativa, es decir, odds ratio menor que 1, lo que sugiere que especies asociadas a temperaturas más bajas podrían tener menor probabilidad de ser polífagas. Sin embargo, la variable no alcanzó significancia estadística (p = 0.108), puede ser que el rango térmico de las especies estudiadas no genera suficiente variación para detectar un efecto o que es colineal con otras variables climáticas.

Gráficas

El modelo indica que los rasgos fenológicos (voltinismo y duración del vuelo) son los factores más fuertemente asociados a la probabilidad de polifagia en estas especies de lepidópteros y se puede ver de manera visual en las siguientes gráficas:

#Para visualizar el efecto de voltinismo
ggplot(datos, aes(x = Vol_max, y = HPS_polyphag)) +
  geom_jitter(height = 0.05, width = 0.05, alpha = 0.4) +
  stat_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
  labs(x = "Número máximo de generaciones (escalado)",
       y = "Probabilidad de ser polífaga",
       title = "Relación entre voltinismo y polifagia en Lepidópteros") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

La gráfica del número máximo de generaciones por año muestra una tendencia positiva: a mayor voltinismo, mayor probabilidad de que la especie sea polífaga. Esto sugiere que las especies multivoltinas, con varios ciclos reproductivos anuales, tienen más oportunidades de interactuar con distintas plantas hospederas, favoreciendo una dieta más generalista.

#Para visualizar los efectos de la duración de vuelo
ggplot(datos, aes(x = FMo_Average, y = HPS_polyphag)) +
  geom_jitter(height = 0.05, width = 0.05, alpha = 0.4, color = "#3b82f6") +
  stat_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE, color = "#1e3a8a") +
  labs(x = "Promedio de meses de vuelo",
       y = "Probabilidad de ser polífaga",
       title = "Duración del vuelo y probabilidad de polifagia en Lepidópteros") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Similar a la anterior, se observó una relación ascendente entre el promedio de meses de vuelo y la probabilidad de polifagia. Las especies con vuelos más prolongados, activas durante más meses del año, parecen tener una mayor exposición temporal a diferentes recursos florales y hospederos, lo que incrementa su flexibilidad alimentaria.

Conclusión

El análisis indica que la polifagia en lepidópteros europeos se asocia principalmente con rasgos del ciclo de vida y la actividad temporal. Las especies que presentan mayor número de generaciones por año (voltinism) y mayor duración del vuelo muestran una probabilidad significativamente más alta de ser polífagas, favorecen estrategias tróficas más generalistas, posiblemente como respuesta adaptativa a ambientes variables o a la disponibilidad estacional de recursos. En contraste, ni la etapa de invernación ni la envergadura alar mostraron un efecto relevante, lo que indica que la especialización alimentaria no está determinada por la morfología o las estrategias de hibernación, sino por rasgos dinámicos de la historia de vida.

Referencias

Kingsolver, J. G., & Buckley, L. B. (2023). Thermal adaptation in Lepidoptera under shifting environments. Phytoparasitica, 51(1), 3–17. https://doi.org/10.1007/s12600-022-01016-3

Vilcinskas, A. (2022). Transcriptional plasticity of Noctuidae feeding on multiple host plants. Ecology and Evolution, 12(7), e9123. https://doi.org/10.1002/ece3.9123

Montserrat, M., Ferrer, A., Ortiz‐Sánchez, F. J., & Rodríguez, A. (2021). Climate change effects on animal ecology: Butterflies and moths as a case study. Biological Reviews, 96(3), 1281–1300. https://doi.org/10.1111/brv.12705