1. Realizar el diagrama del ciclo de vida

  2. 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\))

  3. Simular y graficar la dinámica poblacional (durante 50 generaciones).

  4. 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.

SOLUCIÓN

Cargar la librería necesaria

library(popbio)

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)

n <- matrix(c(2722, 4656, 1692, 664, 372, 28, 523, 66), nrow = 8)

Mostrar la matriz A y el vector de población inicial n

print("Matriz de transición (A):")
## [1] "Matriz de transición (A):"
print(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
print("Población inicial (n):")
## [1] "Población inicial (n):"
print(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)

N <- A %*% n
print("Población en el siguiente año (N):")
## [1] "Población en el siguiente año (N):"
print(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

Simulación y gráfica de la dinámica poblacional durante 50 generaciones

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

generations <- 50
structure <- simulate_population(n, A, generations)

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")

Cálculo de parámetros demográficos

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 (λ):"
print(lambda_aproximado)
## [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):"
print(estructura_estable)
## [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 (λ):"
print(lambda_exacto)
## [1] 0.9717754
print("Estructura estable de edad exacta:")
## [1] "Estructura estable de edad exacta:"
print(estructura_estable_exacta)
## [1] 0.245143961 0.433630766 0.163251634 0.052000367 0.029676580 0.022729030
## [7] 0.046859936 0.006707727

Valor reproductivo (v)

valor_reproductivo <- reproductive.value(A)
print("Valor reproductivo (v):")
## [1] "Valor reproductivo (v):"
print(valor_reproductivo)
## [1]  1.000000  1.357228  3.687065  9.793621 19.494533 35.677198 33.177044
## [8] 39.185717

Análisis de sensibilidad y elasticidad

Usar popbio para cálculos automáticos

eigenA <- eigen.analysis(A)

Sensibilidad

sensitividades <- eigenA$sensitivities
print("Matriz de sensibilidad:")
## [1] "Matriz de sensibilidad:"
print(sensitividades)
##            [,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

elasticidades <- eigenA$elasticities
print("Matriz de elasticidad:")
## [1] "Matriz de elasticidad:"
print(elasticidades)
##            [,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

Interpretación

  • 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