Imagine um bêbado andando sempre para frente em uma enorme planície, mas que tem um abismo em um dos lados. A cada passo para frente, ele cambaleia um certo número de passos para a direção do abismo ou da planície, com igual probabilidade.
Este é um dos processos Markovianos mais simples, chamado caminhada aleatória (random walk) em uma dimensão 1). Se o bêbado cai no abismo a caminhada acaba (e o bêbado também), uma condição que chamamos de fronteira de absorção (absorbing boundary).
Para prosseguir você deve ter o ambiente R com o pacote Ecovirtual instalado e carregado. Se você não tem e não sabe como ter, consulte a página de Instalação.
Depois de instalar o pacote, execute o R e carregue o pacote copiando o comando abaixo para a linha de comando do R:
library(EcoVirtual)
O que podemos prever deste processo? Vamos soltar alguns bêbados neste mundo virtual. Para isto usaremos a função randWalk
do pacote EcoVirtual, que tem os parâmetros a seguir.
Parâmetros da simulação:
Opção | Parâmetro | O que faz |
---|---|---|
Number of Species | S | número de bêbados |
Step Size | step | número de passos para o lado que cada bêbado dá a cada instante de tempo |
Maximum Initial Distance | x1max | máximo de distância dos bêbados ao abismo no início da simulação |
Initial Distance Equal | alleq=TRUE | selecionado TRUE: todos os bêbados com posição inicial igual a Maximum Initial Distance não selecionado FALSE: a posição inicial dos bêbados é um valor sorteado no intervalo 1 até Maximum Initial Distance , com igual probabilidade. |
Maximum time | tmax | tempo total da simulação ( medido em número de passos para frente) |
Vamos soltar dez bêbados, que cambaleiam 10 passos a cada intervalo, por dez mil intervalos de tempo. Use os parâmetros:
Como em todo processo estocástico, os resultados variam a cada realização. Por isso repita a simulação para se assegurar que entendeu os resultados. Você pode fazer isso repetindo muitas vezes com dez bêbados, ou simplesmente aumentando o número de bêbados, já que que são independentes.
Para fazer essa primeira simulação, copie o comando abaixo e cole-o na linha de comando do R:
randWalk(S=10, step=10, x1max=200, alleq=TRUE, tmax=1e4)
O que acontece se deixamos os bêbados um pouco menos cambaleantes? Experimente reduzir para dois os passos laterais:
Para essa simulação, copie o comando abaixo e cole-o na linha de comando do R:
randWalk(S=10, step=2, x1max=200, alleq=TRUE, tmax=1e4)
Bêbados que balançam menos estão menos sujeitos a terminar no abismo, ou é apenas uma questão de tempo? Certifique-se disto aumentando o número de intervalos de tempo:
Para essa simulação, copie o comando abaixo e cole-o na linha de comando do R:
randWalk(S=10, step=2, x1max=200, alleq=TRUE, tmax=5e4)
O bêbado tem igual probabilidade de cair para a direita e para esquerda, portanto ele anda em linha reta, na média. Esta caminhada aleatória equiprovável com fronteira de absorção tem um único desfecho, dado tempo suficiente. Qual é?
O mesmo modelo de caminhada aleatória pode ser aplicado à dinâmica de populações sob estocasticidade demográfica. Se supomos tempo contínuo, a qualquer momento cada população pode perder um indivíduo por uma morte, ou ganhar um por nascimento. Assim, as probabilidades de nascimentos e mortes por tempo são funções das taxas instantâneas de nascimentos $b$ e mortes $d$. Se as duas taxas são iguais, por exemplo, a probabilidade de uma morte é igual à de um nascimento.
A taxa instantânea de crescimento é a diferença entre taxas de nascimentos e mortes ($r=b-d$). A unidade de tempo de $r$ dá a escala de tempo da dinâmica, usada no parâmetro Maximum time
.
Para simular esta dinâmica estocástica de nascimentos e mortes no EcoVirtual, utilize a função estDem.
As opções controlam simulações de populações sob caminhada aleatória em tempo contínuo:
Opção | Parâmetro | Definição |
---|---|---|
Enter name for last simulation data set | objeto no R | nome para salvar os resultados da simulação em um objeto no R |
Maximum time | tmax | tempo máximo da simulação na escala de tempo das taxas |
Number of simulations | nsim | número de populações a simular |
Initial size | N0 | tamanho inicial das populações |
birth rate | b | taxa instantânea de nascimentos ($b$) |
death rate | d | taxa instantânea de mortes ($d$) |
Simule a trajetória de 20 populações em que as taxas de mortes e nascimentos sejam iguais, e que começam todas com 10 indivíduos. Deixe o tempo passar até 50 unidades. Para isso mude as opções de simulação para os valores a seguir. Você deve ver um gráfico de caminhada aleatória muito parecido com o dos bêbados. O número de populações extintas até Maximun time
está indicado no canto superior esquerdo do gráfico.
Para isso, copei o comando abaixo e cole na linha de comando do R:
estDem(N0=10, b=0.2, d=0.2, tmax=50, nsim=20)