Aqui você vê as diferenças entre duas revisões dessa página.
roteiros:matriz [2012/05/25 13:40] – [Entrando na matriz...] mortara | roteiros:matriz [2024/01/09 18:18] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 11: | Linha 11: | ||
Vamos começar com multiplicação de matrizes e análises de autovalor e autovetor! | Vamos começar com multiplicação de matrizes e análises de autovalor e autovetor! | ||
- | ===== Entrando na matriz... ===== {{ : | + | ===== Entrando na matriz... ===== |
+ | {{: | ||
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, | 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, | ||
Linha 64: | Linha 65: | ||
<box 70% red | Exercício 1: Interpretando os gráficos > | <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? | * A projeção observada no gráfico (a) é condizente com o esperado pelo modelo de crescimento estruturado? | ||
- | * Como você interpretaria o padrão | + | * Como você interpretaria o padrão observado no gráfico (b). |
</ | </ | ||
- | Vamos calcular a taxa de incremento para toda a população a cada intervalo de tempo, definida como $R(t)$ | ||
- | |||
- | $R(t) = N_{t+1}/ | ||
- | |||
- | < | ||
- | N.total <- apply(N.projecoes, | ||
- | Rs <- N.total[-1]/ | ||
- | plot(0: | ||
- | </ | ||
- | |||
- | <box 80% red | Exercício> | ||
- | * 1. Qual a contribuição, | ||
- | * 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. | ||
- | </ | ||
==== Uma ajuda ==== | ==== Uma ajuda ==== | ||
- | Abaixo 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, | + | Abaixo |
<box blue 90% | Função proj.mat> | <box blue 90% | Função proj.mat> | ||
Linha 98: | Linha 83: | ||
for(i in 2:(tmax+1)) | for(i in 2:(tmax+1)) | ||
{ | { | ||
- | res.mat[i, | + | res.mat[i, |
} | } | ||
return(res.mat) | return(res.mat) | ||
Linha 115: | Linha 100: | ||
</ | </ | ||
</ | </ | ||
+ | ===== Taxa de Crescimento | ||
+ | |||
+ | $ \lambda = \frac{N_{t}}{N_{t-1}}$ | ||
- | ===== Taxa de Crescimento | ||
Vamos ver como a taxa de crescimento se comporta! | Vamos ver como a taxa de crescimento se comporta! | ||
+ | |||
< | < | ||
############################# | ############################# | ||
Linha 123: | Linha 111: | ||
############################# | ############################# | ||
lambPop< | lambPop< | ||
- | matplot(1: | + | matplot(1: |
</ | </ | ||
Linha 130: | Linha 118: | ||
* projete a população a tempos mais longos! | * 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}}$ | * veja como se comporta a taxa de crescimento da população $\lambda= \frac{N_t}{N_{t-1}}$ | ||
- | * faça o mesmo variando | + | * faça o mesmo variando |
* como se comporta essa taxa ao longo do tempo? Ele muda (qualitativamente) quando muda algum parâmetro da população (transições, | * como se comporta essa taxa ao longo do tempo? Ele muda (qualitativamente) quando muda algum parâmetro da população (transições, | ||
Linha 146: | Linha 134: | ||
matplot(1: | matplot(1: | ||
</ | </ | ||
+ | |||
+ | <box 80% red | Exercício> | ||
+ | * 1. Qual a contribuição, | ||
+ | * 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 70% red| Exercício (de novo? | <box 70% red| Exercício (de novo? | ||
Linha 181: | Linha 176: | ||
<box 80% red| Exercício> | <box 80% red| Exercício> | ||
* 1. A sobrevivência do adulto tem muita influência no destino da população? | * 1. A sobrevivência do adulto tem muita influência no destino da população? | ||
- | * 2. A extinção da população é imediata quanto a taxa de sobrevivência de adultos é zero? | + | * 2. Se você fosse pensar em uma extração sustentável dessa população, |
- | * 3. 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? | + | * 3. A extinção da população é imediata quanto a taxa de sobrevivência de adultos é zero? |
- | * 4. 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? | + | * 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? | ||
Linha 234: | Linha 230: | ||
return(mat) | return(mat) | ||
} | } | ||
- | #estado inical | + | cory |
- | n0=c(10, | + | # estado inical |
+ | n0=matrix(c(10,5,2), ncol=1) | ||
## tempo 1 | ## tempo 1 | ||
- | n1 = n0 %*% cory | + | n1 = |
- | n1d= n0 %*% ddf(n0, | + | n1 |
+ | n1d= ddf(n0, | ||
n1 | n1 | ||
n1d | n1d | ||
## tempo 2 | ## tempo 2 | ||
- | n2 = n1 %*% cory | + | n2 = |
- | n2d=n1d %*% ddf(n1d,cory,h=10, st=3) | + | n2 |
+ | n2d= ddf(n1,cory,h=10, st=3)%*% n1 | ||
n2 | n2 | ||
n2d | n2d | ||
## tempo 3 | ## tempo 3 | ||
- | n3 = n2 %*% cory | + | n3 = cory %*% n2 |
- | n3d=n2d | + | |
n3 | n3 | ||
- | n3d | + | n3d= ddf(n2, |
+ | n2 | ||
+ | n2d | ||
</ | </ | ||
Linha 265: | Linha 265: | ||
for(i in 2:(tmax+1)) | for(i in 2:(tmax+1)) | ||
{ | { | ||
- | res.mat[i, | + | res.mat[i, |
} | } | ||
return(res.mat) | return(res.mat) | ||
Linha 275: | Linha 275: | ||
prop.estdd< | prop.estdd< | ||
matplot(0: | matplot(0: | ||
+ | ## tmax = 100 | ||
+ | res.corydd< | ||
+ | res.corydd | ||
+ | matplot(0: | ||
+ | prop.estdd< | ||
+ | matplot(0: | ||
</ | </ | ||
Linha 283: | Linha 288: | ||
*3. o estado inicial da população influencia a projeção quanto ao estado final da população? | *3. o estado inicial da população influencia a projeção quanto ao estado final da população? | ||
</ | </ | ||
- | |||
===== Autovalores e autovetores ===== | ===== Autovalores e autovetores ===== | ||
Linha 297: | Linha 301: | ||
O que acontece é que frequentemente em Ecologia ouvimos dizer de autovalores e autovetores. Isso aparece em: em análises multivariadas de ordenação; | O que acontece é que frequentemente em Ecologia ouvimos dizer de autovalores e autovetores. Isso aparece em: em análises multivariadas de ordenação; | ||
- | Para o nosso caso em crescimento populacional estruturado podemos encontrar o $\lambda$ assintótico simplesmente encontrando o autovalor dominante da matriz de projeção. Autovalores são representados por $ \lambda $ e correspondem | + | Para o nosso caso em crescimento populacional estruturado podemos encontrar o $\lambda$ assintótico simplesmente encontrando o autovalor dominante da matriz de projeção. Autovalores são representados por $ \lambda $ e correspondem |
<box 80% green |Resumindo> | <box 80% green |Resumindo> | ||
Linha 340: | Linha 344: | ||
w <- Re(aval.A$vectors[, | w <- Re(aval.A$vectors[, | ||
w | w | ||
- | round(w/ | + | round(w/ |
</ | </ | ||
Linha 368: | Linha 372: | ||
Podemos obter o autovalor esquerdo realizando uma análise de autovalor na matriz de projeção transposta. As posições do autovalor dominante direito e esquerdo são as mesmas. Extraímos apenas o autovetor esquerdo e o escalonamos, | Podemos obter o autovalor esquerdo realizando uma análise de autovalor na matriz de projeção transposta. As posições do autovalor dominante direito e esquerdo são as mesmas. Extraímos apenas o autovetor esquerdo e o escalonamos, | ||
+ | |||
+ | De novo com a nossa matriz " | ||
< | < | ||
Linha 400: | Linha 406: | ||
< | < | ||
+ | L1 <- Re(aval.A$values[1]) | ||
elas <- (A/L1) * S | elas <- (A/L1) * S | ||
round(elas, 3) | round(elas, 3) | ||
Linha 411: | Linha 418: | ||
==== Comparando as análises ==== | ==== Comparando as análises ==== | ||
Vamos agora fazer uma sequência de análises usando a álgebra matricial e depois compará-la com o pacote // | Vamos agora fazer uma sequência de análises usando a álgebra matricial e depois compará-la com o pacote // | ||
+ | |||
+ | E para finalizar, faremos os cálculos com o nosso modelo para o cacto. | ||
< | < | ||
Linha 423: | Linha 432: | ||
lamb | lamb | ||
abline(h=lamb, | abline(h=lamb, | ||
- | v=Re(eigen.cory$vectors[, | + | v.cory=Re(eigen.cory$vectors[, |
- | v | + | v.cory |
- | vr=v/v[1] | + | vr.cory=v.cory/v.cory[1] |
- | vr # agora sim o valor reprodutivo padronizado para escala da primeira classe | + | vr.cory # agora sim o valor reprodutivo padronizado para escala da primeira classe |
- | w=Re(eigen.tcory$vectors[, | + | w.cory=Re(eigen.tcory$vectors[, |
- | w/sum(w) | + | w.cory/sum(w.cory) |
prop.est[100, | prop.est[100, | ||
### sensibilidade | ### sensibilidade | ||
- | vms=vr%*%t(w) | + | vms.cory=vr.cory%*%t(w.cory) |
- | S=vms/ | + | S.cory=vms.cory/ |
### elasticidade | ### elasticidade | ||
- | (cory/ | + | (cory/ |
############################## | ############################## | ||
## conferindo nossos cálculos | ## conferindo nossos cálculos | ||
############################# | ############################# | ||
+ | # se voce ainda nao tem o pacote popbio, instale-o com o comando abaixo retirando a #: | ||
+ | # install.packages(" | ||
library(popbio) | library(popbio) | ||
eigen.analysis(cory) | eigen.analysis(cory) | ||
</ | </ | ||
+ | |||
+ | ===== Extração e Manejo ===== | ||
+ | |||
+ | [[exercicios: | ||
+ |