Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
ecovirt:roteiro:pop_str:pstr_mtr [2013/10/19 14:54] prado [Comparando as análises] |
ecovirt:roteiro:pop_str:pstr_mtr [2021/08/06 18:35] adalardo |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | <WRAP tabs> | ||
+ | * [[ecovirt:roteiro:pop_str:pstr_mtexcel|{{:ecovirt:logcalc.jpg?20|}}]] | ||
+ | * [[ecovirt:roteiro:pop_str:pstr_mtr|{{:ecovirt:rlogo.png?direct&35|}}]] | ||
+ | * [[ecovirt:roteiro:pop_str:pstr_mtrgoogle|{{:ecovirt:roteiro:pop_str:googleLogoPq.png?30|}}]] | ||
+ | </WRAP> | ||
+ | |||
+ | ====== Modelos populacionais matriciais - Roteiro em R ====== | ||
+ | |||
+ | ===== Matriz de Leslie/Leftkovicth ===== | ||
+ | |||
+ | {{:ecovirt:matrix.gif?150 |}} | ||
+ | |||
+ | 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... ===== | ||
+ | |||
+ | {{:ecovirt:roteiro:pop_str:figurapill.jpg?200 |}} | ||
+ | |||
+ | 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: | ||
+ | |||
+ | {{ :ecovirt:roteiro:pop_str:matrizestruturada.jpeg?400 |}} | ||
+ | |||
+ | |||
+ | A partir dos dados obtidos podemos construir a nossa matriz de Leslie para a população em questão. | ||
+ | |||
+ | {{ :ecovirt:roteiro:pop_str:matrizestruturada2.jpeg?300 |}} | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <code> | ||
+ | # 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) | ||
+ | </code> | ||
+ | |||
+ | Para fazermos a projeção da população para o tempo (em anos) seguinte: | ||
+ | $ N(t+1) = An(t) $ | ||
+ | |||
+ | <code> | ||
+ | N1 <- A %*% N0 | ||
+ | N1 | ||
+ | </code> | ||
+ | |||
+ | Agora podemos projetar para um intervalo de tempo maior e ver o que acontece. | ||
+ | |||
+ | <code> | ||
+ | |||
+ | 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)) | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <box 70% red | 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). | ||
+ | </box> | ||
+ | |||
+ | ==== 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. | ||
+ | |||
+ | <box blue 90% | Função proj.mat> | ||
+ | <code> | ||
+ | ######################## | ||
+ | ## 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) | ||
+ | |||
+ | </code> | ||
+ | </box> | ||
+ | |||
+ | ===== Taxa de Crescimento ===== | ||
+ | |||
+ | $ \lambda = \frac{N_{t}}{N_{t-1}}$ | ||
+ | |||
+ | Vamos ver como a taxa de crescimento se comporta! | ||
+ | |||
+ | <code> | ||
+ | ############################# | ||
+ | # Crescimento da População ## | ||
+ | ############################# | ||
+ | lambPop<-nPop[2:11]/nPop[1:10] | ||
+ | matplot(1:10, lambPop, type="b", pch=1) | ||
+ | </code> | ||
+ | |||
+ | <box 70% red| 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)? | ||
+ | |||
+ | </box> | ||
+ | |||
+ | |||
+ | |||
+ | ===== 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?! | ||
+ | <code> | ||
+ | ########################## | ||
+ | # proporção das classes ## | ||
+ | ########################## | ||
+ | propEst<-nEst/nPop | ||
+ | matplot(1:11, propEst, type="l") | ||
+ | </code> | ||
+ | |||
+ | <box 80% red | 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. | ||
+ | </box> | ||
+ | |||
+ | <box 70% red| 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. | ||
+ | |||
+ | </box> | ||
+ | |||
+ | ===== 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? === | ||
+ | |||
+ | <code> | ||
+ | ########################################### | ||
+ | ## 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 | ||
+ | </code> | ||
+ | |||
+ | <box 80% red| 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? | ||
+ | |||
+ | |||
+ | </box> | ||
+ | |||
+ | |||
+ | |||
+ | ===== 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. | ||
+ | |||
+ | [[http://betterexplained.com/articles/linear-algebra-guide/|An Intuitive Guide to Linear Algebra]], do excelente site [[http://betterexplained.com|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 [[http://www.inside-r.org/packages/cran/popbio/docs/01.Introduction|popbio]] do ambiente de programação estatística [[http://www.r-project.org|R]]: | ||
+ | |||
+ | * Stubben, C., & Milligan, B. (2007). Estimating and analyzing demographic models using the popbio package in R. [[http://www.jstatsoft.org/v22/i11|Journal of Statistical Software, 22(11), 1-23]]. | ||
+ | |||
+ | |||
+ | |||
+ | {{tag>R uma_população população_estruturada}} |