====== Cássia Siqueira Cesar ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:img-5176.jpg?200|}}
Cursei minha graduação (Ciências Biológicas) e meu mestrado (Ecologia e Evolução) na UNIFESP - Diadema. Atualmente sou doutoranda no programa de Ecologia do IB-USP no Laboratório de Ecologia Evolutiva, sob orientação do Prof. Dr. Rodrigo Cogni.
Desde o mestrado estudo interações ecológicas e hoje trabalho com interações entre hospedeiro-simbionte-inimigo natural, usando o sistema //Drosophila-Wolbachia//-vírus como modelo para compreender questões coevolutivas.
====== Exercícios ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:exercicio_preparatorio.r| Ex.1}} |
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:exercicio_4.r|Ex. 4}} | {{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:exercicio_5.r |Ex. 5}} |{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:exercicio_7_2_o_modelo_mais_simples_possivel.r| Ex. 7.2}} |
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:ex_7b.r| Ex. 7B}} |
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:ex_8_-_simulacoes.r| Ex. 8}} |
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:exercicio_9_2.r| Ex. 9}}
\\
====== Trabalho final ======
=====Proposta A – Simulando a interação predador-presa=====
O modelo clássico predador-presa de Lotka-Volterra, representado pelas equações abaixo, é bastante familiar para os estudantes de ecologia populacional. A ideia desta função é criar uma simulação a partir deste modelo e gerar um gráfico para observar o comportamento das populações de presas e de predadores ao longo do tempo, o que seria bem legal e didático para os alunos de graduação se familiarizarem com o modelo e com o R.
**Modelo do crescimento populacional das presas**:
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:vitimas.png?170|}}
**Modelo do crescimento populacional dos predadores**:
{{:bie5782:01_curso_atual:alunos:trabalho_final:cassiasqr:predadores.png?170|}}
**Planejamento da função**
**Entrada**: predação (''Vi'', ''Pi'', ''r'', ''a'', ''q'', ''b'', ''t'', ''graph=T'')
''Vi'': número inicial de indivíduos na população de vítimas (presas);\\
''Pi'': número inicial de indivíduos na população de predadores;\\
''r'': taxa intrínseca de crescimento da população de vítimas;\\
''a'': eficiência de captura (efeito de um predador sobre o crescimento populacional per capta da população de vítimas);\\
''q'': taxa de mortalidade per capta de predadores;\\
''b'': eficiência de conversão (capacidade dos predadores em converter cada vítima em um incremento no crescimento populacional per capita dos predadores);\\
''t'': tempo;\\
''graph'': default = TRUE, retorna o gráfico do número de presas e de predadores ao longo do tempo.\\
Também vamos utilizar as fórmulas citadas acima, mas vamos calcular cada termo separado para ficar mais didático:
__Modelando o crescimento populacional de vítimas (''dV'')__:
''crescimento.v'' = ''r''*''Vi'' (taxa de crescimento da população de vítimas)\\
''captura.v'' = ''a*Vi*Pi'' (taxa de captura das vítimas)\\
Então, ''dV'' = ''crescimento.v'' – ''captura.v''\\
__Modelando o crescimento populacional de predadores (''dP'')__:
''crescimento.p'' = ''b''*''Vi''*''Pi'' (taxa de crescimento da população de predadores)\\
''mortalidade.p'' = ''q''*''Pi'' (taxa de mortalidade dos predadores)\\
Então, ''dP'' = ''crescimento.p'' - ''mortalidade.p''\\
**Premissas da função:**
- Todos os parâmetros devem ser numéricos;\\
- ''Vi'', ''Pi'' e ''t'' devem ter valores >= 1.
**Pseudo-código:**
- Entrada dos valores de ''Vi'', ''Pi'', ''r'', ''a'', ''b'', ''q'', ''t'' definidos pelo usuário\\
- Criação do vetor ''V'' com ''t'' NAs\\
- Adiciona valor de ''Vi'' na posição 1 do vetor ''V''\\
- Criação do vetor ''P'' com ''t'' NAs\\
- Adiciona valor de ''Pi'' na posição 1 do vetor ''P''\\
- Criação do vetor ''T'' de 1 até ''t''\\
- Criação de um loop ''for'' com contador ''i'' de 2 até ''t''\\
- Calcula ''crescimento.v'' = ''r*Vi''\\
- Calcula ''captura.v'' = ''a''*''Vi''*''Pi''\\
- Calcula ''crescimento.p'' = ''b''*''Vi''*''Pi''\\
- Calcula ''mortalidade.p'' = ''q''*''Pi''\\
- Calcula ''dV'' = ''crescimento.v'' – ''captura.v''\\
- Calcula ''dP'' = ''crescimento.p'' – ''mortalidade.p'' \\
- Calcula ''V1'' = ''Vi'' + ''dV''\\
- Calcula ''P1'' = ''Pi'' + ''dP''\\
- Atualiza o valor ''Vi'' = ''V1''\\
- Atualiza o valor ''Pi'' = ''P1''\\
- Adiciona valores de ''V1'' e ''P1'' nos vetores ''V'' e ''P''\\
- Fecha o loop\\
- Criação de um data.frame ''predador.presa'' com os valores dos vetores ''t'', ''V'' e ''P''\\
- Faz o plot de ''P'' em função de ''t'' e ''V'' em função de ''t''
**Saída**: A função retorna o data.frame ''predador.presa'' e o gráfico da interação predador-presa ao longo do tempo.
Referência: GOTELLI, Nicolas J. 2009. Ecologia. Quarta edição, Londrina, Ed. Planta.
--- //[[delbel.renan@gmail.com|Renan Del Bel]] 2019/06/13 12:48//
Muito interessante a função, mas talvez seja muito simples.
Talvez valha a pena permitir escolher se o gráfico será predador e presa x tempo ou predador x presa.
Será que não é possível permitir uma mudança nas taxas vitais ao longo do tempo? Seria possível trabalhar com mais que duas populações interagindo?
=====Proposta B – Poupando=====
A ideia desta função é definir se é possível acumular uma certa quantidade de dinheiro em um tempo determinado pelo usuário, utilizando como base valores de entrada, saída e rendimento em um balanço financeiro. Por exemplo, se eu quiser juntar R$5.000,00 em 12 meses, definindo meus valores de entrada (salário), saída (gastos) e rendimento (% rendimento bancário), a função calcula se o acúmulo será suficiente para atingir a meta, e caso não seja, irá calcular a economia média mensal necessária para conseguir atingi-la.
**Planejamento da função**
**Entrada**: poupando(''AC'', ''t'')\\
Para chegar ao nosso objetivo, precisamos gerar vetores de tamanho variável ''t'': ''e'', ''s'' e ''r''\\
Também usaremos a seguinte fórmula: ''ACf'' = (''AC''+(''e''-''s''))*(1+''r'')\\
Onde,\\
''AC'' = valor que deseja acumular;\\
''t'' = número de meses que quer levar para chegar ao valor acumulado;\\
''e'' = valor da entrada de dinheiro (salário);\\
''s'' = valor da saída de dinheiro (gastos);\\
''r'' = valor do rendimento bancário mensal (%);\\
''ACf'' = valor acumulado final no período ''t''.\\
**Premissas da função**:\\
- Todos os parâmetros devem ser numéricos;\\
- ''t'' deve ter valor >= 1;\\
- ''e'' e ''s'' devem ter valor >=0;\\
- ''r'' deve ter um valor entre 0 e 1.\\
**Pseudo-código**:\\
- Entrada dos valores de ''AC'' e ''t'' desejados\\
- Criação do vetor ''e'' com ''t'' NAs\\
- Criação do vetor ''s'' com ''t'' NAs\\
- Criação do vetor ''r'' com ''t'' NAs\\
- Criação de um loop ''for'' com contador ''i'' de 1 até ''t''\\
- Usuário deve inserir os valores de entrada de dinheiro a cada mês do tempo ''t'' no vetor ''e''\\
- Fecha o loop\\
- Criação de um loop ''for'' com contador ''j'' de 1 até ''t''\\
- Usuário deve inserir os valores de saída de dinheiro a cada mês do tempo ''t'' no vetor ''s''\\
- Fecha o loop\\
- Criação de um loop ''for'' com contador ''k'' de 1 até ''t''\\
- Usuário deve inserir os valores de rendimento bancário a cada mês do tempo ''t'' no vetor ''r''\\
- Fecha o loop\\
- Criação de um loop ''for'' com contador ''p'' de 1 até ''t''\\
- Calcula ''ACf'' = (''AC''+(''e''-''s''))*(1+''r'')\\
- Atualiza o valor ''AC'' = ''ACf'' (''AC'' recebe o valor de ''ACf'' para função ser cumulativa)\\
- Fecha o loop\\
- Se ''AC'' for maior que ''ACf'', calcula (''AC'' - ''ACf'')/''t''
**Saída**: A função retorna se é possível acumular o valor desejado, se não for, ela retorna o valor médio da economia que deve ser feita por mês para chegar ao valor desejado no tempo ''t''.
--- //[[delbel.renan@gmail.com|Renan Del Bel]] 2019/06/13 12:53//
Pedir que o usuário insira valores a cada passo da função não é interessante. Ao invés disso permita que a função receba um vetor com a entrada de dinheiro de cada mês (e se receber um valor menor que 't' o vetor só se repete até dar o tamanho). O mesmo se aplica para a saída de dinheiro e rendimento bancário (eu trocaria o nome apenas para rendimento).
Uma entrada que senti falta é a quantidade inicial de dinheiro. Da forma como está escrito o pseudo-código, você está usando AC como seu valor inicial ao invés de meta.
Seria também interessante plotar um gráfico com a quantidade de dinheiro acumulada x tempo.
O passo 9 não parece funcionar bem: você esteve mudando o valor de AC durante a função, então 'AC' sempre será igual a 'ACf'. Além disso, uma divisão simples não captura bem como taxas se comportam. O melhor seria continuar rodando a função até atingir o valor desejado.
Uma coisa que deve estar na descrição da função é que o resultado final é apenas uma estimativa da realidade. (Isso por que na vida real gastos ocorrem de forma contínua, nem todo seu dinheiro está rendendo e bancos podem calcular taxas de formas diferente, e nem sempre o rendimento é aplicado logo antes da entrada de seu próximo salário).
--- //[[delbel.renan@gmail.com|Renan Del Bel]] 2019/06/13 12:53//
Ambas as funções são viáveis. Observe as sugestões e coloque aqui na página qual delas você prefere seguir.
--- //[[Cássia]] 2019/06/14 22:59//
Olá, Renan. Obrigada pelas dicas e sugestões! Pretendo seguir com a proposta A.
--- //[[delbel.renan@gmail.com|Renan Del Bel]] 2019/06/17 12:53//
Olá! Como disse antes, a proposta é interessante, mas me preocupa que ela seja simples. Das sugestões que eu dei (dar outra opção de output gráfico, permitir taxas que mudam com o tempo e trabalhar com mais populações) preciso que você me diga qual/quais você pretende seguir (você também pode ter outra ideia que ache mais interessante).
Preciso disso explícito para poder dar um OK definitivo.
--- //[[cassiasqr@gmail.com|Cássia]] 2019/06/18 10:52//
Oi, Renan! Gostei das suas dicas, pretendo dar a opção de trabalhar com mais populações e retornar os dois tipos de gráfico.
Oi Cassia,
Acho que a proposta A está boa, pode tocar com as inclusões que descreve acima. O gráfico de espaço de fase, sugerido pelo Renan, revela informações importantes sobre o sistema, acho que é uma ótima opção de saída gráfica.
Bom trabalho
----
==== Links para o trabalho final ====
Como produto final, segui com a proposta A, incorporando as modificações sugeridas. Fiz uma função com dois modelos para o usuário escolher qual usar: o primeiro simula a interação entre uma presa e um predador e o segundo modelo simula a interação entre duas presas e um predador. Ambos modelos retornam o data.frame proposto, o gráfico da interação predador-presa ao longo do tempo e o gráfico de plano de fase.
Link para o código da função: [[Predação]]\\
Link para a página de ajuda da função: [[Help]]