\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[unicode]{hyperref}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\usepackage{graphicx}
\graphicspath{{media/}}
\date{\today}
\title{}
\author{}
\begin{document}



\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/ferni211/foto}


\section{\texorpdfstring{Maria Fernanda De la Fuente}{Maria Fernanda De la Fuente}}
\label{sec:maria_fernanda_de_la_fuente}


Doutoranda no programa de Pós-graduação em Etnobiologia e Conservação da Natureza na UFRPE.\href{http://www.pgetno.ufrpe.br/}{PPGETNO}
Membro do Laboratório de Etologia Teórica e Aplicada. \href{http://letaufrpe.weebly.com/}{LETA}

Minha área de interesse e atuação é o comportamento animal, atualmente pesquiso sobre o forrageio social e análise de redes sociais em primatas de vida livre.



\subsection{\texorpdfstring{Trabalho Final}{Trabalho Final}}
\label{sec:trabalho_final}


\subsubsection{\texorpdfstring{PROPOSTA A – Hierarquia de dominância}{PROPOSTA A  Hierarquia de dominancia}}
\label{sec:proposta_a__hierarquia_de_dominancia}


Contextualização: Ao estudar o comportamento animal dentro de um grupo, podemos nos deparar com interações e associações entre os indivíduos que nos indicam a presença de algum tipo de estrutura hierárquica. Analisar estes contextos é muito importante para entender melhor sobre a estrutura social do grupo/espécie e interpretar adequadamente os comportamentos entre os indivíduos do grupo. A hierarquia de dominância dentro de um grupo pode ser analisada através de várias medições de relações diáticas (dominante-subordinado), como por exemplo, encontros agonísticos, prioridade a recursos, entre outros. 

Tarefa da função: A partir de interações diáticas, criar uma matriz de dominância, calcular o índice de hierarquia linear do grupo, e calcular o índice de dominância de cada membro do grupo (posição hierárquica de cada indivíduo comparado aos outros).

Objeto de entrada da função: Objeto de entrada será um data-frame com os dados das interações entre as díades em cada linha, no qual a primeira coluna terá a identidade do emissor (ou “ganhador”) da interação, na segunda coluna a identidade do receptor (ou “perdedor”) da interação, e na terceira coluna o número de interações em que o emissor “ganhou” do receptor.

Objeto de saída: a função vai retornar uma lista com os seguintes resultados: 1. Matriz de dominância do grupo, 2. Resultado do índice de hierarquia linear do grupo, e 3. Resultados dos índices de dominância de cada membro do grupo. Comentários Lucas
Oi, Maria!\\
Eu gostei mais dessa proposta e ela parece, de fato, interessante. Contudo, gostaria de mais algumas \textbf{informações teóricas} para entender sua ideia melhor:\\
1. O que é uma matriz de dominância do grupo?\\
2. Eu acho que entendo o que seja o índice de hierarquia do grupo, mas como ele é calculado? Existe uma fórmula já para isso?\\
3. Também entendo (acho!) o que seja índice de dominância de cada membro do grupo mas, assim como na pergunta anterior, já existe uma fórmula para calcular esse índice?\\
\\
Agora, vamos falar sobre \textbf{sua função}, mas com um cunho mais técnico.\\
Eu achei ela meio simples e acredito que ela pode ser melhorada para facilitar a vida do pesquisador. Eu estava aqui pensando e, a meu entender, seu objeto de entrada é algo que a pessoa tem que fazer antes de usar a função. Você vai precisar me ajudar aqui, mas como etólogo que \emph{não} sou, eu imagino que uma tabela de coleta de dados para um estudo de comportamento como o que você apresentou tenha 3 colunas: uma para o evento de interação, a outra para o emissor e a terceira para o receptor. E se a gente fizesse sua função pegar essa tabela, que veio do campo, e somar automaticamente quantas interações houve entre cada dupla de indivíduos e quantas vezes quem ganhou de quem para, a partir daí, criar o dataframe que você precisa para calcular os objetos de retorno de sua função? Acho que assim ela fica mais útil, mais generalizável e mais desafiadora. O que acha?\\
\\
É isso, qualquer coisa, tamo aí!\\
Abraços!\\
\emph{\href{mailto:lmcteixeira2@gmail.com}{Lucas}}


\paragraph{\texorpdfstring{Resposta Comentários}{Resposta Comentarios}}
\label{sec:resposta_comentarios}


Oi Lucas, obrigada pela resposta! Vou tentar responder tuas perguntas:

1. Para se adequar ao conceito de estrutura, a dominância deve ser estabelecida como uma relação binaria dentro do conjunto de membros. Onde, por exemplo, se individuo A domina o indivíduo B e o indivíduo B domina C, então A\textgreater B e B\textgreater C. Esta estrutura pode ser representada por uma matriz de relações de dominância, na qual a identidade de todos os indivíduos se encontram nas linhas e colunas, sendo que as linhas representam os emissores ou “ganhadores” da interação e nas colunas os receptores ou “perdedores”. Dentro da matriz teremos então o número de interações de cada indivíduo com todos os outros indivíduos do grupo, onde o indivíduo da linha domina o indivíduo da coluna, caso não haja interações entre os indivíduos o valor na matriz seria 0. 

2. Sim, existe uma fórmula para calcular o índice da hierarquia linear, é o índice de linearidade de Landau. No entanto, estou pesquisando para ver se há outras formulas e escolher a mais apropriada.  
\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/ferni211/indice_de_landau}

Onde: n=número de animas no grupo; Va= número de animais que o indivíduo “a” domina.

3. Também existe uma formula simples para calcular o índice de dominância de cada membro dentro do grupo (índice de Coulon). Índice de dominância= G/G+P. Onde: G=número de interações “ganhas”; e P = número de interações “perdidas” com outros indivíduos.

Sobre a função: A coleta de dados etológicos em campo é feita, por exemplo, com a ajuda de um gravador de voz ou em planilhas em folhas de papel mesmo (etograma). Das duas formas, o pesquisador precisa passar os dados de campo para planilha no computador (a não ser que tenha um tablet ou algo assim). Na verdade, eu tinha pensado sobre adicionar na função a opção de somar o total de interações entre cada dupla, como você sugeriu, até porque essa é a informação necessária para cria a matriz de dominância de qualquer forma. Só fiquei com a dúvida se é possível somar os valores da coluna do número de interações com relação as outras duas colunas (uma vez que em uma tem a identidade do emissor e na outra a do receptor)? Ou seria preciso fazer mais uma coluna com as duplas da interação (emissor-receptor) em cada linha? Comentários Lucas
Oi, Maria! Obrigado pela resposta e desculpa a demora em responder. Fiquei sem internet ontem.\\
\\
Obrigado também pelas explicações! Pude entender sua proposta bem melhor agora!\\
Sim, ter que digitalizar tabelas de campo é algo bastante comum pra gente... rs Mas o que eu queria dizer, e aí peço desculpas se não fui claro, era exatamente isso: em vez da pesquisadora \emph{(sim, mulheres na ciência! Yaay!)} criar uma tabela com essas três colunas que você apresentou como sendo o input, a pesquisadora fica a cargo de, ,,apenas", digitalizar essa matriz. Sua função, então, teria como input essa essa matriz, criando esse dataframe com as três colunas automaticamente e, a partir, daí calcular os índices que você propõe.\\
\\
Essa minha sugestão embasa-se numa tentativa de tornar a vida  da pesquisadora mais fácil, porque assim ela teria apenas uma função (digitalizar a matriz) e não duas (digitalizar a matriz e criar o dataframe), tornando-se também menos \emph{error-prone}. Contudo, preciso admitir que a forma de fazer isso requer um certo conhecimento de operações matriciais de que eu não disponho com segurança. Apesar disso, a gente tem uma brincadeira no R: não é se é possível fazer, mas como fazer ;)\\
\\
De qualquer forma, vou pedir a minhas e meus colegas de monitoria que deem uma olhada na sua proposta também e analisem a viabilidade dela, tudo bem? Assim você tem mais segurança sobre qual caminho seguir.\\
\\
Qualquer coisa, só falar!\\
AbRaços,\\
Lucas


\begin{center}
\line(1,0){250}
\end{center}



\subsubsection{\texorpdfstring{PROPOSTA B – Confiabilidade entre observadores}{PROPOSTA B  Confiabilidade entre observadores}}
\label{sec:proposta_b__confiabilidade_entre_observadores}


Contextualização: Muitas vezes, em estudos experimentais ou a longo prazo, os dados de campo são coletados por diferentes pesquisadores. Se os observadores não coletam/observam exatamente da mesma maneira determinado fenômeno, haverá um decréscimo na confiabilidade e validade dos dados coletados, e consequentemente do estudo em geral. Isto pode acontecer especialmente no estudo do comportamento animal, uma vez que a percepção e interpretação dos observadores pode estar influenciada por diferentes fatores e experiências individuais. Para evitar este problema, antes do início da coleta de dados é recomendado realizar um estudo piloto, no qual todos os observadores coletam os mesmos dados ao mesmo tempo, mas de forma individual e independente, para depois executar um teste de concordância entre eles.

Tarefa da função: Calcular a confiabilidade entre observadores através de teste de concordância e calcular a probabilidade de que a mesma seja acima do esperado ao acaso.

Objeto de entrada da função: Um data-frame em que as linhas são as observações realizadas e nas colunas os diferentes observadores. Como argumento da função entra o teste de concordância a ser calculado.

Objeto de saída: o resultado do teste de concordância e o p-value. Comentários Lucas
Ois!\\
Confesso que achei que essa sua proposta poderia ser mais desafiadora. Se entendi corretamente, ela vai apenas retornar o valor de um certo teste estatístico (qual seria? Kappa?), não oferecendo um diferencial. Dessa forma, aconselho focar para a proposta A.


\begin{center}
\line(1,0){250}
\end{center}



\subsection{\texorpdfstring{Página de Ajuda}{Pagina de Ajuda}}
\label{sec:pagina_de_ajuda}
\lstset{frame=single}
\begin{lstlisting}
 domi		              package:nenhum                     R Documentation

Cria matriz de dominância, calcula o índice de dominância individual e o índice 
de hierarquia linear do grupo com base a dados de interações diáticas fornecidos 
pelo usuário.

Description:

A partir de um dataframe, cria matriz de dominância com o número de interações 
entre cada par de indivíduos no grupo. Calcula o índice de dominância (Coulon) 
para cada indivíduo do grupo e o índice de hierarquia linear (Landau) do grupo. 
Retorna uma lista com a matriz de dominância, os índices de Coulon e o índice de 
Landau.

Usage:

domi(dados, ind)

Arguments:

dados: Dataframe com 3 colunas que deve conter na primeira coluna a identidade 
dos emissores das interações; na segunda coluna a identidade dos receptores das 
interações; e na terceira coluna o número de interações observadas entre o emissor 
e receptor. Cada linha pode ser uma observação ou a somatória de varias observações
entre emissor e receptor (depende do método de observação em campo).

ind: valor numérico referente ao número total de indivíduos no grupo, deve ser 
número inteiro. 

Details:

Todos os argumentos da função devem ser fornecidos.

Value:

A função domi retorna uma lista com os seguintes componentes:

comp1: Matriz de dominância. Nas linhas da matriz se encontram todos os indivíduos 
do grupo que emitiram a interação (emissores), e nas colunas se encontram todos os 
indivíduos do grupo que receberam a interação (receptores). Dentro da matriz se 
encontram o número de interações entre todos os emissores e receptores do grupo.

comp2: Índices de dominância individual (Coulon). Neste componente da lista se 
encontram os índices de dominância de cada indivíduo, indicando a posição hierárquica 
de cada um dentro do grupo. Retorna valores de 0 a 1, quanto mais próximo de 1 significa 
que o animal é mais dominante do que os outros.

comp3: Índice de linearidade de Landau. A função retorna o índice de hierarquia 
linear do grupo. Podendo ser valores de 0 a 1, quanto mais próximo de 1 mais linear 
é a hierarquia do grupo, isto é, existe um indivíduo de alto ranking no grupo que 
domina todos os membros do grupo (A), o segundo no ranking (B) domina todos os indivíduos 
menos o A, o terceiro do ranking (C) domina todos os indivíduos exceto A e B, etc (A>B>C). 
Quando o índice é mais próximo de 0, a hierarquia é não linear, pois podem existir 
relações circulares entre os indivíduos (A>B, B>C, C>A), e indivíduos com o mesmo 
ranking de dominância (D=E).

Warnings:

A função é interrompida e retornam-se mensagens de erro quando o objeto de entrada 
não é um dataframe e quando o argumento 'ind' não é fornecido.

Author(s):

María Fernanda De la Fuente Castellón
ferni211@yahoo.com.ar

References:

Lehner P.N. 1996. Handbook of Ethological Methods. Second edition. Cambridge: 
Cambridge University Press. 672p.

Examples:

#Exemplo 1 
#criando vetores para incluir no dataframe
emissor<-c(rep("A", 32), rep("B", 110), rep("C", 102), rep("D", 27), rep("E", 13))
receptor<-c(rep("D", 21), rep("E", 11), rep("A", 41),rep("C", 1), rep("D", 37), rep("E", 31), rep("A", 17), 
rep("B", 14), rep("D", 12), rep("E", 59), rep("A", 3), rep("E", 24), rep("A", 13))
interacoes<-c(rep(1,284))  

#criando dataframe para exemplo com grupo de 5 individuos
exemplo<-data.frame(emissor, receptor, interacoes)
domi(exemplo, ind=5)

#Exemplo 2
#exemplo com objeto de classe errada (nao dataframe) 
data<-c(rep("A", 32), rep("B", 110), rep("C", 102), rep("D", 27), rep("E", 13))
domi(data, ind=5)

#Exemplo 3
#exemplo sem colocar o argumento do número de indivíduos no grupo (ind)
domi(exemplo)

\end{lstlisting}



\subsection{\texorpdfstring{Código da função}{Codigo da funao}}
\label{sec:codigo_da_funao}
\lstset{frame=single}
\begin{lstlisting}
#funcao que a partir de dados sobre interacoes diáticas de individuos de um grupo cria uma matriz 
#de dominancia, calcula o indice de dominancia individual de cada membro do grupo (indice de Coulon) 
#e calcula o indice de hierarquia linear do grupo (indice de Landau)

domi<-function(dados, ind=y)
{ 
  #confere se o objeto 'dados' é um dataframe
  if(class(dados)!="data.frame") 
  #caso nao seja um dataframe, a funcao para e exibe mensagem de erro informando o problema
    stop("\n Objeto 'dados' nao e um dataframe.\n")
  
    #confere se esta faltando o argumento 'ind'
  if(missing(ind))
  #caso estiver faltando, a funcao para e exibe mensagem de erro
    stop("\n Número total de individuos no grupo ('ind') não fornecido.\n")

  #CRIANDO MATRIZ DE DOMINANCIA
  
  #identificando os individuos do grupo a partir dos niveis da primeira coluna do dataframe
  #para colocar a identificacao dos individuos nos nomes de linhas e colunas da matriz 
  id<-levels(dados[,1])
  #criando matriz de dominancia a partir de uma tabela com as informacoes do dataframe
  #neste momento o argumento ind informa o tamanho do grupo para criar o numero certo de
  #linhas e colunas da matriz, a soma das interacoes entre as diades preenche a matriz
  matdom<-matrix(table(dados[,1], dados[,2]), ncol = ind, nrow=ind, dimnames=list(id, id)) 
  
  #CALCULANDO O INDICE DE DOMINANCIA INDIVIDUAL (COULON)
  #formula do indice: numero de interacoes emitidas/numero de interacoes emitidas+numero de interacoes recebidas
  
  #soma das interacoes emitidas de cada individuo
  somaemi<-tapply(dados[,3], dados[,1], sum) 
  #soma das interacoes recebidas de cada individuo
  somarec<-tapply(dados[,3], dados[,2], sum) 
  #soma total das interacoes (emitidas e recebida) de cada individuo
  total<-(somaemi+somarec)
  #dividindo as interacoes emitidas pelo numero total de interacoes emitidas e recebidas de cada individuo
  coulon<-(somaemi/total) 
  
  #CALCULANDO INDICE DE HIERARQUIA LINEAR (LANDAU)
  {
    #renomeando matriz de dominancia para substituir numero de interacoes entre diades por 1, 0.5 ou 0, 
    #uma vez que a formula do indice é (12/((n^3)-n))*sum((v-((n-1)/2))^2), o v= numero de individuos que
    #cada animal domina. Desta forma, 1 é cada animal dominado, 0.5 é quando o numero de interacoes emitidas entre uma 
    #diade é igual (teriam o mesmo nivel de dominancia entre eles) e 0 quando o individuo nao é dominado 
    m<-matdom
    #cria dois loops para passar por todos os valores da matriz (combinacoes de linhas e colunas)
    for(i in 1:nrow(m)) 
      for(j in 1:nrow(m)) 
    #se o valor [emissor, receptor] é maior que o valor [receptor,emissor] entre uma diade,
    #o valor da primeira é substituido por 1
        if (m[i,j]>m[j,i]) m[i,j]=1 
    
    # se ambos valores entre a diade sao iguais, o valor das duas é substituido por 0.5
    else if(m[i,j]==m[j,i]) m[i,j]=m[j,i]=0.5 
    # se nao ocorre nada do anterior, substituir por zero
    else m[i,j]=0 
    #coloca zeros ao longo da diagonal da matriz, pois um individuo nao pode interagir com ele mesmo
    diag(m)=0 
    # soma os valores das linhas da nova matriz para calcular o numero de animais que cada individuo domina
    v<-rowSums(m) 
    # mostra o numero de individuos do grupo
    n<-nrow(m) 
    
    #formula para calcular o índice de Landau
    landau<-(12/((n^3)-n))*sum((v-((n-1)/2))^2) 
  }
  #criando lista com os objetos para retornar
  lista<-list(matdom, coulon, landau) 
  #nomeando os objetos da lista que retorna
  names(lista)<-paste(list("Matriz de dominância", "Indices de dominância individual (Coluon)", "Indice de hierarquia linear do grupo (Landau)")) 
  #funcao retorna a lista com a matriz de dominancia, o indice de Coulon e indice de Landau
  return(lista) 
}

\end{lstlisting}



\subsection{\texorpdfstring{Arquivos da função}{Arquivos da funao}}
\label{sec:arquivos_da_funao}


\href{media/bie5782/01_curso_atual/alunos/trabalho_final/ferni211/funcao_domi.r}{Script função domi}

\href{media/bie5782/01_curso_atual/alunos/trabalho_final/ferni211/help_domi.txt}{Help domi}

\end{document}
