Taller 2: Modelos Lineales Generalizados.

Ejercicio 1. La base de datos (grazing). Contiene información del número de aves observadas en un tipo de bosque (salvaje o sencillo) variable ’Grazed” y después de eliminar una serie de animales herbívoros.

A) Estime el ‘mejor’ modelo de regresión para determinar el número de aves.

#A1. Cargar Librerías y Datos: 
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(GLMsData))
suppressPackageStartupMessages(library(car))

# Cargar la base de datos
data(grazing)  # Asegúrate de que la base de datos esté disponible
glimpse(grazing)
Rows: 62
Columns: 3
$ When   <fct> Before, Before, Before, Before, Before, Before, Before, Before,…
$ Grazed <fct> Feral, Feral, Feral, Feral, Feral, Feral, Feral, Feral, Feral, …
$ Birds  <int> 2, 0, 0, 1, 4, 2, 3, 0, 1, 0, 4, 0, 0, 2, 30, 13, 0, 2, 0, 1, 0…

CONCLUSIONES

Número de Filas y Columnas. Filas: 62 y Columnas: 3

When, variable Tipo factor (). el cual contiene categorías que indican el momento de la observación, con valores como “Before” (Antes) y “After” (Después). Esta variable indica si los datos fueron recolectados antes o después de un evento.

Grazed, variable Tipo factor (). el cual contiene categorías como “Feral” (salvaje) y otras (que no se especifican en el resumen). Esta variable indica si el área fue pastoreada o no. Esta variable puede tener un impacto en el número de aves observadas.

Birds, variable Tipo entero (). El cual contiene un Rango de valores enteros (por ejemplo, 0, 1, 2, 3, 4, etc.), los cuales Representa el número de aves observadas en cada una de las 62 observaciones. Esta es la variable dependiente que se va a modelar.

Este dataframe está diseñado para estudiar el impacto del pastoreo y el momento de la observación en el número de aves observadas. La estructura sugiere que se puede aplicar un modelo de regresión para investigar estas relaciones.

# Convertir Variables
grazing$When <- ifelse(grazing$When == "Before", 1, 0)  # 1 para "Before", 0 para "After"
grazing$Grazed <- ifelse(grazing$Grazed == "Feral", 1, 0)

# Crear modelo inicial
modelo_grazing <- glm(Birds ~., data = grazing, family = poisson(link='log'))

# Resumen del modelo inicial
summary(modelo_grazing)

Call:
glm(formula = Birds ~ ., family = poisson(link = "log"), data = grazing)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   2.4787     0.0781   31.75   <2e-16 ***
When         -0.2148     0.0970   -2.21    0.027 *  
Grazed       -0.8032     0.0970   -8.28   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 528.07  on 61  degrees of freedom
Residual deviance: 454.46  on 59  degrees of freedom
AIC: 639.9

Number of Fisher Scoring iterations: 6

CONCLUSIONES

Modelo de Regresión:

Birds = 2.4787 - 0.2148 * When - 0.8032 * Grazed

Se utilizó un modelo de regresión de Poisson para analizar la relación entre el número de aves (Birds) y las variables independientes “When” y “Grazed”.

El intercepto del modelo es significativo y se estima en 2.4787, lo que indica que en el caso base (cuando When = 0 y Grazed = 0), se espera un número positivo de aves. La variable When tiene un coeficiente de -0.2148, con un p-valor de 0.027. Esto indica que, en promedio, el número de aves disminuye después de la eliminación de herbívoros. La variable Grazed tiene un coeficiente de -0.8032 (p-valor < 0.0000000000000002), lo que indica que los bosques considerados “salvajes” tienen menos aves en comparación con los bosques de referencia.

Ambas variables son estadísticamente significativas, con valores p muy bajos, lo que respalda que influyen en el número de aves observadas. El código de significancia indica que estas relaciones son altamente significativas (***).

La deviance nula es 528.07 y la deviance residual es 454.46, lo que indica que el modelo ajustado explica una parte de la variabilidad en los datos. Un AIC de 639.9 sugiere que el modelo tiene un ajuste adecuado.

Los resultados indican que tanto el momento de observación (When) como el tipo de bosque (Grazed) son factores relevantes que afectan el número de aves. Esto sugiere que la gestión del hábitat y las prácticas de manejo pueden influir en la conservación de estas poblaciones.

Establecer el mejor modelo utilizando AIC

# Establecer el mejor modelo utilizando AIC
# Realizar la selección de variables
step(modelo_grazing)
Start:  AIC=639.9
Birds ~ When + Grazed

         Df Deviance AIC
<none>           454 640
- When    1      459 643
- Grazed  1      523 707

Call:  glm(formula = Birds ~ When + Grazed, family = poisson(link = "log"), 
    data = grazing)

Coefficients:
(Intercept)         When       Grazed  
      2.479       -0.215       -0.803  

Degrees of Freedom: 61 Total (i.e. Null);  59 Residual
Null Deviance:      528 
Residual Deviance: 454  AIC: 640
# Ajustar el mejor modelo de regresión
mejor_modelo_grazing <- glm(Birds ~ When + Grazed, family = poisson(link = 'log'), data = grazing)

# Resumen del mejor modelo
summary(mejor_modelo_grazing)

Call:
glm(formula = Birds ~ When + Grazed, family = poisson(link = "log"), 
    data = grazing)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   2.4787     0.0781   31.75   <2e-16 ***
When         -0.2148     0.0970   -2.21    0.027 *  
Grazed       -0.8032     0.0970   -8.28   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 528.07  on 61  degrees of freedom
Residual deviance: 454.46  on 59  degrees of freedom
AIC: 639.9

Number of Fisher Scoring iterations: 6

Modelo Ajustado

Fórmula: Birds = 2.4787 - 0.2148 * When - 0.8032 * Grazed Comparación de modelos

# Configurar el área de gráficos para comparar modelos
par(mfrow=c(1, 2))

# Graficar las predicciones del modelo inicial
plot(predict(modelo_grazing), 
     col="blue", 
     main="Predicciones del Modelo Inicial",
     xlab = "Índice", 
     ylab = "Predicciones")
grid()  # Agregar cuadrícula

# Graficar las predicciones del mejor modelo
plot(predict(mejor_modelo_grazing), 
     col="red", 
     main="Predicciones del Mejor Modelo",
     xlab = "Índice", 
     ylab = "Predicciones")
grid()  # Agregar cuadrícula

CONCLUSIONES COMPARACION MODELO INICIAL Y MEJOR MODELO

Los coeficientes, errores estándar, y p-valores son idénticos en ambos modelos, lo que indica que no hay cambios en las estimaciones de las variables.

Tanto la desviación nula como la residual son las mismas, lo que sugiere que no hay mejora en el ajuste al pasar del modelo inicial al mejorado.

El AIC es igual, lo que también indica que no hay un ajuste mejorado.

En resumen, ambos modelos son equivalentes en términos de coeficientes, desviaciones y AIC. No hay evidencia de que el modelo mejorado haya aportado mejoras significativas sobre el modelo inicial.

DESCRIPCION DE LAS VARIABLES

  • La variable binaria Pastoreado (Grazed) refiere a la práctica de permitir que animales herbívoros (como ovejas, cabras o vacas, incluso aves) se alimenten de la vegetación en un área determinada. Hay dos tipos de pastoreo:

Pastoreado por herbívoros nativos: Especies herbívoras autóctonas se alimenten de la vegetación de un área específica.

Pastoreado por herbívoros salvajes: Animales no domesticados que se alimentan en un área sin intervención humana, lo que puede tener efectos sobre la vegetación y el suelo.

Salvaje (Feral = 1): Se refiere a animales que viven en su hábitat natural sin domesticación.

Referencia (Reference = 0): El Se refiere a un grupo de comparación en un estudio.

  • La variable “When” Se refiere a dos niveles temporales en los que se realiza el pastoreo. Hay 2 condiciones:

Before (Antes = 1): Condición del área antes de que los herbívoros pastoreen.

After (Después = 0): Condición del área después de que los herbívoros han pastoreado.

B) Existe algún dato atípico o influyente? Muestre los estadísticos que sustenten dicha afirmación.

# Configurar el área de gráficos para mostrar dos gráficos
par(mfrow=c(1, 2))

# Graficar los residuos absolutos del modelo
plot(abs(residuals(mejor_modelo_grazing)), 
     main="Residuos Absolutos", 
     ylab="Residuos", 
     xlab="Índice")
abline(h=2, col="red")  # Línea de corte en 2

# Graficar los residuos de Pearson
plot(abs(residuals(mejor_modelo_grazing, type="pearson")), 
     main="Residuos de Pearson", 
     ylab="Residuos", 
     xlab="Índice")
abline(h=2, col="red")  # Línea de corte en 2

# Crear un dataframe para los residuos
atipicos <- data.frame(
  deviance = abs(residuals(mejor_modelo_grazing)),
  pearson = abs(residuals(mejor_modelo_grazing, type="pearson"))
)

# Filtrar los puntos atípicos
atipicos_filtrados <- atipicos[atipicos$deviance > 2 & atipicos$pearson > 2, ]; atipicos_filtrados
   deviance pearson
2     2.936   2.076
3     2.936   2.076
8     2.936   2.076
10    2.936   2.076
12    2.936   2.076
13    2.936   2.076
15    8.065  12.377
16    3.366   4.187
17    2.936   2.076
19    2.936   2.076
21    4.386   3.102
22    2.500   2.134
23    3.566   2.779
24    2.665   3.024
26    6.702   8.827
30    3.566   2.779
31    5.242   6.571
34    3.268   2.311
35    2.139   2.449
39    3.268   2.311
42    4.006   5.045
44    3.268   2.311
47    3.109   3.747
50    4.292   5.477
52    4.110   3.164
55    4.170   4.945
56    2.370   2.628
57    2.271   2.005
58    2.271   2.005
59    2.667   2.295
60    2.667   2.295

CONCLUSIONES

En el código anterior, se generan dos gráficos para analizar los residuos del modelo mejor_modelo_grazing.

El primer gráfico muestra los residuos absolutos, donde se puede observar que hay valores que superan la línea roja en h=2, lo que indica la presencia de posibles puntos atípicos.

En el segundo gráfico, que representa los residuos de tipo Pearson, se nota que hay una mayor concentración de datos agrupados en torno a la línea de h=2, pero también se identifican algunos valores que sobrepasan este umbral, sugiriendo la presencia de más puntos atípicos.

Además, se crea un dataframe llamado atipicos, que contiene los residuos absolutos y los residuos de tipo Pearson. Se filtran las observaciones que superan el valor de 2 en ambas métricas, lo que permite identificar de manera clara los puntos atípicos en el análisis.

GRAFICOS INTERACTIVOS

# Instala y carga el paquete plotly
suppressPackageStartupMessages(library(plotly))

# Calcular los residuos
deviance_grazing <- abs(residuals(mejor_modelo_grazing))
pearson_grazing <- abs(residuals(mejor_modelo_grazing, type = "pearson"))

# Crear un dataframe para los residuos
atipicos <- data.frame(deviance = deviance_grazing, pearson = pearson_grazing)

# Crear gráficos interactivos
p1 <- plot_ly(x = seq_along(deviance_grazing), y = deviance_grazing, type = 'scatter', mode = 'lines+markers', 
              name = 'Residuos Absolutos', marker = list(color = 'blue')) %>%
      layout(title = "Residuos Absolutos",
             xaxis = list(title = "Índice"),
             yaxis = list(title = "Valor de Residuos")) %>%
      add_lines(y = rep(2, length(deviance_grazing)), line = list(color = 'red', dash = 'dash'), name = "Línea de Corte")

p2 <- plot_ly(x = seq_along(pearson_grazing), y = pearson_grazing, type = 'scatter', mode = 'lines+markers', 
              name = 'Residuos de Pearson', marker = list(color = 'green')) %>%
      layout(title = "Residuos de Pearson",
             xaxis = list(title = "Indice"),
             yaxis = list(title = "Valor de Residuos")) %>%
      add_lines(y = rep(2, length(pearson_grazing)), line = list(color = 'red', dash = 'dash'), name = "Línea de Corte")

# Mostrar los gráficos
p1
A marker object has been specified, but markers is not in the mode
Adding markers to the mode...
p2
A marker object has been specified, but markers is not in the mode
Adding markers to the mode...

DETECCION DE DATOS INFLUYENTES

suppressPackageStartupMessages(library(car))
par(mfrow=c(1,1))
#influence.measures(mejor_modelo_grazing)
influencePlot(mejor_modelo_grazing)

   StudRes     Hat    CookD
15  8.4002 0.03475 1.904231
26  7.1159 0.06832 2.044550
52 -4.2045 0.07269 0.282029
53 -0.5945 0.07269 0.008757

CONCLUSIONES

Los puntos 15 y 26 son candidatos a ser considerados influyentes debido a sus altos valores de residuos estandarizados y Cook’s Distance.

Los puntos 52 y 53 parecen tener menos influencia y no son considerados outliers significativos.

Se recomienda un análisis adicional con un ornitólogo sobre los puntos influyentes (15 y 26) para determinar si son errores o reflejan fenómenos reales.

cor(data.frame(Birds = grazing$Birds, When = grazing$When, Grazed = grazing$Grazed))
         Birds    When  Grazed
Birds   1.0000 -0.0893 -0.3425
When   -0.0893  1.0000  0.0000
Grazed -0.3425  0.0000  1.0000

GRAFICO INTERACTIVO

# Instala y carga los paquetes necesarios
#suppressPackageStartupMessages(install.packages("plotly"))
#suppressPackageStartupMessages(install.packages("reshape2"))  # Asegúrate de tener reshape2
suppressPackageStartupMessages(library(plotly))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(reshape2))

# Calcular la matriz de correlación
cor_matrix <- cor(data.frame(Birds = grazing$Birds, When = grazing$When, Grazed = grazing$Grazed))

# Convertir la matriz de correlación en un formato largo
cor_long <- melt(cor_matrix)

# Crear el gráfico de correlación interactivo
p <- ggplot(cor_long, aes(Var1, Var2, fill = value)) +
  geom_tile() +
  scale_fill_gradient2(limit = c(-1, 1), low = "blue", mid = "white", high = "red", 
                       name = "Correlación") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(title = "Matriz de Correlación Interactiva", x = "", y = "")

# Convertir el gráfico a uno interactivo
ggplotly(p)

A continuación, te mostraré cómo implemento dos enfoques comunes:

Eliminar los datos atípicos y ajustar el modelo después de la eliminación. También incluiré cómo evalúo el impacto de estos cambios en los resultados finales.

suppressPackageStartupMessages(library(car))

# Calcular las medidas de influencia
influence_measures_grazing <- influence.measures(mejor_modelo_grazing)

# Extraer los residuos estandarizados y Cook's Distance
stud_res_grazing <- rstudent(mejor_modelo_grazing)  # Residuos estandarizados
cook_d_grazing <- cooks.distance(mejor_modelo_grazing)  # Cook's Distance

# Identificar los índices de los puntos atípicos
# Aquí consideramos como outliers aquellos con residuos estandarizados > 2 o Cook's Distance > 1
outliers_grazing <- c(15,26); outliers_grazing
[1] 15 26
# Eliminar los puntos atípicos del dataframe
grazing_cleaned <- grazing[-outliers_grazing, ]

# Ver el nuevo dataframe sin los valores atípicos
head(grazing_cleaned)
  When Grazed Birds
1    1      1     2
2    1      1     0
3    1      1     0
4    1      1     1
5    1      1     4
6    1      1     2
# Ajustar el modelo de regresión Poisson sin outliers
modelo_grazing_cleaned <- glm(Birds ~ When + Grazed, family = poisson(link = "log"), data = grazing_cleaned)

# Resumen del nuevo modelo
summary(modelo_grazing_cleaned)

Call:
glm(formula = Birds ~ When + Grazed, family = poisson(link = "log"), 
    data = grazing_cleaned)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   2.4851     0.0801   31.04  < 2e-16 ***
When         -0.5685     0.1105   -5.15  2.7e-07 ***
Grazed       -0.8176     0.1055   -7.75  9.4e-15 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 415.47  on 59  degrees of freedom
Residual deviance: 326.80  on 57  degrees of freedom
AIC: 501.5

Number of Fisher Scoring iterations: 5

Nueva Fórmula de Regresión

Con outliers

Birds=2.4851−0.5685⋅When−0.8176⋅Grazed

Sin Outliers

Birds = 2.4787 - 0.2148 * When - 0.8032 * Grazed

CONCLUSIONES

Intercepto. Anterior: 2.4787. Nuevo: 2.4851: El intercepto es ligeramente mayor en el nuevo modelo, lo que indica que el valor esperado de Birds es un poco más alto cuando ambas variables independientes son cero.

Coeficiente de When. Anterior: -0.2148. Nuevo: -0.5685: El nuevo modelo muestra un efecto negativo más fuerte del When en el número de aves observadas. Esto sugiere que a medida que cambia el tiempo de pastoreo, el impacto en la población de aves es más significativo que lo indicado por el modelo anterior.

Coeficiente de Grazed. Anterior. -0.8032. Nuevo: -0.8176. Aunque ambos modelos muestran un efecto negativo considerable del Grazed, el nuevo modelo tiene un coeficiente levemente más alto, lo que sugiere que la práctica de pastoreo reduce aún más la población de aves después de eliminar los outliers.

En resumen, la eliminación de los datos atípicos ha llevado a estimaciones de coeficientes más significativas, especialmente para la variable When. Esto resalta la importancia de los efectos temporales en la población de aves, lo que podría estar en línea con variaciones estacionales o ciclos de pastoreo.

Aunque ambos modelos muestran un efecto negativo significativo del Grazed, la ligera variación en el coeficiente sugiere que la relación sigue siendo robusta, incluso después de manejar los outliers.

La comparación entre los modelos resalta cómo la eliminación de datos atípicos puede proporcionar una mejor visión de las relaciones subyacentes en los datos. Esto es crucial para realizar inferencias más precisas sobre la dinámica entre el pastoreo y la población de aves.

Es importante seguir evaluando el impacto de diferentes prácticas de manejo en la biodiversidad. Los resultados sugieren que las decisiones sobre el manejo del pastoreo deben considerar las variaciones en el tiempo para mitigar los efectos negativos en la población de aves.

En resumen, el nuevo modelo ofrece una comprensión más clara y robusta de cómo las variables When y Grazed influyen en el número de aves observadas, gracias a la eliminación de datos atípicos.

3. Prueba sobre los coeficientes estimados

Tecnicamente Ho: b=0

Ho: La variable X NO influye sobre Y Ha: La variable X SI influye sobre Y

coef(mejor_modelo_grazing)
(Intercept)        When      Grazed 
     2.4787     -0.2148     -0.8032 

CONCLUSIONES

EL valor del Intercepto (2.4787),representa el logaritmo del número esperado de aves cuando las variables When y Grazed son cero. Indica el punto de partida del modelo.

El coeficiente negativo de When (-0.2148), sugiere que, en promedio, el número de aves disminuye en aproximadamente un 21.48% cuando se observa después de la eliminación de herbívoros, manteniendo constante la variable Grazed, lo que indica que el tiempo de observación influye negativamente en la cantidad de aves. El coeficiente Grazed (-0.8032), también es negativo y muestra que el número de aves es significativamente menor en áreas donde hay pastoreo en comparación con áreas de referencia. Esto implica que el pastoreo tiene un efecto adverso en la población de aves.

En resumen, ambos coeficientes de las variables When y Grazed son significativos, indicando que afectan de manera importante la cantidad de aves observadas. Estos resultados sugieren la necesidad de considerar prácticas de manejo y monitoreo en áreas afectadas por el pastoreo, así como evaluar el impacto de la eliminación de herbívoros sobre la población de aves. El modelo revela que tanto el tiempo de observación como el tipo de área son factores críticos en la dinámica de las poblaciones de aves, lo que podría tener implicaciones para la conservación y gestión de ecosistemas.

Y = La probabilidad de observar un determinado número de aves en un tipo específico de bosque, ya sea salvaje o de referencia.

exp_when=1/exp(-0.2148)
exp_grazed=1/exp(-0.8032)
cat("El exponencial When es:", exp_when, "\n")
El exponencial When es: 1.24 
cat("El exponencial Grazed es:", exp_grazed, "\n")
El exponencial Grazed es: 2.233 

La probabilidad de observar aves disminuye 2.233 veces en áreas donde habitan animales salvajes, que viven en su hábitat natural sin domesticación. Además, la probabilidad de observar aves disminuye 1.24 veces en áreas donde se realiza el pastoreo.

# 4. Análisis de datos atípicos e influyentes
# Calcular la distancia de Cook para modelo_grazing
dist_cook_grazing <- cooks.distance(modelo_grazing)

# Identificar observaciones influyentes según la Distancia de Cook
infl_cook_grazing <- which(dist_cook_grazing > (4 / length(dist_cook_grazing)))
cat("Observaciones influyentes según Distancia de Cook:", infl_cook_grazing, "\n")
Observaciones influyentes según Distancia de Cook: 15 16 21 22 23 24 26 30 31 34 35 39 42 44 47 50 52 55 56 57 58 59 60 61 
# Visualización de la distancia de Cook
plot(dist_cook_grazing, type = "h", main = "Distancia de Cook", ylab = "Distancia", xlab = "Índice")
abline(h = 4 / length(dist_cook_grazing), col = "red", lty = 2)

# Calcular DfBeta
dfbeta_grazing <- dfbeta(modelo_grazing)

# Identificar observaciones influyentes según DfBeta
infl_dfbeta_grazing <- which(abs(dfbeta_grazing) > 1)
cat("Observaciones influyentes según DfBeta:", infl_dfbeta_grazing, "\n")
Observaciones influyentes según DfBeta:  
# Visualización de DfBeta
matplot(dfbeta_grazing, type = "b", main = "DfBeta", ylab = "DfBeta", xlab = "Índice")

C) Estime el promedio de aves esperado en un bosque salvaje antes de eliminar los animales herbívoros.

# Paso 1: Crear un dataframe para la predicción
john <- data.frame(When = 1, Grazed = 1)  # Ejemplo: bosque salvaje antes de eliminar herbívoros

# Paso 2: Predecir el promedio de aves esperado
# Predicción del promedio de aves esperado
prom_esperado_grazing <- predict(mejor_modelo_grazing, john, type = 'response')
cat("Promedio de aves esperado:", prom_esperado_grazing, "\n")
Promedio de aves esperado: 4.309 
# Cálculo directo del promedio de aves
datos_aves <- c(2, 0, 0, 1, 4, 2, 3, 0, 1, 0, 4, 0, 0, 2, 30, 13, 0, 2, 0, 1, 0, 3, 1, 19, 8, 37, 7, 10, 11, 1, 30, 6, 2, 0, 11, 7, 4, 3, 0, 3, 7, 17, 7, 0, 7, 4, 14, 6, 8, 18, 4, 1, 10, 10, 29, 21, 5, 5, 4, 4, 6, 15)
promedio_directo <- mean(datos_aves)
cat("Promedio de aves (cálculo directo):", promedio_directo, "\n")
Promedio de aves (cálculo directo): 6.935 
# Agregar comentarios
cat("\nModelo vs. Observaciones Empíricas: Aunque el modelo proporciona una estimación útil, es esencial complementarlo con observaciones empíricas y considerar otros posibles factores que puedan estar influyendo en la población de aves.\n")

Modelo vs. Observaciones Empíricas: Aunque el modelo proporciona una estimación útil, es esencial complementarlo con observaciones empíricas y considerar otros posibles factores que puedan estar influyendo en la población de aves.
cat("Importancia de las Observaciones Directas: Las observaciones directas de los datos son cruciales para validar y ajustar modelos predictivos, asegurando que reflejen con mayor precisión la realidad.\n")
Importancia de las Observaciones Directas: Las observaciones directas de los datos son cruciales para validar y ajustar modelos predictivos, asegurando que reflejen con mayor precisión la realidad.
cat("Análisis Adicional: Un análisis más profundo puede incluir la consideración de otras variables o factores que puedan estar afectando la población de aves, lo que podría mejorar la precisión del modelo.\n")
Análisis Adicional: Un análisis más profundo puede incluir la consideración de otras variables o factores que puedan estar afectando la población de aves, lo que podría mejorar la precisión del modelo.

CONCLUSIONES

Al usar mi modelo mejor_modelo_grazing, obtuve una predicción de que, en un escenario con When = 1 y Grazed = 1 (lo que podría representar un bosque salvaje antes de eliminar los animales herbívoros), se espera un promedio de aproximadamente 4.31 aves. Este resultado me ayuda a entender la población de aves bajo estas condiciones específicas.

Al calcular directamente el promedio de aves en mi conjunto de datos, obtuve un promedio de 6.94 aves. Este valor refleja la cantidad real de aves que observé en las condiciones registradas en mis datos.

Realizando su comparación noté una diferencia notable entre el promedio esperado (4.31) y el promedio calculado directamente (6.94). Esto sugiere que, aunque mi modelo estima una población menor de aves bajo las condiciones específicas analizadas, los datos empíricos muestran una cantidad más alta. Esta discrepancia me lleva a pensar que el modelo podría no capturar completamente la variabilidad o la complejidad de los factores que influyen en la población de aves, o que hay otros factores no considerados que podrían estar afectando la cantidad de aves observadas. Esto implica que, aunque el modelo y la predicción son útiles para hacer inferencias, deben complementarse con observaciones empíricas y un análisis más profundo.