Realizar el diagrama del ciclo de vida
Calcular la tasa finita de crecimiento poblacional \(\lambda\), la estructura estable de edad \(w\) y el valor reproductivo \(v\) para la siguiente matriz de crecimiento poblacional. Recuerde revisar el PDF “Técnicas para el estudio de fauna silvestre” dado que ahí están los conceptos claves. \(A\) es la matriz de transición y \(n\) representa el número de individuos en el tiempo \(t\) (\(N_t\))
Simular y graficar la dinámica poblacional (durante 50 generaciones).
Calcular e interpretar la matriz de sensibilidad y elasticidad.
NOTA: Pueden hacer los cálculos manualmente como se presenta en esta guía o con el paquete popbio del cual también se presentan instrucciones más abajo.
Cargar la librería necesaria
Definir la matriz de transición (A)
A <- matrix(c(
0, 0, 0, 0, 0, 2.22, 3.38, 4.38,
0.716, 0.567, 0, 0, 0, 0, 0, 0,
0, 0.149, 0.576, 0, 0, 0, 0, 0,
0, 0, 0.149, 0.504, 0, 0, 0, 0,
0, 0, 0, 0.235, 0.56, 0, 0, 0,
0, 0, 0, 0, 0.225, 0.678, 0, 0,
0, 0, 0, 0, 0, 0.249, 0.851, 0,
0, 0, 0, 0, 0, 0, 0.016, 0.86
), nrow = 8, byrow = TRUE)Definir la población inicial (n)
Mostrar la matriz A y el vector de población inicial n
## [1] "Matriz de transición (A):"
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 0.000 0.000 0.000 0.000 0.000 2.220 3.380 4.38
## [2,] 0.716 0.567 0.000 0.000 0.000 0.000 0.000 0.00
## [3,] 0.000 0.149 0.576 0.000 0.000 0.000 0.000 0.00
## [4,] 0.000 0.000 0.149 0.504 0.000 0.000 0.000 0.00
## [5,] 0.000 0.000 0.000 0.235 0.560 0.000 0.000 0.00
## [6,] 0.000 0.000 0.000 0.000 0.225 0.678 0.000 0.00
## [7,] 0.000 0.000 0.000 0.000 0.000 0.249 0.851 0.00
## [8,] 0.000 0.000 0.000 0.000 0.000 0.000 0.016 0.86
## [1] "Población inicial (n):"
## [,1]
## [1,] 2722
## [2,] 4656
## [3,] 1692
## [4,] 664
## [5,] 372
## [6,] 28
## [7,] 523
## [8,] 66
Calcular la población en el siguiente año (Nt+1)
## [1] "Población en el siguiente año (N):"
## [,1]
## [1,] 2118.980
## [2,] 4588.904
## [3,] 1668.336
## [4,] 586.764
## [5,] 364.360
## [6,] 102.684
## [7,] 452.045
## [8,] 65.128
Crear función de proyección poblacional
simulate_population <- function(n, A, generations) {
structure <- matrix(0, nrow = generations, ncol = length(n))
for (i in 1:generations) {
n <- A %*% n
structure[i, ] <- as.numeric(n) # Convertir a vector numérico
}
return(structure)
}Simular
Graficar dinámica poblacional en escala logarítmica
matplot(1:generations, log(structure), type = "l", xlab = "Generaciones", ylab = "Log(Población)", main = "Dinámica Poblacional")Tasa finita de crecimiento poblacional (lambda)
lambda_aproximado <- sum(structure[generations, ]) / sum(structure[generations - 1, ])
print("Tasa finita de crecimiento poblacional aproximada (λ):")## [1] "Tasa finita de crecimiento poblacional aproximada (λ):"
## [1] 0.9717787
Estructura estable de edad (w)
estructura_estable <- structure[generations, ] / sum(structure[generations, ])
print("Estructura estable de edad (w):")## [1] "Estructura estable de edad (w):"
## [1] 0.245146264 0.433630113 0.163249591 0.051999633 0.029676637 0.022729786
## [7] 0.046860377 0.006707599
Calcular eigenvalue dominante y eigenvector dominante
valores_propios <- eigen(A)
lambda_exacto <- Re(valores_propios$values[1])
estructura_estable_exacta <- Re(valores_propios$vectors[, 1]) / sum(Re(valores_propios$vectors[, 1]))
print("Tasa de crecimiento exacta (λ):")## [1] "Tasa de crecimiento exacta (λ):"
## [1] 0.9717754
## [1] "Estructura estable de edad exacta:"
## [1] 0.245143961 0.433630766 0.163251634 0.052000367 0.029676580 0.022729030
## [7] 0.046859936 0.006707727
Valor reproductivo (v)
## [1] "Valor reproductivo (v):"
## [1] 1.000000 1.357228 3.687065 9.793621 19.494533 35.677198 33.177044
## [8] 39.185717
Usar popbio para cálculos automáticos
Sensibilidad
## [1] "Matriz de sensibilidad:"
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.04758385 0.08417021 0.03168808 0.01009357 0.005760394 0.004411835
## [2,] 0.06458214 0.11423819 0.04300795 0.01369928 0.007818169 0.005987867
## [3,] 0.17544472 0.31034102 0.11683599 0.03721564 0.021238945 0.016266721
## [4,] 0.46601817 0.82433120 0.31034102 0.09885259 0.056415118 0.043207840
## [5,] 0.92762487 1.64085904 0.61774426 0.19676941 0.112296193 0.086006662
## [6,] 1.69765832 3.00295743 1.13054180 0.36011026 0.205514721 0.157401909
## [7,] 1.57869136 2.79251890 1.05131672 0.33487478 0.191112847 0.146371641
## [8,] 1.86460712 3.29827018 1.24172000 0.39552373 0.225725170 0.172880914
## [,7] [,8]
## [1,] 0.009095782 0.001302008
## [2,] 0.012345052 0.001767122
## [3,] 0.033536736 0.004800588
## [4,] 0.089080643 0.012751375
## [5,] 0.177318023 0.025382041
## [6,] 0.324512016 0.046452004
## [7,] 0.301771158 0.043196782
## [8,] 0.356424735 0.051020123
Elasticidad
## [1] "Matriz de elasticidad:"
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.01007874
## [2,] 0.04758385 0.06665435 0.00000000 0.00000000 0.00000000 0.00000000
## [3,] 0.00000000 0.04758385 0.06925214 0.00000000 0.00000000 0.00000000
## [4,] 0.00000000 0.00000000 0.04758385 0.05126874 0.00000000 0.00000000
## [5,] 0.00000000 0.00000000 0.00000000 0.04758385 0.06471235 0.00000000
## [6,] 0.00000000 0.00000000 0.00000000 0.00000000 0.04758385 0.10981806
## [7,] 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.03750510
## [8,] 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
## [,7] [,8]
## [1,] 0.03163667 0.00586843
## [2,] 0.00000000 0.00000000
## [3,] 0.00000000 0.00000000
## [4,] 0.00000000 0.00000000
## [5,] 0.00000000 0.00000000
## [6,] 0.00000000 0.00000000
## [7,] 0.26426605 0.00000000
## [8,] 0.00586843 0.04515169
La matriz de sensibilidad muestra cómo cambia la tasa de crecimiento λ ante pequeños cambios en los elementos de la matriz de transición A.
La matriz de elasticidad mide el impacto proporcional de esos cambios en relación con la magnitud inicial de los elementos de A.
FIN