Doutorando em Zoologia, Instituto de Biociências, USP. Título da tese: The evolution of self-domestication: a comparative approach.
Contextualização
A função tem como propósito ser utilizada em aulas de comportamento animal, com o tema central de Seleção Sexual. A proposta é simular um cenário de seleção sexual dependente da disponibilidade de recursos (Emlen & Oring, 1977). Ou seja, uma situação hipotética na qual ocorre seleção intra-sexual, sendo que os próprios machos lutam por recursos (alimento, por exemplo) e as fêmeas se acasalam aleatoriamente com a disponibilidade destes. Assim, espera-se que apenas os machos com o fenótipo mais favorável (valores de 1 a 10, sendo 10 o mais favorável) conseguem ter acesso ao recurso. Com essa função, o usuário poderá comparar intensidade de seleção sexual em diferentes cenários de disponibilidade de recursos. Desta maneira, a função aceitará como argumento dois valores de quantidade de disponibilidade de recursos (variando de 1 – pouca disponibilidade e 10 – alta disponibilidade) e mais um valor com a quantidade de eventos de seleção (padrão = 100).
Para o uso desta função, será necessário utilizar o pacote plotrix para a criação de alguns elementos gráficos.
Planejamento da função
Entrada:selsex(scenario1, scenario2, n_males, gpc)
scenario1(integer, 1 ≤ scenario1 ≤ 10)scenario2(integer, 1 ≤ scenario2 ≤ 10)n_males(integer, n_males > 0)gpc (Logical: TRUE || FALSE)Verificação de parâmetros:
scenario1 é numérico, inteiro e entre 1 e 10.scenario2 é numérico, inteiro e entre 1 e 10.scenario1 == scenario2, advertir que não terá comparação significativan_males é numérico, inteiro e maior que 0.n_males < 30, advertir sobre problema amostral para simulaçãogpc é Logical.Pseudo-código:
m_best1 como vetor de comprimento n_males.m_best2 como vetor de comprimento n_males.i variando de 1 a n_males:m_disputa1 com uma amostra de 1 a 10 com 11-scenario1 valor(es).m_disputa1 e coloca na posição i de m_best1.i variando de 1 a n_males:m_disputa2 com uma amostra de 1 a 10 com 11-scenario2 valor(es).m_disputa2 e coloca na posição i de m_best2.t como sendo um teste t entre m_best1 e m_best2gpc for igual a FALSE terminar a função e retornar apenas o teste tx11()m_best1.m_best2.scenario1“males for each female” como títulopos_circx como um vetor vazio de 100 valorespos_circy como um vetor vazio de 100 valoresi variando de 1 a 100:pos_circx na posição ipos_circy na posição ipos_circx[i] e pos_circy[i], respectivamente, com o raio igual ao valor de scenario1.i variando de 1 a 100:j variando de 1 a scenario1:scenario2“males for each female” como títulopos_circx como um vetor vazio de 100 valorespos_circy como um vetor vazio de 100 valoresi variando de 1 a 100:pos_circx na posição ipos_circy na posição ipos_circx[i] e pos_circy[i], respectivamente, com o raio igual ao valor de scenario2.i variando de 1 a 100:j variando de 1 a scenario2:Saída
m_best1 e m_best2<box red 70% | Vitor Rios> André, esta proposta está bem organizada, mas faltam alguns detalhes pra ela ficar completa, principalmente as fórmulas que vc vai usar pra calcular suas simulações e obter os resultados. Quando você diz “Plota dois cenários hipotéticos com a distribuição dos recursos, machos e fêmeas.”, de onde saem essas fêmeas? Pode ser que seja óbvio pra quem está familiarizado com a teoria, mas eu fiquei confuso. Da mesma forma, “Plota um boxplot mostrando a diferença de distribuição dos fenótipos de machos no cenário 1 e 2”, de onde saem esses fenótipos? Na sua saída, o boxplot e os histogramas me parecem serem redundantes, os dois apresentam a distribuição de fenótipos, correto? Se são a mesma informação, escolha um deles, se não, deixe isso claro na proposta Vitor Rios </box>
RESPOSTA ÀS REVISÕES
Comentário 1: “as fórmulas que vc vai usar pra calcular suas simulações e obter os resultados.”
Resposta: Não existem fórmulas, apenas selecionei o maior valor dentre um vetor em um dos for.
Comentário 2: “Quando você diz “Plota dois cenários hipotéticos com a distribuição dos recursos, machos e fêmeas.”, de onde saem essas fêmeas?”
Resposta: As fêmeas estariam distribuídas ao redor das áreas de recursos, não sendo necessário acrescentar um objeto fêmea ou similar.
Comentário 3: ““Plota um boxplot mostrando a diferença de distribuição dos fenótipos de machos no cenário 1 e 2”, de onde saem esses fenótipos?”
Resposta: Esses fenótipos são caracterizados pelos objetos m_disputa1, m_disputa2, m_best1 e m_best2, e possuem valores que variam de 1 a 10 (1 - macho de baixo poder de disputa e 10 - machos com alto poder de disputa“
Comentário 4: “Na sua saída, o boxplot e os histogramas me parecem serem redundantes, os dois apresentam a distribuição de fenótipos, correto? Se são a mesma informação, escolha um deles, se não, deixe isso claro na proposta” Resposta: Realmente. Excluí a criação do boxplot.
Contextualização Ao estudar disputas intraespecíficas, é possível adotar modelos que explicam qual competidor será o vencedor e também a duração do confronto. Para esta função, o conceito de Resource Holding Potential (RHP) será utilizado na definição do vencedor. Este conceito pode ser traduzido como força, tamanho corpóreo ou de um armamento ou capacidade de luta, ou seja, é uma medida absoluta de luta e manutenção de um recurso por um indivíduo. Entretanto, este conceito não traz informações sobre o tempo que uma disputa deverá durar. Neste contexto, três modelos principais são adotados para explicar e prever o tempo de duração de um confronto entre dois indivíduos de uma mesma espécie. Estes são: War of Attrition (WOA), Cumulative Assessment Model (CAM) e Sequential Assessment Model (SAM). O objetivo principal dessa função é demonstrar para o usuário como que o RHP dos combatentes se comporta em relação ao tempo da disputa para cada um dos três modelos (ou uma comparação entre os três).
Planejamento da função
Entrada:ready_fight(n, modelo = “all”)
n(integer, n > 0)model (character, padrão = “all” |”woa“|”cam“|”sam“)Verificação de parâmetros:
n é numérico, inteiro e maior ou igual a 1.n < 20, advertir sobre problema amostral para simulação.model é character e igual a uma das opções: “all” | “woa” | “sam” | “cam”.Pseudo-código:
rhp como vetor de comprimento n e valores de uma amostra de 1:100 sem repetições.s_max igual a rhp sem o maior valor.s_min igual a rhp sem o menor valor.diffs de diferença entre cada valor de rhp.med de média entre cada valor de rhp.model igual a “all” ou “woa”.s_max e um objeto de tempo t1.s_min e um objeto de tempo t2.diffs e um objeto de tempo t3.model igual a “all”:s_max por t1 e adiciona linha de tendência.s_min por t2 e adiciona linha de tendência.diffs por t3 e adiciona linha de tendência.s_max por t1 e adiciona linha de tendência.s_min por t2 e adiciona linha de tendência.diffs por t3 e adiciona linha de tendência.model igual a “all” ou “cam”:s_max e um objeto de tempo t4.s_min e um objeto de tempo t5.diffs e um objeto de tempo t6.med e um objeto de tempo t7.model igual a “all”:s_max por t4 e adiciona linha de tendência.s_min por t5 e adiciona linha de tendência.diffs por t6 e adiciona linha de tendência.diffs por t7 e adiciona linha de tendência.s_max por t4 e adiciona linha de tendência.s_min por t5 e adiciona linha de tendência.diffs por t6 e adiciona linha de tendência.diffs por t7 e adiciona linha de tendência.model igual a “all” ou “sam”s_max e um objeto de tempo t8.s_min e um objeto de tempo t9.diffs e um objeto de tempo t10.med e um objeto de tempo t11.model igual a “all”:s_max por t8 e adiciona linha de tendência.s_min por t9 e adiciona linha de tendência.diffs por t10 e adiciona linha de tendência.diffs por t11 e adiciona linha de tendência.s_max por t8 e adiciona linha de tendência.s_min por t9 e adiciona linha de tendência.diffs por t10 e adiciona linha de tendência.diffs por t11 e adiciona linha de tendência.Saída
<box red 70% | Vitor Rios> André, esta proposta também precisa de mais detalhes de como os cálculos serão feitos, até para que a gente avaliar se vc implementou as equações corretamente no código. Aqui os objetos de tempo também surgem do nada e sem explicação de porque eles são necessários. Como você vai simular uma correlação negativa, nula ou positiva, e elas vão ser diferentes para cada modelo? Como você vai correlacionar o triângulo superior da matriz com o objeto de tempo?
Um detalhe de estrutura do código que pode te ajudar (e facilitar o entendimento da proposta) é que você não precisa testar sempre se o tipo de modelo é “all” para plotar os resultados. Faça os cálculos para cada modelo requisitado separadamente e armazene cada resultado numa coluna de um data.frame “modelos”, e faça os plots no fim da função, depois de calcular os modelos. Se o tipo do modelo for “all”, vc faz o plot conjunto, senão plota só o modelo requisitado
Eu sugeriria seguir com a proposta B, pois me parece mais complexa e compara mais cenários, mas tente reformular as duas primeiro e me mande um email quando fizer as alterações Vitor Rios </box>
Respostas à revisão
Comentário: “André, esta proposta também precisa de mais detalhes de como os cálculos serão feitos, até para que a gente avaliar se vc implementou as equações corretamente no código.”
Resposta: Como a ideia é “forçar” um gráfico que represente as correlações entre variáveis, fiz distribuições de valores do Y (usando rnorm()) em relação ao X gerando slopes que levam a interpretação de correlações positivas, ou negativas ou nulas.
Comentário: “Aqui os objetos de tempo também surgem do nada e sem explicação de porque eles são necessários.” Resposta: Ao ler a contextualização coloco: ”…não traz informações sobre o tempo que uma disputa deverá durar. Neste contexto, três modelos principais são adotados para explicar e prever o tempo de duração de um confronto entre dois indivíduos de uma mesma espécie.“. Desta forma, não compreendi como o objeto pode ter aparecido “do nada” na sua leitura da proposta.
Comentário: “Como você vai simular uma correlação negativa, nula ou positiva, e elas vão ser diferentes para cada modelo?” Resposta: As correlações expliquei na resposta do primeiro comentário. Os modelos explicam diferentes tipos de disputa em diferentes cenários, não existe relação entre os modelos com exceção do tema central. Ou seja, por questões didáticas apenas, essa função mostraria como que o tempo de luta se comporta em relação a capacidade de luta de combatentes em diferentes cenários.
Comentário: “Como você vai correlacionar o triângulo superior da matriz com o objeto de tempo?”
Resposta: “A matrix será de diferenças de RHPs entre os machos, então utilizarei as.vector(matrix[upper.tri(matrix)]) para transformar em um vetor e relacionarei (conforme simulação citada anteriormente dos valores de tempo) com um vetor tempo. Sempre “forçando” correlações negativas, positivas ou nulas, conforme modelo respectivo.