Jak udowodnić współpracę z sekwencji behawioralnych

10

Sytuacja: dwa ptaki (samiec i samica) chronią jaja w gnieździe przed intruzem. Każdy ptak może użyć ataku lub zagrożenia do ochrony i może być obecny lub nieobecny. Z danych wynika, że ​​zachowanie może być komplementarne - ataki mężczyzn, podczas gdy kobiety wykorzystują wyświetlanie zagrożenia i odwrotnie.

Moje pytanie brzmi: jak statystycznie udowodnić taką współpracę? Czy może ktoś zna jakieś badanie behawioralne, które zajmuje się podobną analizą? Zdecydowana większość analiz sekwencyjnych, które znalazłem, koncentruje się na DNA.

wprowadź opis zdjęcia tutaj

Tutaj podaję dane pozorne , ale mój oryginalny zestaw danych składa się z kilkudziesięciu par, które zostały zarejestrowane dokładnie 10 minut podczas obrony ich gniazda. Sekwencja behawioralna każdego ptaka ma zatem długość 600 stanów (każda sekunda ma stan). Te krótsze dane powinny zawierać wzorzec podobny do całego zestawu danych.

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
źródło
2
(+1) za pięknie zilustrowane, dobrze uformowane i interesujące pytanie!
Tim
1
Jak wchodzą w to faktyczne włamania? Czy każda sekwencja odpowiada ciągłym 10-minutowym interwałom, czy tylko interwałom, w których jest intruz? Czy „nieobecny” oznacza nieobecny w gnieździe, czy nieobecny w obszarze, w którym nastąpiło wtargnięcie?
Wayne
Cześć @Wayne! Intruz jest obecny od początku do końca (kukiełka drapieżnika na patyku była prezentowana ptakom gniazdującym przez 10 minut). Nieobecny oznacza nieobecny w obszarze gniazdowania - czasami rodzice po prostu uciekają (czasem wracają po kilku minutach).
Ladislav Naďo
OK, więc każdy ciąg kwadratów obejmuje całe wtargnięcie, a każdy sąsiadujący kwadrat opisuje ciągły 10-minutowy okres. Dobrze. Czy możesz teraz wyjaśnić, co rozumiesz przez „współpracę”? Czy masz na myśli różne role (grożenie kontra atak), czy masz na myśli dzielenie obowiązków wartowniczych (nieobecny / obecny kontra zagrożenie / atak)?
Wayne
Przez współpracę rozumiem „gdy mężczyzna atakuje, kobieta grozi”, i chciałbym przetestować tę hipotezę na alternatywę: „gdy mężczyzna atakuje, kobieta nie woli grozić” (innymi słowy, zachowanie kobiety jest niezależny od męskiego zachowania).
Ladislav Naďo

Odpowiedzi:

3

Wysyłam drugą odpowiedź od twojego ostatniego komentarza

Przez współpracę rozumiem „gdy mężczyzna atakuje, kobieta grozi”, i chciałbym przetestować tę hipotezę na alternatywę: „gdy mężczyzna atakuje, kobieta nie woli grozić” (innymi słowy, zachowanie kobiety jest niezależny od męskiego zachowania).

to zmieniacz gier. Wydaje się, że problem można rozwiązać z zupełnie innej perspektywy. Po pierwsze, jesteś zainteresowany tylko częścią próbki, gdy atakują mężczyźni. Po drugie, jesteś zainteresowany tym, czy w takich przypadkach kobiety robią smakołyki częściej niż się spodziewalibyśmy, gdyby robili je losowo. Aby przetestować taką hipotezę, możemy użyć testu permutacji: losowo potasuj albo male_seqalbo female_seq(to nie ma znaczenia), a następnie policz przypadki gdzie male_seq == "attack"i female_seq == "treat"aby uzyskać rozkład zerowy. Następnie porównaj liczbę uzyskaną z twoich danych z liczbą uzyskaną w rozkładzie zerowymp-wartość.

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

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

Możesz zdefiniować swoją statystykę testową inaczej, w zależności od tego, jak zdefiniujesz „preferencje” kobiet. Test permutacji w tym przypadku jest bezpośrednią interpretacją twojegoH0: „zachowanie kobiety jest niezależne od zachowania mężczyzny”, co prowadzi do: „zachowanie kobiety jest przypadkowe, biorąc pod uwagę zachowanie mężczyzny”, więc zachowania są losowo tasowane pod H0.

Co więcej, nawet jeśli założono, że zachowania pojawiają się w klastrach tego samego zachowania powtarzanych przez pewien czas, za pomocą testu permutacji można przetasować całe klastry:

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

W obu przypadkach wzorce współpracy w dostarczonych danych wydają się dalekie od losowych. Zauważ, że w obu przypadkach ignorujemy autokorelację tych danych, raczej pytamy: jeśli wybramy przypadkowy moment w czasie, gdy mężczyzna atakuje, czy kobieta byłaby mniej lub bardziej skłonna do robienia przysmaków w tym samym czasie?

Ponieważ wydaje się, że mówisz o przyczynowości („kiedy ... wtedy”), przeprowadzając test permutacji, możesz być zainteresowany porównaniem zachowania mężczyzn w t1 czas na zachowanie kobiet w tczas (jaka była „reakcja” kobiet na zachowanie mężczyzn?), ale o to musicie zadać sobie pytanie. Testy permutacyjne są elastyczne i można je łatwo dostosować do rodzaju problemów, które wydaje się opisywać.

Tim
źródło
2

Możesz myśleć o swoich danych w kategoriach dwuwymiarowego łańcucha Markowa. Masz dwie różne zmienneX dla kobiet i Y dla mężczyzn, którzy opisują stochastyczny proces zmian w X i Y o czasie tdo jednego z czterech różnych stanów. Oznaczmy przezXt1,iXt,j przejście dla X od t1 do t czas, od i-do j-ty stan. W takim przypadku przejście w czasie do innego stanu zależy od poprzedniego stanu wX i wY:

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

Prawdopodobieństwa przejścia można łatwo obliczyć, zliczając historie przejścia i normalizując później prawdopodobieństwa:

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)

Można go również łatwo symulować przy użyciu krańcowych prawdopodobieństw:

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

Wynik takiej symulacji przedstawiono na wykresie poniżej.

wprowadź opis zdjęcia tutaj

Ponadto można go wykorzystać do prognozowania o jeden krok do przodu:

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

z dokładnością 69–86% w podanych danych:

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

Gdyby przejścia następowały losowo, prawdopodobieństwo przejścia następowałoby po dyskretnym jednorodnym rozkładzie. Nie jest to dowód , ale może służyć jako sposób myślenia o danych przy użyciu prostego modelu.

Tim
źródło
Wygląda na to, że zakładasz, że alternatywą dla współpracy jest jakaś przypadkowa reakcja. Widziałem, że alternatywą jest nieskoordynowana reakcja, która może być wstępnie zaprogramowana. Na przykład ptak lata w kółko. Tak więc, gdy partner ma do czynienia z intruzem, okrąg jest większy. Więc radzą sobie z intruzem jeden po drugim, bez współpracy per se, ale czekając, aż jeden się skończy.
Aksakal
@Aksakal, ale pytanie dotyczy interakcji, a to, co opisujesz, jest rodzajem interakcji. (Nie twierdzę, że ten uproszczony model jest poprawny.)
Tim
Zgadzam się, że OP nie jest jasne, czy szuka jakiegoś regularnego wzoru, czy konkretnie „współpracy”. Twierdziłbym, że kiedy trzy ptaki lecą w tej samej przestrzeni, musi pojawić się pewien rodzaj zachowań. Myślę, że „współpraca” to coś więcej niż tylko wzorzec. W przeciwnym razie można powiedzieć, że jest to współpraca trójstronna, z intruzem w pewnym sensie współpracującą.
Aksakal
@Aksakal możesz mieć rację, ale jeśli te dane składają się tylko z czterech stanów zaobserwowanych w czasie, to rodzaj uproszczonego modelu, który zaproponowałem, może służyć jako punkt wyjścia.
Tim