====== 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]]