User Tools

Site Tools


en:ecovirt:roteiro:den_ind:di_tdr_passo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:ecovirt:roteiro:den_ind:di_tdr_passo [2022/09/15 13:44]
adalardo [Taxa de crescimento]
en:ecovirt:roteiro:den_ind:di_tdr_passo [2022/09/15 13:59] (current)
adalardo [Desafio]
Line 32: Line 32:
    
 $$ N_{T+1} = \lambda N_T$$ $$ N_{T+1} = \lambda N_T$$
-===== Projetando a População ​===== +===== Projecting the Population ======= 
-Podemos então projetar a nossa população a cada ciclo de tempo (gerações). Por exemplo:+We can then project our population to each time cycle (generations). For example:
  
-Se uma população com 100 indivíduos tem uma taxa per capita ​de natalidade de 0,8/ano e de mortalidade de 0,75/anoqual o tamanho esperado da população no próximo ano?+If a population of 100 has a per capita ​birth rate of 0.8/year and a death rate of 0.75/yearwhat is the expected population size in the next year?
  
 <​code>​ <​code>​
Line 44: Line 44:
 </​code>​ </​code>​
  
-Podemos também projetar a população para outras geraçõesusando iterações:+We can also project the population to other generationsusing iterations:
 <​code>​ <​code>​
 (Nt2=Nt1*lamb) (Nt2=Nt1*lamb)
Line 51: Line 51:
 </​code>​ </​code>​
  
-Note que:+Note that:
  
-  ​* $N_{T4}= N_{T0} \lambda \lambda\lambda\lambda $ +   * $N_{T4}= N_{T0} \lambda \lambda\lambda\lambda $ 
-  * $N_{T4}= N_{T0} \lambda^4 $+   ​* $N_{T4}= N_{T0} \lambda^4 $
  
-Essa equação recursiva pode ser escrita como:+This recursive equation can be written as:
  
 $$N_{T}=\lambda^T N_0 $$ $$N_{T}=\lambda^T N_0 $$
  
-Vamos pegar nosso exemplo anterior e projetá-lo para 10 ciclos de tempo.+Let's take our previous example and design it for 10 time cycles.
 <​code>​ <​code>​
 N0=100 N0=100
Line 71: Line 71:
 </​code>​ </​code>​
  
- +===== Initial Size ===== 
-===== Tamanho Inicial ​===== +Let's now explore the initial population size
-Vamos agora explorar o tamanho inicial da população.  +  * $N_0 = 10,20,30, 40$ 
-  * $N_0 = 10,20,30, 40 $ +  * $\lambda = 1.5$ 
-  * $\lambda = 1,5$ +  * $time = 1:10$
-  * $ tempo = 1:10$+
  
 <​code>​ <​code>​
Line 89: Line 88:
 colnames(Nt)<​-paste("​t",​ 0:10, sep=""​) colnames(Nt)<​-paste("​t",​ 0:10, sep=""​)
 rownames(Nt)<​-paste("​N0",​ c(10,​20,​30,​40),​ sep="​_"​) rownames(Nt)<​-paste("​N0",​ c(10,​20,​30,​40),​ sep="​_"​)
-Nt+nt
 matplot(0:​10,​t(Nt)) matplot(0:​10,​t(Nt))
 </​code>​ </​code>​
  
-Vamos agora colocar o mesmo gráfico em uma escala logarítmica para o eixo y.+Let's now put the same graph on a logarithmic scale for the y-axis.
 <​code>​ <​code>​
 par(mfrow=c(1,​2)) par(mfrow=c(1,​2))
Line 100: Line 99:
 </​code>​ </​code>​
  
-O que está acontecendo?? Parece que todas as populações crescem igualmente quando estamos em uma escala logarítmica+What's up?? It seems that all populations grow equally when we are on a logarithmic scale
-Vamos investigar a equação que estamos usando, $N_t=\lambda^T N_0$ e tirar o log dos dois lados da equação:+Let's investigate the equation we are using, $N_t=\lambda^T N_0$ and take the log of both sides of the equation:
   * $log{N_T} = log{\lambda^T N_0}$   * $log{N_T} = log{\lambda^T N_0}$
   * $ log{N_T} = (log{\lambda}) T + log{N_0} $   * $ log{N_T} = (log{\lambda}) T + log{N_0} $
-Essa equação lembra uma equação da reta $ y=ax+b $, onde o intercepto é $log(N_0)$ ​e a inclinação é iqual a $log{\lambda}$. +This equation resembles an equation of the line $ y=ax+b $, where the intercept is $log(N_0)$ ​and the slope is equal to $log{\lambda}$.
    
-==== Desafio ​==== +==== Challenge ​==== 
-  Demonstre graficamente que a inclinação das populações do exemplo acima são iguais a $log{\lambda}$. ​+   ​Graphically show that the slope of the populations in the example above is equal to $log{(\lambda)}$. 
 +===== Average Population Growth ===== 
 +{{:​ecovirt:​roteiro:​den_ind:​pardal.jpg?​200 |}}
  
-===== Média do Crescimento Populacional ===== +We will now investigate the population size data of a North American sparrow species ​(//​Melopiza ​melody//) starting from the premise that this population grows in discrete timesince births occur in short period of nesting time every year.
-{{pardal.jpg?​200 ​ |}} +
-Vamos agora investigar os dados do tamanho populacional de uma espécie de pardal norte-americano ​(//​Melopiza ​melodia//) partindo da premissa que essa população cresce em tempo discretojá que os nascimentos ocorrem em um intervalo curto de tempo de nidificação ​cada ano+
 <box 320 green> <box 320 green>
-{{parda.png?​300 ​ |}}+{{:​ecovirt:​roteiro:​den_ind:​parda.png?​300 |}}
  
-O gráfico representa a contagem de pardais cantores na cidade de Darrtown, OH, USA.  +The graph represents the singing sparrow count in the city of Darrtown, OH, USA. 
-Baixe os dodos do arquivo ​{{pardal.txt|}} ​no seu computador.+Download the data from the file {{:​ecovirt:​roteiro:​den_ind:​pardal.txt|}} ​on your computer.
 </​box>​ </​box>​
  
-Vamos calcular os $\lambda$ ​para os cinco primeiros intervalos:+Let's calculate the $\lambda$ ​for the first five intervals:
 <​code>​ <​code>​
-pardal<​-read.table("​pardal.txt", header=TRUE,​ sep="​\t",​ as.is=TRUE) +sparrow<​-read.table("​sparrow.txt", header=TRUE,​ sep="​\t",​ as.is=TRUE) 
-str(pardal+str(sparrow
-head(pardal+head(sparrow
-pardal6pardal[1:6,] +sparrow6sparrow[1:6,] 
-plot(pardal6$Count ~pardal6$Year)+plot(sparrow6$Count ~sparrow6$Year)
 lamb_pardal=pardal6$Count[2:​6]/​pardal6$Count[1:​5] lamb_pardal=pardal6$Count[2:​6]/​pardal6$Count[1:​5]
-lamb_pardal+lamb_sparrow
 </​code>​ </​code>​
  
-Agoravamos calcular a projeção da população pela média aritmética e geométrica dos $\lambda$ ​e desenhar as projeções junto com os dados observados!+Nowlet's calculate the population projection by the arithmetic and geometric mean of the $\lambda$ ​and draw the projections along with the observed data!
  
 <​code>​ <​code>​
  
-#media aritmetica+#arithmetic average
 (lamb.art = mean(lamb_pardal)) (lamb.art = mean(lamb_pardal))
-#media geometrica ​+#geometric average
 (lamb.geo = prod(lamb_pardal)^(1/​5)) (lamb.geo = prod(lamb_pardal)^(1/​5))
 tseq=0:5 tseq=0:5
-plot(tseq, ​pardal6$Count, pch=19) +plot(tseq, ​sparrow6$Count, pch=19) 
-N0=pardal6$Count[1] +N0=sparrow6$Count[1] 
-lines(tseq, N0*lamb.art^tseq,​ lty=2, col="​red"​)  +lines(tseq, N0*lamb.art^tseq,​ lty=2, col="​red"​) 
-lines(tseq, N0*lamb.geo^tseq,​ lty=3, col="​blue"​) ​+lines(tseq, N0*lamb.geo^tseq,​ lty=3, col="​blue"​)
  
 </​code>​ </​code>​
-  * Qual das duas médias parece se ajustar melhor aos dados observadosPor quê?+  * Which of the two means seems to fit the observed data betterWhy? 
 +==== Discrete Time Growth ====
  
-==== Crescimento Discreto ==== +Below is the code of a base function for projecting the growth of populationwhich can be used as a basic structure for other functions that we will develop in the courseIn this caseit is a function with argumentsnumber of individuals at time 0 (N0), population growth rate (lamb) ​and maximum time (tmax) ​of population projection.
- +
-Abaixo tem o código de uma função ​base para projeção do crescimento de uma populaçãoque pode ser usada como estrutura básica para outras funções que iremos desenvolver no cursoNo casoé uma funcão com argumentosnúmero de indivíduos no tempo 0 (N0), taxa de crescimento populacional ​(lamb) ​e o tempo máximo ​(tmax) ​de projeção da população +
 <​code>​ <​code>​
 cresc.geom= function(No=100,​ lamb=1.04, tmax=10) cresc.geom= function(No=100,​ lamb=1.04, tmax=10)
 { {
-resulta ​<- rep(NA,​tmax) +result ​<- rep(NA,​tmax) 
-resulta[1] <- No +result[1] <- No 
- for (i in 2:tmax) +for (i in 2:tmax) 
-+
- tam=resulta[i-1]*lamb +tam=result[i-1]*lamb 
- resulta[i]=tam +result[i]=tam 
-+
-return(resulta)+return(result)
 } }
  
 </​code>​ </​code>​
-Ao copiar esse código na  área de trabalho do R, um novo objeto é criadode nome //​cresc.geom//​. ​Ele é um objeto da classe função que você pode usá-lo digitando o seu nome e especificando seus argumentoscomo no exemplo a seguir:+By copying this code to the desktopa new object is creatednamed //​cresc.geom//​. ​It is an object of the function class that you can use it by typing its name and specifying its argumentsas in the following example:
  
-<​code>​  +<​code>​ 
-resultado ​<- cresc.geom(No=10,​ lamb=0.98, tmax=100)+result ​<- cresc.geom(No=10,​ lamb=0.98, tmax=100)
 </​code>​ </​code>​
  
-Note que o resultado da funçãonesse casoserá guardado no objeto ​//resultado//. Para fazer um gráfico dos resultados pode utilizar o código abaixo: +Note that the result of the functionin this casewill be stored in the object ​//result//. To graph the results you can use the code below:
- +
-  plot(1:​length(resultado),​ resultado) ​  +
- +
  
-===== Estocasticidade Ambiental ​===== +  plot(1:​length(result),​ result) 
-Flutuações ambientais podem exercer efeito na taxa de crescimento instantâneo da populaçãoDe uma forma simplespodemos imaginar que essa variação funcione como um ruído no //​r//, ​como se população em média tivesse uma taxamas a cada realização ela pudesse ser um tanto diferente devido a condições externas a ela própriaA implementação dessa estocasticidade ambiental em modelos contínuos é um pouco mais complicadamas podemos imaginá-la como realizações em algum intervalo pequeno de tempo.  +===== Environmental Stochasticity ​===== 
-Para um crescimento discreto ​construção de simulações com estocasticidade ambiental é mais intuitivoa cada realização o Lambda ​é afetado pela variação ambientalVamos fazê-la.+Environmental fluctuations can have an effect on the instantaneous population growth rateIn a simple waywe can imagine that this variation works like a noise in //​r//, ​as if the population on average had ratebut at each realization it could be somewhat different due to conditions external to itselfThe implementation of this environmental stochasticity in continuous models is a little more complicatedbut we can imagine it as realizations in some small time interval
 +For discrete growth, the construction of simulations with environmental stochasticity is more intuitiveat each realization the Lambda ​is affected by the environmental variationLet's do it.
  
 <​code>​ <​code>​
Line 197: Line 191:
 matplot(0:​5,​ Nt, type="​l",​ lty=2:7) matplot(0:​5,​ Nt, type="​l",​ lty=2:7)
 </​code>​ </​code>​
 +==== Challenge ====
  
-==== Desafio ====+It is possible to adapt our previous discrete growth function so that it can also model populations with environmental stochasticity!
  
-É possível adaptar a nossas função anterior de crescimento discreto para que possa também modelar populações com estocasticidade ambiental! +<box 70% green |Tips
- +The first step is always to think about what arguments we will need 
-<box 70% green |Dicas+In this casewe only have one more argument ​o **//​lamb.dp//​** : the standard deviation of //​lambda//​. ​The rest remains the sameremember that if **//​lamb.dp//​** ​is 0, our population is deterministicThat isthe same function can be used to simulate both scenarios.
-O primeiro passo sempre e pensar quais argumentos vamos precisar +
-Nesse casotemos apenas mais um argumento ​o **//​lamb.dp//​** : o desvio padrão de //​lambda//​. ​O resto continua o mesmolembre-se que se o **//​lamb.dp//​** ​for 0, nosso população é determinísticaOu sejaa mesma função pode se prestar para simular ambos cenários.+
  
  
 </​box>​ </​box>​
  
-{{tag>​R ​uma_população crescimento_exponencial tempo_discreto tempo_contínuo ​ estocasticidade_ambiental}}+{{tag>​R ​a_population exponential_growth discrete_time continuous_time stochasticity_environmental}} 
en/ecovirt/roteiro/den_ind/di_tdr_passo.1663260245.txt.gz · Last modified: 2022/09/15 13:44 by adalardo