Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2018:alunos:trabalho_final:lucas.camacho:start

Lucas Arantes Camacho

lattes.jpg

Bacharel em Biologia e Mestrando em Ecologia pelo Instituto de Biociências da USP

Meus interesses de pesquisa são:

  • Coevolução
  • Interações Ecológicas (Mutualismos e Antagonismos)
  • Redes ecológicas

Em meu mestrado, vou usar modelos matemáticos e redes empíricas de interações ecológicas para investigar o papel das forças de interações em diferentes dinâmicas coevolutivas.

http://guimaraes.bio.br/people.html

Link para exercícios realizados Meus exercícios




Trabalho Final

Proposta I

Contextualização

A disciplina Ecologia de Comunidades e Ecossistemas é oferecida para o curso de graduação em Biologia pelo Inst. de Biociências da USP, abordando padrões em larga escala como surgimento e manutenção da biodiverdade e macroevolução [1]. Na primeira aula da disciplina, os alunos são expostos ao modelo logístico de crescimento de populações (Figura abaixo), para observar como uma equação não-linear pode gerar dinâmicas populacionais complexas e até caóticas.

primeira.png

A equação nos diz o tamanho de uma população N no tempo t+1 com uma certa taxa de crescimento intrínseca r e um tamanho populacional no tempo t[2]. Aqui nós usamos a densidade populacional sendo uma proporção, fazendo com que o valor de k , a capacidade suporte, seja 1. Pensando que este é um modelo matemático, ele pode gerar resultados que não tem nenhum sentido biológico como por exemplo, um valor alto de r (>3.95) gera tamanho populacionais negativos. Matematicamente correto, porém biológicamente irreal. É interessante que os alunos comparem uma dinâmica da equação logística com a equação de crescimento exponencial, sendo esta a equação fundamental que deriva as outras.

seg.png

A aula em questão é composta por metade teórica e metade prática, sendo que na aula prática os alunos recebem um arquivo em formato excell (.xlsx) onde há duas abas, uma delas com um gráfico do tamanho da(s) população(ões) estudadas e outra com as células dos valores de tempo de simulação, N inicial e r de duas populações de interesse. O objetivo desta prática é entender como diferentes valores de N e r afetam a dinâmica populacional de uma ou duas populações quaisquer.

Minha função tem como objetivo substituir o arquivo .xlsx usado na aula prática para uma função em R, realizando a mesma tarefa de simular dinâmica populacional de até duas populações e gerar um gráfico de população por tempo. Minha função vai permitir que a pessoa escolha qual dinâmica irá simular: logística ou exponencial, para que possa haver uma comparação entre as dinâmicas e gerar discussões.

Obs: A prática em questão foi elaborada pelos docentes da disciplina. Os arquivos podem ser baixados nos linques abaixo

Planejamento:

Entrada: simu_pop(eq, t, ni, nj, ri, rj)

  • eq = Modelo a ser simulado (character, exponencial; logistico)
  • t = número de passos de tempo da simulação (integer)
  • ni = densidade populacional inicial da espécie i (float, 0 < ni > 1)
  • nj = densidade populacional inicial da espécie j (float, 0 < nj > 1)
  • ri = taxa intrínseca de crescimento da espécie i (float, 1.1 < ri > 3.95)
  • rj = taxa intrínseca de crescimento da espécie j (float, 1.1 < rj > 3.95)

Conferindo argumentos

  • eq só possui duas entradas possíveis (exponencial; logistico), caso seja diferente, retorne erro
  • ni e nj devem ser valores entre 0 e 1, caso contrário, retorne erro
  • ri e rj devem ser valores entre 1.1 e 3.95, caso contrário, retorne erro

Saída

  • Gráfico mostrando o caminho das densidades populacionais em função do tempo, separando as populações por cores diferentes.

Referências

1. Página da disciplina no sistema de graduação JúpiterWeb. Acessado em 02/05/2018.

2. Gotelli, N. (2008). A primer of ecology. Sinauer Associates is an imprint of Oxford University Press; 4th edition.

Comentários Andre Chalom

Salve, Lucas!

Excelente proposta! Vamos convencer os professores a virem todos para o lado livRe da foRça!

Alguns comentários sobre a proposta:

  1. Porque as taxas precisam ser entre 1.1 e 3.95? Isso tem um motivo teórico, ele pode estar na descrição da função ;-)
  2. Na escolha dos argumentos, você precisa dizer qual número corresponde a “exponencial” ou “logística”. Alternativamente, você pode usar a função match.arg

Por fim, preciso ser chato e dizer que sua proposta tem uma certa confusão entre processos de tempo contínuo (equação logística) e tempo discreto (mapa logístico). Mas como isso não está no escopo dessa disciplina, sua avaliação não vai depender disso.

Oi Andre,

muito obrigado pelo feedback.

Vou fazer a função da Proposta I mesmo.

Já adicionei o motivo dos valores de r serem limitados e coloquei que o argumento para o eq agora são caracteres logistic e exponential. Também dei uma mudada no texto. Muito obrigado.

Lucas Camacho

—-

Proposta II

Contextualização

Os serviços de streaming de música tem se tornado cada vez mais comuns, disponibilizando uma “infinidade” de músicas dos mais diversos gêneros conhecidos. Com isso, surgiu o serviço de criação de playlists de música para determinados tipos de humor, que podem ser escolhidos pelo ouvinte. Porém, muitos destes serviços são pagos ou possuem playlists já prontas e com músicas, muitas vezes, desconhecidas pelo usuário. Dessa forma, seria interessante que houvesse um programa simples que receba suas listas de músicas classificadas de acordo com seu gosto e gere playlists de músicas que te direcionem para um determinado humor desejado. Considere o cenário hipotético:

Digamos que você está no primeiro semestre da pós-graduação e você acaba de perceber que não rendeu muito em seu projeto, gerando a possibilidade de uma bronca do seu orientador carioca. Isso ocorreu pois você estava ocupado com disciplinas relacionadas a estatística e programação em R. Essa situação te leva a um sentimento de tristeza e frustação e tudo o que você quer é se sentir mais feliz e compreendido. A música pode te ajudar, ainda mais quando sua playlist apenas contém as suas próprias músicas e é ordenada de uma forma que no início acompanha seu humor atual e, aos poucos, te leva ao humor desejado, caso você queira mudar de humor.

A função proposta vai ler uma lista de músicas do usuário com uma classificação numérica dada pelo próprio usuário. Com essa lista, a função retornará uma lista de músicas de tamanho escolhido pelo usuário, com músicas semelhantes ao humor de entrada e se o usuário desejar, músicas que passem do humor atual para um determinado humor desejado. Caso o usuário não queira mudar o seu humor, a função retorna uma playlist apenas com músicas que acompanham o humor de entrada.

Planejamento:

Entrada: get_playlist(list, n, he, hs)

  • list = lista de músicas já classificadas do usuário (list)
  • n = número de músicas (integer)
  • he = humor de entrada (string, alegre, triste, calmo, ansioso, focado, relaxado)
  • hs = humor de saída (NULL por default ou string, alegre, triste, calmo, ansioso, focado, relaxado)

Conferindo argumentos

  • list deve ser de classe list e deve ser semelhante ao exemplo abaixo, caso contrário, retorne erro.
Alegre Triste Calmo Ansioso Focado Relaxado
Música 1 1 0 0 0 0 1
Música 2 1 0 0 0 0 1
Música 3 0 1 1 0 1 0
  • n máximo é igual ao número total de músicas em list, caso contrário, retorne erro
  • he deve pertencer a uma lista de humores disponíveis, caso contrário, retorne erro

Saída

  • Lista de músicas de tamanho n determinado pelo usuário

Comentários Andre Chalom

Essa proposta é muito bacana, mas está bastante crua. Ela tem a descrição de “o que” vai ser feito, mas se vc estiver pensando em fazer essa função, é importante detalhar mais o “como” vai ser feito. Sugiro fazer um pseudo-código pra estruturar as ideias.

Abs!


Versão Final - Função simu_pop()

Decidi seguir com a Proposta I do trabalho final, criando uma função que simula populações virtuais com base em dois modelos clássicos da ecologia: o modelo exponencial e o modelo logístico. Para essa função, basta escolher qual modelo você quer simular, o tempo da simulação e os parâmetros n e r das populações que você terá um gráfico com as simulações, atingindo enfim nosso objetivo de oferecer uma ferramenta alternativa para a primeira aula prática da disciplina.

  • Link para o código da função: simu_pop.R
  • Link para a página de ajuda da função: help.txt



Contatos

e-mail: lucas.camacho@usp.br

skype: lucas.arantes666

05_curso_antigo/r2018/alunos/trabalho_final/lucas.camacho/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)