Ferramentas do usuário

Ferramentas do site


ecovirt:roteiro:math:bebador

Caminhada aleatória: o bêbado e o abismo - Roteiro no R

drunkard_walking.jpg

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)

Bebuns virtuais

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 timetmax tempo total da simulação ( medido em número de passos para frente)

Exemplo de uso

Vamos soltar dez bêbados, que cambaleiam 10 passos a cada intervalo, por dez mil intervalos de tempo. Use os parâmetros:

  • S =10
  • step = 10
  • x1max = 100
  • alleq = TRUE
  • tmax = 500

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)

Efeito do passo

O que acontece se deixamos os bêbados um pouco menos cambaleantes? Experimente reduzir para dois os passos laterais:

  • S = 10
  • step = 2
  • x1max = 100
  • alleq = TRUE
  • tmax = 500

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)

Efeito do tempo

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:

  • S = 10
  • step = 2
  • x1max = 100
  • alleq = TRUE
  • tmax = 1000

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)

Questão

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 é?

Populações virtuais

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 setobjeto no R nome para salvar os resultados da simulação em um objeto no R
Maximum timetmax tempo máximo da simulação na escala de tempo das taxas
Number of simulationsnsim número de populações a simular
Initial sizeN0 tamanho inicial das populações
birth rateb taxa instantânea de nascimentos ($b$)
death rated taxa instantânea de mortes ($d$)

Um exemplo

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.

  • tmax = 50
  • nsim = 20
  • N0 = 10
  • b = 0.2
  • d = 0.2

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)

Questões

  1. A qual parâmetro da simulação da caminhada do bêbados corresponde cada parâmetros da dinâmica estocástica de nascimentos e mortes?
  2. Os efeitos do passo e do tempo observados na simulação dos bêbados valem para as simulações das populações?
  3. Que consequências esses resultados têm para a conservação e manejo de populações?

Para saber mais

1)
como o bêbado dá sempre um passo adiante, apenas o deslocamento lateral é aleatório, e é o que nos interessa aqui. Usamos os passos para frente como medida de tempo
ecovirt/roteiro/math/bebador.txt · Última modificação: 2022/10/25 03:29 (edição externa)