Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
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_best2
gpc
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 i
pos_circy
na posição i
pos_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 i
pos_circy
na posição i
pos_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
Vitor Rios
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
Vitor Rios
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
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.