===== Proposta II - Diferenças entre elementos que interagem par a par ===== ==== Tarefa a ser executada ==== Para dois conjuntos de elementos que interagem em pares e que podem manter ou perder a interação ao longo do tempo, a função deve calcular a diferença média entre atributos quantitativos dos elementos pareados associada à manutenção e à perda da interação. Além disso, a função deve calcular a probabilidade de as diferenças médias observadas nos dois casos serem diferentes de uma diferença gerada ao acaso. ==== Possíveis usos da função ==== A função poderia ser utilizada para avaliar se as diferenças entre atributos em pares de espécies que interagem em uma comunidade são maiores ou menores do que as esperadas pelo acaso e essas diferenças poderiam explicar quando a interação é mantida ou perdida ao longo do tempo. O mesmo pode ser aplicado para avaliar interações entre pessoas a partir de dados quantitativos de suas preferências ou características físicas e sociais. ==== Objetos e argumentos de entrada ==== O usuário deve fornecer: a) uma matriz de interação, na qual as linhas correspondem ao primeiro conjunto de elementos e as colunas ao segundo conjunto. Quando não há interação entre os elementos dos dois conjuntos, a célula deve estar preenchida com o valor 0. Quando há interação e esta não foi mantida ao final do intervalo de estudo, a célula deve ser preenchida com 1. Quando há interação e esta foi mantida, a célula deve ser preenchida com 2. b) um data frame no qual as linhas correspondem aos elementos dos conjuntos e as colunas aos atributos medidos. O usuário deve especificar: c) um vetor de cores com 2 posições para indicar no gráfico a diferença média associada à manutenção e à perda da interação, respectivamente. ==== Objetos de saída ==== A função deve retornar: a) uma tabela contendo o número de elementos em cada conjunto analisado e, para cada atributo: 1) a diferença média entre os componentes do par de interação, 2) a diferença média randomizada (obtida a partir de uma distribuição de médias simuladas com os dados de atributos embaralhados), 3) o desvio padrão da diferença média randomizada e 4) o valor da probabilidade de a diferença média observada ser maior ou menor do que uma diferença randômica (tanto para a perda quanto para a manutenção da interação). b) um painel gráfico com um histograma da distribuição das diferenças médias randomizadas para cada atributo e a posição no histograma da diferença média observada (tanto para a manutenção quanto para a perda da interação). ==== Passos a executar ==== a) Calcular a diferença entre os valores de atributos de cada par de elementos em interação (seja 1 ou 2). b) Somar todas as diferenças entre pares de interação do tipo 1 e dividir pelo número de pares do tipo 1 para obter a diferença média associada à perda da interação. c) Somar todas as diferenças entre pares de interação do tipo 2 e dividir pelo número de pares do tipo 2 para obter a diferença média associada à manutenção da interação. d) Fazer várias simulações nas quais os valores dos atributos são embaralhados e as diferenças randomizadas para os pares são calculadas, somadas e divididas pelo número de pares que interagem. Assim, se obtém uma distribuição de diferenças médias randomizadas. e) Calcular a probabilidade de a diferença média observada ser maior ou menor do que uma diferença randômica (tanto para a perda quanto para a manutenção da interação). f) Gerar a tabela e os histogramas. ==== Dificuldades ==== a) Selecionar os valores de atributos que estão no data frame a partir do nome dos elementos que estão pareados na matriz de interação. Esses valores seriam usados no cálculo da diferença de atributos entre os pares. b) Diferenciar os subconjuntos de diferenças geradas para interações dos tipos 1 e 2. Lu, mesma coisa que disse pro Rodolfo: sua proposta A tá boa, mas a B te tira bem mais da zona de conforto, e acho que te fará aprender mais! Sou mais fã da sua proposta B <3 Sobre as dificuldades: As funções which() e grep() devem te ajudar! ----//[[luisanovara@gmail.com|Luísa Novara]]// É, ela me deixou pensando em como resolver alguns passos para executa-la. Vou pesquisar mais sobre esses comandos que você sugeriu e tentar trabalhar melhor a proposta B então. =] Valeu pelas dicas, flor. Vai nessa, flor! ----//[[luisanovara@gmail.com|Luísa Novara]]// Flor(es), Encarar um desafio é sempre bom para o aprendizado! Manda bala nessa aí! --- //[[saramortara@gmail.com|Sara ]]// Encarando os desafios e descobrindo novos. Haha Estou com a impressão de que a minha função está muito pesada, talvez porque precisei usar o "for" com frequência, já que cada etapa da função precisa ser executada para cada atributo. =T Isso não é muito bom, né? Talvez esses problemas seja resolvidos se a função se aplicar a apenas um atributo. O chato disso é que o usuário teria que repetir a função a cada atributo novo. O que você acha, Lu? Obrigada, Sara!! Lu, pelo que esquematizei, acho que vc consegue não usar muitos for(), tem como vc fazer para todos os atributos simultaneamente. Neste caso, o for() que imagino ser necessário é pra cada par de elementos interagentes. Existe mais de um jeito de resolver (sempre hehe), mas para encontrar uma forma mais direta (com menos for()), sugiro que vc crie exemplos de input (uma matriz de interação e um data frame com os valores dos atributos) e vá calculando o que vc quer passo a passo. Não sei se vc já está fazendo assim, mas pra mim fica mais fácil perceber os pontos em que de fato não dá pra fazer sem o for(). No final das contas: não acho que seja uma boa vc aplicar a função a apenas um atributo, fica viável fazer com mais de um. ----//[[luisanovara@gmail.com|Luísa Novara]]// Oi, Lu! Desenvolvi a função do jeito que você falou: criando exemplos de input e calculando passo a passo (me perco se desenvolver uma função sem dados pra verificar os passos, haha). Mas vou analisar todos os passos agora e tentar descobrir uma forma de fazer para todos os atributos simultaneamente, como você sugeriu. E sem usar o for pra isso, porque a princípio eu tinha pensando em colocar um for referente aos atributos no começo da função, em vez de em cada etapa.