load( url( "http://webs.um.es/jfcalvo/eco1.RData" ) )
Modelos de dinámica poblacional
Práctica 4, Ecología I
Grado en Biología
Introducción
En esta práctica analizaremos las características de diversos modelos de dinámica poblacional considerando poblaciones con crecimiento densoindependiente, con crecimiento densodependiente, y poblaciones estructuradas en clases de edades o estadios. Analizaremos también la influencia de diferentes parámetros que caracterizan la demografía de poblaciones estructuradas (distribución estable de edades/estadios y valor reproductivo) y realizaremos un ejercicio de introducción a los modelos estocásticos, aprendiendo a interprear el significado de la varianza de las tasas de crecimiento, y su influencia en las estimas de la probabilidad o riesgo de (cuasi)extinción.
En concreto, los objetivos de la práctica son:
Analizar la evolución temporal de poblaciones con crecimiento densoindependiente.
Analizar e interpretar las características generales de los modelos logísticos (crecimiento densodependiente).
Analizar la evolución temporal de poblaciones estructuradas con crecimiento densoindependiente.
Interpretar la influencia de la distribución de edades/estadios estable (DEE) y del valor reproductivo en la dinámica de poblaciones estructuradas.
Conocer las características generales de los modelos estocásticos, interpretando el efecto de la varianza de las tasas de crecimiento en la estimación de las probabilidades de (cuasi)extinción.
Preparación
Una vez iniciado R cargaremos el archivo de datos y funciones desde el servidor:
Usando ls()
podemos ver los objetos cargados. Utiliza la función info
para obtener información sobre ellos; por ejemplo: info( "modelo" )
o info( "ganso" )
. Teclea info()
para más información.
La función modelo
La función modelo
permite simular una amplia variedad de modelos de crecimiento poblacional: densoindependientes, densodependientes, de poblaciones estructuradas y estocásticos. Los argumentos que podemos proporcionar a la función son los siguientes:
modelo( lambda, r, R, K, theta, tiempo, N0, mod, comp, mat, n0, mu, s2, Nx, sim, CDF )
Los primeros cinco (
lambda
,r
,R
,K
ytheta
) son los parámetros de las ecuaciones discretas y continuas de crecimiento exponencial (densoindependiente) y logístico (densodependiente);
tiempo
permite fijar el horizonte temporal de proyección;
N0
establece el tamaño inicial de la población;
mod
específica el modelo logístico a utilizar:case
(por defecto),ricker
,theta
ybegon
;
comp
permite comparar los cuatro modelos logísticos (comp = TRUE
);
mat
indica una matriz de proyección (población estructurada);
n0
es el vector inicial de edades/estadios de una población estructurada;
mu
es la tasa de crecimiento de un modelo estocástico (\(\mu\));
s2
es la varianza de \(\mu\);
Nx
es el tamaño de población crítico (umbral de cuasiextinción en modelos estocásticos);
sim
es el número de simulaciones a realizar en un modelo estocástico; y
CDF
especifica, para modelos estocásticos, la opción de visualizar únicamente la función de distribución acumulada (que representa la probabilidad de extinción en función del tiempo;CDF = TRUE
).
Crecimiento densoindependiente
Recordemos el modelo discreto de crecimiento denso-independiente:
\[N_{t+1} = \lambda\ N_{t} = e^r \ N_t\] \[N_{t} = \lambda^{t}\ N_{0}= e^{rt} \ N_t\]
Realizaremos algunos cálculos sencillos en R, considerando por ejemplo una \(\lambda\) = 1.05 y un tamaño de población inicial (\(N_0\)) de 20 individuos:
<- 1.05
lambda <- 20
N0 <- NA
N
1 ] <- lambda * N0
N[ 2 ] <- lambda * N[ 1 ]
N[ 3 ] <- lambda * N[ 2 ]
N[ 4 ] <- lambda * N[ 3 ]
N[ 5 ] <- lambda * N[ 4 ]
N[ N
Podemos comprobar que el resultado final (\(N_5\)) se obtiene también usando la ecuación general:
^ 5 * N0 lambda
También podemos utilizar la función modelo
con los parámetros correspondientes:
modelo( lambda = 1.05, N0 = 20, tiempo = 5 )
La ecuación representa un modelo de crecimiento exponencial, que puede apreciarse mejor si consideramos un horizonte temporal mayor; por ejemplo:
modelo( lambda = 1.05, N0 = 20, tiempo = 25 )
La función modelo
proporciona los valores de los parámetros \(lambda\), \(r\) y \(R\), independientemente de cuál hayamos indicado. Comprueba que:
\[r = \log_e \lambda \qquad \qquad \lambda + 1=R \qquad \qquad R= e^r - 1\]
Ya sabemos, por otra parte, que si \(\lambda\) < 1, o \(r\) < 0, la población disminuirá con el tiempo. Por ejemplo:
modelo( r = -0.05, N0 = 20, tiempo = 25 )
Crecimiento densodependiente
Los modelos logísticos requieren la especificación de dos parámetros: la tasa de crecimiento (\(R\) o \(r\)) y la capacidad de carga (\(K\)), que representa el máximo número de individuos de la población. La función modelo
permite comparar cuatro modelos discretos de crecimiento logístico:
Case (2000):
\[N_{t + 1} = N_{t}\left( 1 + R\left( 1 - \frac{N_{t}}{K} \right) \right)\]
Ricker:
\[N_{t + 1} = N_{t} \ e^{r\left( 1 - \frac{N_{t}}{K} \right)}\]
\(\theta\)-logístico:
\[N_{t + 1} = N_{t} \ e^{r\left( 1 - \left( \frac{N_{t}}{K} \right)^{\theta} \right)}\]
Begon et al. (1988):
\[N_{t + 1} = \frac{N_{t} \ e^{r}}{1 + \frac{\left( e^{r} - 1 \right) \ N_{t}}{K}}\]
Podemos comparar los resultados de estos cuatro modelos con la función modelo
, incorporando el argumento comp = TRUE
. Por ejemplo:
modelo( R = 0.3, K = 50, N0 = 2, comp = TRUE )
Por defecto, la función considera \(\theta\) = 1, por lo que el modelo \(\theta\)-logístico y el modelo de Ricker son en este caso equivalentes. Para analizar el efecto de este parámetro sobre la dinámica de crecimiento de la población probaremos diferentes valores:
modelo( R = 0.3, K = 50, N0 = 2, theta = 1.5, comp = TRUE )
modelo( R = 0.3, K = 50, N0 = 2, theta = 0.5, comp = TRUE )
Para examinar con mayor detalle las características del crecimiento densodependiente, consideraremos el modelo logístico discreto de Case (2000), que es la opción por defecto en la función modelo
. Comprobaremos que conforme aumentan los valores de \(R\) esta ecuación produce oscilaciones (ciclos de periodo 2, 4, 8, etc.). Finalmente, cuando \(R\) > 2.57 se entra en un patrón no repetitivo conocido como caos.
modelo( R = 1.0, K = 100 )
modelo( R = 1.9, K = 100 )
modelo( R = 2.1, K = 100 )
modelo( R = 2.5, K = 100 )
modelo( R = 2.6, K = 100 )
Modelos de crecimiento de poblaciones estructuradas
Ejemplo de la población de correlimos semipalmeado
Utilizaremos en esta sección la matriz de proyección de la una población de correlimos semipalmeado (Calidris pusilla) con tres clases de edades (edad1
: 1 año, edad2
: 2 años, edad3+
: 3 o más años).
correlimos
Recuerda que el análisis demográfico de esta población podemos realizarlo con:
matriz( correlimos )
La dinámica de la población puede simularse utilizando el modelo discreto:
\[\mathbf{n}_{t + 1} = \mathbf{A} \, \mathbf{n}_{t}\] Para ello necesitaremos establecer un vector de tamaños de población (en este caso valores de densidad: número de individuos por hectárea):
<- c( 23.5, 14.2, 7.3 ) n0
En R, el producto matricial se expresa mediante %*%. Así podremos calcular la evolución temporal de la población en un plazo de varios años:
%*% n0 -> n1
correlimos %*% n1 -> n2
correlimos %*% n2 -> n3
correlimos %*% n3 -> n4
correlimos %*% n4 -> n5
correlimos data.frame( n0, n1, n2, n3, n4, n5 )
Podemos así analizar la evolución de la estructura de edades y comprobar que, con el tiempo: (1) la proporción relativa de tamaños entre las distintas clases de edades se estabiliza, aproximándose a la distribución estable de edades (DEE); y (2) el crecimiento poblacional anual (\(N_{t+1} / N_t\)) tiende a estabilizarse, aproximándose a la tasa de crecimiento anual (\(\lambda\)):
sum( n5 ) / sum( n4 )
/ sum( n5 ) n5
Con la función modelo
podemos proyectar la evolución de la población de correlimos en el tiempo y observar cómo se alcanza la distribución de edades estable:
modelo( mat = correlimos, n0 = n0, tiempo = 10 )
Ejemplo de la población de orca
Analizaremos ahora el significado del valor reproductivo residual ($vrr
) con otro ejercicio, para el que utilizaremos la matriz de proyección de la orca (Orcinus orca), disponible en el objeto orca
. Recordemos las características demográficas de esta población::
matriz( orca )
Simularemos cuatro proyecciones temporales a 100 años, partiendo en cada caso de distintas poblaciones iniciales de 10 hembras, todas ellos pertenecientes a la misma clase de edad:
modelo( mat = orca, n0 = c( 10, 0, 0, 0), tiempo = 100 )
modelo( mat = orca, n0 = c( 0, 10, 0, 0), tiempo = 100 )
modelo( mat = orca, n0 = c( 0, 0, 10, 0), tiempo = 100 )
modelo( mat = orca, n0 = c( 0, 0, 0, 10), tiempo = 100 )
Observa cómo cada proyección produce distintos resultados, lo cual es debido al distinto valor reproductivo de cada clase. Así, los tamaños poblacionales totales finales (\(N_{100}\)) son proporcionales al valor reproductivo residual de cada clase que, como recordarás, es igual a 1 para la primera clase de edad. En consecuencia, dividiendo dichos tamaños poblacionales por el correspondiente al de la primera clase, obtenemos aproximadamente el vector $vrr
:
c( 140.1022, 147.0057, 220.6248, 1.381434 ) / 140.1022
Modelos estocásticos
Los modelos estocásticos incorporan variabilidad en las parámetros demográficos, por lo que, a diferencia de los modelos deterministas, la estimación del tamaño poblacional en el futuro se basa en criterios probabilísticos. Una aplicación de gran interés de estos modelos es la estimación de probabilidades de extinción, o más concretamente de cuasiextinción (la probabilidad de alcanzar un tamaño de población crítico \(N_x\)). La función modelo
puede simular modelos estocásticos, lo cual nos permitirá comprobar el efecto de la varianza en las probabilidades de (cuasi)extinción. En el caso de los modelos estocásticos se utiliza el parámetro poblacional \(\mu\), que es el equivalente estocástico del parámetro \(r\) en un modelo determinista. [Recuerda que \(\mu = \log(\lambda)\).]
modelo( mu = 0.01, s2 = 0.05, N0 = 40, Nx = 10, tiempo = 20 )
Veamos ahora el efecto de incrementar la varianza:
modelo( mu = 0.01, s2 = 0.15, N0 = 40, Nx = 10, tiempo = 20 )
Dado que el número de simulaciones por defecto es bajo (20), las probabilidades estimadas son muy variables. Necesitaríamos un número de simulaciones mucho mayor para obtener una estima más precisa (por ejemplo 10000):
modelo( mu = 0.01, s2 = 0.15, N0 = 40, Nx = 10, tiempo = 20, sim = 10000 )
Evaluación
Realiza la prueba de evaluación disponible en la herramienta Exámenes del Aula Virtual.
Bibliografía
Begon M, Harper JL, Townsend CR (1988) Ecología. Omega, Barcelona.
Case TJ (2000) An Illustrated Guide to Theoretical Ecology. Oxford University Press, Oxford.
Caswell H (2001) Matrix Population Models. Sinauer, Sunderland MA.
Morris WF, Doak DF (2002) Quantitative Conservation Biology. Sinauer, Sunderland MA.
Piñol J, Martínez-Vilalta J (2006) Ecología con números. Lynx, Barcelona.
Descripción de las funciones, tablas de vida y matrices de proyección
Utiliza la función info
. Por ejemplo: info( "modelo" )
o info( "ganso" )
.