Ferramentas do usuário

Ferramentas do site


ecovirt:roteiro:pop_str:pstr_mtr

Modelos populacionais matriciais - Roteiro em R

Matriz de Leslie/Leftkovicth

matrix.gif

O crescimento de uma população com estrutura etária pode ser projetado utilizando-se álgebra matricial. As matrizes de Leslie contêm informação sobre as taxas de natalidade e mortalidade de diferentes classes etárias de uma população e são uma forma robusta de calcular o crescimento populacional e fazer projeções da população para diferentes cenários. Uma generalização da matriz de Leslie ocorre quando a população é classificada por estádios de desenvolvimento(matriz de Leftkovicth), e não por idade . Neste caso, um indivíduo de uma dada classe pode, além de morrer, crescer e reproduzir, permanecer no mesmo estádio a cada intervalo de tempo. Nessa generalização, as taxas vitais básicas (crescimento, sobrevivência e reprodução) estão embutidas nos valores das matrizes de transição, onde computamos o efeito que o número de indivíduos em cada classe estado exerce nas outras no intervalo de tempo seguinte.

Objetivo

O objetivo desse exercício é entender como podemos tratar populações estruturadas com estes modelos matriciais. Vamos começar com multiplicação de matrizes e análises de autovalor e autovetor!

Entrando na matriz...

figurapill.jpg

Vamos imaginar que coletamos em campo dados de uma população de palmeiras. Encontramos que a população é estruturada nos estágios: semente (F1), juvenil (F2) e adulto (F3). Imagine que 50% dos jovens sobreviveram e tornaram-se adultos, 90% dos adultos sobreviveram e que a cada 100 sementes encontradas, foram encontrados 30 juvenis. Ainda, estimamos a produção de sementes por indivíduos juvenis em 0,5 e por adultos em 20. Ou seja:

matrizestruturada.jpeg

A partir dos dados obtidos podemos construir a nossa matriz de Leslie para a população em questão.

matrizestruturada2.jpeg

Num censo de número de indivíduos do sistema de estudo encontramos: 100 sementes, 250 juvenis e 50 adultos. O que nos dá um vetor de N(t) na condição inicial.

Vamos então fazer as projeções para esta população. No R, quando queremos fazer operações matriciais temos uma notação específica, para multiplicação de matriz, por exemplo usamos a notação %*%. E pronto! Ele faz a operação conforme as regrinhas matemáticas para isso.

# matriz de leslie
A <- matrix(c(0, 0.5, 20, 0.3, 0, 0, 0, 0.5, 0.9), nr = 3, byrow = TRUE)
A
# vetor de N iniciais da populacao 
N0 <- matrix(c(100, 250, 50), ncol = 1)

Para fazermos a projeção da população para o tempo (em anos) seguinte: $ N(t+1) = An(t) $

N1 <- A %*% N0
N1

Agora podemos projetar para um intervalo de tempo maior e ver o que acontece.

anos <- 10
N.projecoes <- matrix(0, nrow = nrow(A), ncol = anos+1)
N.projecoes[, 1] <- N0

for (i in 1:anos)
  {
    N.projecoes[, i + 1] <- A %*% N.projecoes[,i]
  }

par(mfrow=c(1,2))
matplot(0:anos, t(N.projecoes), type = "l", lty = 1:3, ylab = "n(t)", xlab = "Tempo (t)", xlim=)
legend("topleft", legend = c("Sementes", "Juvenil", "Adulto"),lty = 1:3, col = 1:3, bty = "n")
matplot(0:anos, log(t(N.projecoes)), type = "l", lty = 1:3, ylab = "n(t)", xlab = "Tempo (t)", xlim=)
legend("topleft", legend = c("Sementes", "Juvenil", "Adulto"),lty = 1:3, col = 1:3, bty = "n")
par(mfrow=c(1,1))

Exercício 1: Interpretando os gráficos

  • A projeção observada no gráfico (a) é condizente com o esperado pelo modelo de crescimento estruturado?
  • Como você interpretaria o padrão observado no gráfico (b).

Uma ajuda

Abaixo uma tem uma função para projetar populações a partir da matriz de transição e do estado inicial (tmax é o tempo máximo de projeção). É basicamente o que fizemos anteriormente, mas agora com a ajuda da função.

Função proj.mat

########################
## Projeção Matricial
########################
proj.mat<-function(n0, matproj, tmax)
{
res.mat<-matrix(NA,nrow=tmax+1,ncol=length(n0))
res.mat[1,]<-n0
	for(i in 2:(tmax+1))
	{
	res.mat[i,]=matproj %*% res.mat[(i-1),]
	}
return(res.mat)
}
######################
## rodando a função ##
######################
nEst<-proj.mat(n0=N0, matproj=A , tmax=10)
matplot(1:11, nEst, type="l")
#########################
# tamanho da população ##
########################
nPop<-apply(nEst,1, sum)
plot(1:11, nPop)

Taxa de Crescimento

$ \lambda = \frac{N_{t}}{N_{t-1}}$

Vamos ver como a taxa de crescimento se comporta!

#############################
# Crescimento da População ##
#############################
lambPop<-nPop[2:11]/nPop[1:10]
matplot(1:10, lambPop, type="b", pch=1)

Exercício

OK! Agora vamos fazer um exercício!
  • projete a população a tempos mais longos!
  • veja como se comporta a taxa de crescimento da população $\lambda= \frac{N_t}{N_{t-1}}$
  • faça o mesmo variando algum parâmetro da matriz de transição
  • como se comporta essa taxa ao longo do tempo? Ele muda (qualitativamente) quando muda algum parâmetro da população (transições, estado inicial)?

Distribuição de Estádios

Uma característica importante da população é a distribuição relativa dos estádios em relação ao total de indivíduos da população. Será que a importância (proporção de indivíduos) de um estágio pode variar ao longo da trajetória da população? Vamos ver?!

##########################
# proporção das classes ##
##########################
propEst<-nEst/nPop
matplot(1:11, propEst, type="l")

Exercício

  • 1. Qual a contribuição, em proporção de indivíduos, de cada classe (estágio) para o tamanho total da população a cada tempo?
  • 2. Essa contribuição das classes varia ao longo do tempo?
  • 3. Ilustre sua resposta com projeções de populações e gráficos dessas simulações.
  • 4. Calcule a taxa de crescimento da população a cada intervalo de tempo e faça o gráfico dessa taxa ao longo do tempo.

Exercício (de novo?!!)

  • De novo, aumente o tempo da simulação para ver o que acontece
  • modifique os parâmetros da matriz de transição e do estado inicial para ver se a trajetória se modifica e quais as semelhanças qualitativas do comportamento.

Análise de Perturbação

Podemo inferir a contribuição de cada elemento da matriz de transição para a composição da taxa de crescimento populacional através de análises de perturbação da matriz. A lógica é bastante intuitiva: se modificarmos uma das transições, mantendo todos os outros elementos da matriz constante, a variação no $\lambda$ será um reflexo da variação do elemento que modificamos. Desse modo, podemos analisar a contribuição de cada transição e consequentemente das taxas vitais em cada estádio para o crescimento da população. Na matriz do nosso exemplo a transição (no caso permanência) na fase de adulto é correspondente à taxa vital de sobrevivência nesse estádio. Podemos então fazer a seguinte pergunta:

  • Se algum fator afetar a probabilidade de sobrevivência do adulto, qual seria o efeito para a população?

Vamos responder essa pergunta?

###########################################
## Perturbando a sobrevivência do adulto ##
###########################################
pert=seq(0,1, by=.05)
resAd=rep(NA, length(pert)) 
names(resAd)<-paste("p", pert, sep="_")
for(i in 1:length(resAd))
{
Ai<-A
Ai[3,3]<-pert[i]
projAi= proj.mat(n0=N0,matproj=Ai, tmax=100)
nAi=apply(projAi, 1, sum)
lambi=nAi[101]/nAi[100]
resAd[i]<-lambi
}
resAd

Exercício

  • 1. A sobrevivência do adulto tem muita influência no destino da população?
  • 2. Se você fosse pensar em uma extração sustentável dessa população, como você poderia usar esta análise para fazer alguma recomendação para o manejo?
  • 3. A extinção da população é imediata quanto a taxa de sobrevivência de adultos é zero?
  • 4. Faça o mesmo para a transição de sementes para juvenil e compare com a sobrevivência do adulto. Qual transição é mais importante para o destino da população?
  • 5. A proporção dos estádios em relação ao total da população é diferente entre cenários da matriz com perturbação e da matriz original?

Para saber mais

Gotelli, N. J. 2007. Ecologia. Cap.3- Crescimento Populacional Estruturado. Pp. 49-82. Ed. Planta.

Gurevitch, J, Scheiner, S.M, Fox, G.A. 2009. Ecologia Vegetal. Cap. 5 - Ed. Artmed, São Paulo.

An Intuitive Guide to Linear Algebra, do excelente site Better explained.

Freckleton, R.P., Silva Matos, D.M., Bovi, M.L.A & Watkinson, A.R. 2003. Predicting the impacts of harvesting using structured population models: the importance of density-dependence and timing of harvest for a tropical palm tree. Journal of Applied Ecology, 40: 846-858.

Silva Matos, D.M., Freckleton, R.P. & Watkinson, A.R. 1999. The role of density dependence in the population dynamics of a tropical palm. Ecology, 80: 2635-2650.

Programas

Neste roteiro fizemos os cálculos passo a passo e com algumas aproximações numéricas para compreender os conceitos. Na vida real pesquisadores usam ferramentas computacionais que fazem os cálculos precisos e de um jeito mais prático. Para saber mais veja a apresentação ao pacote popbio do ambiente de programação estatística R:

ecovirt/roteiro/pop_str/pstr_mtr.txt · Última modificação: 2021/08/06 18:35 por adalardo