Como provar a cooperação de sequências comportamentais

10

Situação: Dois pássaros (machos e fêmeas) protegem seus ovos no ninho contra um intruso. Cada ave pode usar ataque ou ameaça para proteção e estar presente ou ausente. Existe um padrão emergente nos dados de que o comportamento pode ser complementar - ataques masculinos enquanto as mulheres usam ameaças e vice-versa.

Minha pergunta é: como provar estatisticamente essa cooperação? Ou alguém pode conhecer algum estudo comportamental que lida com análises semelhantes? A grande maioria das análises sequenciais que encontrei são focadas no DNA.

insira a descrição da imagem aqui

Aqui eu forneço alguns dados fictícios , mas meu conjunto de dados original é composto por dezenas de pares que foram gravados exatamente 10 minutos enquanto defendiam seu ninho. A sequência comportamental de cada ave tem, portanto, 600 estados de comprimento (cada segundo tem estado). Esses dados mais curtos devem conter um padrão semelhante ao conjunto de dados inteiro.

male_seq <- rep(c("absent","present","attack","threat","present","attack",
                  "threat","present","attack","absent"),
                  times = c(3,4,8,2,6,3,2,6,2,1))

female_seq <- rep(c("absent","present","threat","present","threat","present",
                    "threat","attack","present","threat","attack","present",
                    "attack","threat","absent"),
                  times = c(2,6,2,1,2,1,1,3,5,3,1,3,3,2,2))
Ladislav Naďo
fonte
2
(+1) para uma pergunta bem ilustrada, bem formada e interessante!
Tim
11
Como intrusões reais entram nisso? Cada sequência corresponde a intervalos contíguos de 10 minutos ou apenas a intervalos em que há um intruso? "Ausente" significa ausente do ninho ou ausente da área quando ocorreu uma intrusão?
Wayne
Olá @Wayne! O intruso está presente do começo ao fim (um boneco fictício de predador em uma vara foi apresentado a ninhos por 10 minutos). Ausente significa ausente da área de nidificação - às vezes os pais simplesmente fogem (às vezes retornam após alguns minutos).
Ladislav Naďo 22/03
OK, então cada sequência de quadrados inclui toda a intrusão e cada quadrado adjacente descreve um período contíguo de 10 minutos. Boa. Agora, você pode esclarecer o que quer dizer com "cooperação"? Você quer dizer papéis diferentes (ameaça versus ataque) ou você compartilha o dever de guarda (ausente / presente versus ameaça / ataque)?
22716 Wayne
Por cooperação, quero dizer "quando o homem está atacando, a mulher faz ameaças", e eu gostaria de testar esta hipótese contra uma alternativa: "quando o homem está atacando, a mulher não prefere fazer ameaças" (em outras palavras, o comportamento da mulher é independente do comportamento masculino).
Ladislav Naďo 22/03

Respostas:

3

Eu posto uma segunda resposta desde o seu último comentário

Por cooperação, quero dizer "quando o homem está atacando, a mulher faz ameaças", e eu gostaria de testar esta hipótese contra uma alternativa: "quando o homem está atacando, a mulher não prefere fazer ameaças" (em outras palavras, o comportamento da mulher é independente do comportamento masculino).

é um divisor de águas. Parece que o problema pode ser abordado de uma perspectiva totalmente diferente. Primeiro, você está interessado apenas em parte da sua amostra quando os homens estão atacando. Segundo, você está interessado se, nesses casos, as mulheres fazem guloseimas com mais frequência do que seria de esperar se as fizessem aleatoriamente. Para testar essa hipótese, podemos usar um teste de permutação: embaralhe aleatoriamente male_seqou female_seq(não importa) e conte os casos em que male_seq == "attack"e female_seq == "treat"para obter distribuição nula. Em seguida, compare a contagem obtida dos seus dados com a distribuição nula para obter o valor- .p

prmfun <- function() {
  sum(female_seq[sample(male_seq) == "attack"] == "threat")
}

mean(replicate(1e5, prmfun()) >= sum(female_seq[male_seq == "attack"] == "threat"))
## [1] 5e-05

Você pode definir sua estatística de teste de maneira diferente, com base em como você define a "preferência" das fêmeas. O teste de permutação, neste caso, é uma interpretação direta do seu : "o comportamento feminino é independente do comportamento masculino", que leva a: "o comportamento feminino é aleatório, dado o comportamento masculino", para que os comportamentos sejam aleatoriamente embaralhados em .H0H0

Além disso, mesmo que você tenha assumido que os comportamentos aparecem em grupos do mesmo comportamento repetidos por algum período de tempo, com o teste de permutação, você pode embaralhar grupos inteiros:

female_rle <- rle(female_seq)
n_rle <- length(female_rle$values)

prmfun2 <- function() {
  ord <- sample(n_rle)
  sim_female_seq <- rep(female_rle$values[ord], female_rle$lengths[ord])
  sum(sim_female_seq[male_seq == "attack"] == "threat")
}

mean(replicate(1e5, prmfun2()) >= sum(female_seq[male_seq == "attack"] == "threat"))
## [1] 0.00257

Em qualquer um dos casos, os padrões de cooperação nos dados que você forneceu parecem estar longe de serem aleatórios. Observe que, nos dois casos, ignoramos a natureza autocorrelacionada desses dados, e perguntamos: se escolhemos um ponto aleatório no tempo em que o homem estava atacando, a mulher teria menos ou mais probabilidade de fazer guloseimas ao mesmo tempo?

Desde que você parece estar falando sobre a causalidade ( "quando ... então"), durante a realização de teste de permutação você pode estar interessado em comparar machos comportamento em hora de comportamento fêmeas em tempo (que era do sexo feminino 'reação' ao comportamento dos homens?), mas isso é algo que você deve se perguntar. Os testes de permutação são flexíveis e podem ser facilmente adaptados ao tipo de problemas que você parece estar descrevendo.t1t

Tim
fonte
2

Você pode pensar em seus dados em termos da cadeia bivariada de Markov. Você tem duas variáveis ​​diferentes para mulheres e para homens, que descrevem o processo estocástico de mudanças em e no tempo em um dos quatro estados diferentes. Vamos denotar por transição para de para tempo, de ésimo para ésimo estado. Nesse caso, a transição no tempo para outro estado depende do estado anterior em e em :XYXYtXt1,iXt,jXt1tijX Y

Pr(Xt1,iXt,j)=Pr(Xt,j|Xt1,i,Yt1,k)Pr(Yt1,hYt,k)=Pr(Yt,h|Yt1,k,Xt1,i)

As probabilidades de transição podem ser facilmente calculadas contando os históricos de transição e normalizando as probabilidades posteriormente:

states <- c("absent", "present", "attack", "threat")
# data is stored in 3-dimensional array, initialized with
# a very small "default" non-zero count to avoid zeros.
female_counts <- male_counts <- array(1e-16, c(4,4,4), list(states, states, states))
n <- length(male_seq)

for (i in 1:n) {
  male_counts[female_seq[i-1], male_seq[i-1], male_seq[i]] <- male_counts[female_seq[i-1], male_seq[i-1], male_seq[i]] + 1
  female_counts[male_seq[i-1], female_seq[i-1], female_seq[i]] <- female_counts[male_seq[i-1], female_seq[i-1], female_seq[i]] + 1
}

male_counts/sum(male_counts)
female_counts/sum(female_counts)

Também pode ser facilmente simulado usando probabilidades marginais:

male_sim <- female_sim <- "absent"

for (i in 2:nsim) {
  male_sim[i] <- sample(states, 1, prob = male_counts[female_sim[i-1], male_sim[i-1], ])
  female_sim[i] <- sample(states, 1, prob = female_counts[male_sim[i-1], female_sim[i-1], ])
}

O resultado dessa simulação é plotado abaixo.

insira a descrição da imagem aqui

Além disso, ele pode ser usado para fazer previsões um passo à frente:

male_pred <- female_pred <- NULL

for (i in 2:n) {
  curr_m <- male_counts[female_seq[i-1], male_seq[i-1], ]
  curr_f <- female_counts[male_seq[i-1], female_seq[i-1], ]
  male_pred[i] <- sample(names(curr_m)[curr_m == max(curr_m)], 1)
  female_pred[i] <- sample(names(curr_f)[curr_f == max(curr_f)], 1)
}

com precisão de 69 a 86% nos dados que você forneceu:

> mean(male_seq == male_pred, na.rm = TRUE)
[1] 0.8611111
> mean(female_seq == female_pred, na.rm = TRUE)
[1] 0.6944444

Se as transições ocorressem aleatoriamente, as probabilidades de transição seguiriam uma distribuição uniforme e discreta. Isso não é uma prova , mas pode servir como uma maneira de pensar sobre seus dados usando um modelo simples.

Tim
fonte
Parece que você está assumindo que a alternativa à cooperação é algum tipo de resposta aleatória. Pude ver que a alternativa é uma resposta não coordenada, que pode ser pré-programada. Por exemplo, um pássaro voa em círculos. Assim, quando um parceiro está lidando com o intruso, o círculo é maior. Então eles lidam com o invasor um após o outro, sem cooperação em si, mas esperando até que um termine.
Aksakal
@ Aksakal, mas a pergunta é sobre interações e o que você está descrevendo é um tipo de interação. (Eu não argumentam que este modelo simplista é correto.)
Tim
Concordo que o OP não está claro se ele está procurando algum tipo de padrão regular ou especificamente "cooperação". Eu diria que, quando três pássaros estão voando no mesmo espaço, deve haver algum tipo de padrão de comportamento emergindo. Eu acho que "cooperação" envolve mais do que apenas um padrão. Caso contrário, você poderia dizer que é uma cooperação de três vias, com o invasor também cooperando em algum sentido.
Aksakal
@ Aksakal, você pode estar certo, mas se esses dados consistirem apenas nos quatro estados observados no tempo, o tipo de modelo simplista que propus pode servir como ponto de partida.
Tim