Come dimostrare la cooperazione dalle sequenze comportamentali


10

Situazione: due uccelli (maschio e femmina) proteggono le loro uova nel nido contro un intruso. Ogni uccello può usare un attacco o una minaccia per proteggersi ed essere presente o assente. Esiste uno schema che emerge dai dati secondo cui il comportamento può essere complementare: gli attacchi maschili mentre le femmine usano la visualizzazione delle minacce e viceversa.

La mia domanda è: come dimostrare statisticamente tale cooperazione? O qualcuno può conoscere qualche studio comportamentale che si occupa di analisi simili? La stragrande maggioranza delle analisi sequenziali che ho trovato sono focalizzate sul DNA.

inserisci qui la descrizione dell'immagine

Qui fornisco alcuni dati fittizi , ma il mio set di dati originale è composto da dozzine di coppie che sono state registrate esattamente 10 minuti mentre difendevano il loro nido. La sequenza comportamentale di ogni uccello è quindi lunga 600 stati (ogni secondo ha stato). Questi dati più brevi dovrebbero contenere un modello simile all'intero set di dati.

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))

2
(+1) per domande meravigliosamente illustrate, ben formate e interessanti!
Tim

1
Come entrano in gioco le intrusioni reali? Ogni sequenza corrisponde a intervalli contigui di 10 minuti o solo a intervalli in cui è presente un intruso? "Assente" significa assente dal nido o assente dall'area quando si è verificata un'intrusione?
Wayne,

Ciao @Wayne! L'intruso è presente dall'inizio alla fine (il pupazzo fittizio del predatore su un bastone è stato presentato agli uccelli nidificanti per 10 minuti). Assente significa assente dall'area di nidificazione - a volte i genitori scappano (a volte ritornano dopo alcuni minuti).
Ladislav Naďo,

OK, quindi ogni stringa di quadrati include l'intera intrusione e ogni quadrato adiacente descrive un periodo contiguo di 10 minuti. Buona. Ora, puoi chiarire cosa intendi per "cooperazione"? Intendi ruoli diversi (minaccia contro attacco) o intendi condividere il dovere di guardia (assente / presente contro minaccia / attacco)?
Wayne,

Per cooperazione intendo "quando il maschio sta attaccando, la femmina fa minacce", e vorrei testare questa ipotesi contro un'alternativa: "quando il maschio sta attaccando, la femmina non preferisce fare minacce" (in altre parole, comportamento femminile è indipendente dal comportamento maschile).
Ladislav Naďo,

Risposte:


3

Pubblico una seconda risposta dal tuo ultimo commento

Per cooperazione intendo "quando il maschio sta attaccando, la femmina fa minacce", e vorrei testare questa ipotesi contro un'alternativa: "quando il maschio sta attaccando, la femmina non preferisce fare minacce" (in altre parole, comportamento femminile è indipendente dal comportamento maschile).

male_seqfemale_seqmale_seq == "attack"female_seq == "treat"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

H0H0

Inoltre, anche se hai assunto che i comportamenti compaiano in gruppi dello stesso comportamento ripetuti per un certo periodo di tempo, con il test di permutazione puoi mescolare interi gruppi:

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

In entrambi i casi, i modelli di cooperazione nei dati forniti sembrano essere tutt'altro che casuali. Si noti che in entrambi i casi ignoriamo la natura autocorrelata di questi dati, ci stiamo piuttosto chiedendo: se prendessimo un momento casuale nel momento in cui il maschio stava attaccando, la femmina avrebbe meno o più probabilità di fare dolcetti allo stesso tempo?

t1t


2

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)

Le probabilità di transizione possono essere facilmente calcolate contando le storie di transizione e normalizzando successivamente le probabilità:

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)

Può anche essere facilmente simulato usando le probabilità marginali:

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], ])
}

Il risultato di tale simulazione è riportato di seguito.

inserisci qui la descrizione dell'immagine

Inoltre, può essere utilizzato per fare previsioni un passo avanti:

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)
}

con un'accuratezza del 69-86% sui dati forniti:

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

Se le transizioni si verificano in modo casuale, le probabilità di transizione seguiranno una distribuzione uniforme discreta. Questa non è una prova , ma può servire come modo di pensare ai tuoi dati usando un modello semplice.


Sembra che tu stia supponendo che l'alternativa alla cooperazione sia una sorta di risposta casuale. Ho visto che l'alternativa è una risposta non coordinata, che potrebbe essere preprogrammata. Ad esempio, un uccello vola in cerchio. Quindi, quando un partner ha a che fare con l'intruso, il cerchio è più grande. Quindi si occupano dell'intruso uno dopo l'altro, senza cooperazione di per sé, ma aspettando che uno sia finito.
Aksakal,

@Aksakal ma la domanda riguarda le interazioni e ciò che stai descrivendo è una specie di interazione. (Non sostengo che questo modello semplicistico sia corretto.)
Tim

Concordo sul fatto che il PO non è chiaro se stia cercando qualsiasi tipo di modello regolare o specificamente "cooperazione". Direi che quando tre uccelli volano nello stesso spazio, ci deve essere una sorta di modello di comportamento che emerge. Penso che la "cooperazione" implichi più di un semplice schema. Altrimenti, potresti dire che è una cooperazione a tre, con l'intruso che collabora anche in un certo senso.
Aksakal,

@Aksakal potresti avere ragione, ma se questi dati consistono solo dei quattro stati osservati nel tempo, allora il tipo di modello semplicistico che ho proposto può servire da punto di partenza.
Tim
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.