Wie man die Zusammenarbeit anhand von Verhaltenssequenzen beweist


10

Situation: Zwei Vögel (männlich und weiblich) schützen ihre Eier im Nest vor einem Eindringling. Jeder Vogel kann entweder Angriff oder Bedrohung zum Schutz verwenden und entweder anwesend oder abwesend sein. Aus Daten geht ein Muster hervor, dass das Verhalten komplementär sein kann - männliche Angriffe, während Frauen die Bedrohungsanzeige verwenden und umgekehrt.

Meine Frage ist: Wie kann eine solche Zusammenarbeit statistisch nachgewiesen werden? Oder kann jemand eine Verhaltensstudie kennen, die sich mit ähnlichen Analysen befasst? Die überwiegende Mehrheit der von mir gefundenen sequentiellen Analysen konzentriert sich auf DNA.

Geben Sie hier die Bildbeschreibung ein

Hier stelle ich einige Dummy-Daten zur Verfügung , aber mein ursprünglicher Datensatz besteht aus Dutzenden von Paaren, die genau 10 Minuten bei der Verteidigung ihres Nestes aufgezeichnet wurden. Die Verhaltenssequenz jedes Vogels ist daher 600 Zustände lang (jede Sekunde hat einen Zustand). Diese kürzeren Daten sollten ein Muster enthalten, das dem gesamten Datensatz ähnelt.

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) für wunderschön illustrierte, wohlgeformte und interessante Fragen!
Tim

1
Wie gehen tatsächliche Eingriffe in diese ein? Entspricht jede Sequenz zusammenhängenden 10-Minuten-Intervallen oder nur Intervallen, in denen sich ein Eindringling befindet? Bedeutet "abwesend" Abwesenheit im Nest oder Abwesenheit in dem Gebiet, in dem ein Eindringen stattgefunden hat?
Wayne

Hallo @ Wayne! Der Eindringling ist von Anfang bis Ende anwesend (eine Puppe eines Raubtiers auf einem Stock wurde 10 Minuten lang nistenden Vögeln präsentiert). Abwesend bedeutet, nicht im Nistbereich zu sein - manchmal rennen die Eltern einfach weg (manchmal kehren sie nach einigen Minuten zurück).
Ladislav Naďo

OK, also enthält jede Quadratfolge das gesamte Eindringen, und jedes benachbarte Quadrat beschreibt einen zusammenhängenden Zeitraum von 10 Minuten. Gut. Können Sie nun klarstellen, was Sie unter "Kooperation" verstehen? Meinen Sie verschiedene Rollen (drohen gegen angreifen) oder meinen Sie das Teilen der Wachpflicht (abwesend / gegenwärtig gegen Bedrohung / Angriff)?
Wayne

Mit Kooperation meine ich "wenn Männer angreifen, machen Frauen Drohungen", und ich möchte diese Hypothese gegen eine Alternative testen: "Wenn Männer angreifen, ziehen Frauen es nicht vor, Drohungen zu machen" (mit anderen Worten, Verhalten von Frauen ist unabhängig vom männlichen Verhalten).
Ladislav Naďo

Antworten:


3

Ich poste die zweite Antwort seit deinem letzten Kommentar

Mit Kooperation meine ich "wenn Männer angreifen, machen Frauen Drohungen", und ich möchte diese Hypothese gegen eine Alternative testen: "Wenn Männer angreifen, ziehen Frauen es nicht vor, Drohungen zu machen" (mit anderen Worten, Verhalten von Frauen ist unabhängig vom männlichen Verhalten).

ist ein Game-Changer. Es scheint, dass das Problem aus einer völlig anderen Perspektive angegangen werden kann. Erstens interessieren Sie sich nur für einen Teil Ihrer Stichprobe, wenn Männer angreifen. Zweitens sind Sie interessiert, wenn Frauen in solchen Fällen häufiger Leckereien machen, als wir es erwarten würden, wenn sie sie zufällig machen würden. Um eine solche Hypothese zu testen, können wir einen Permutationstest verwenden: entweder male_seqoder zufällig mischen female_seq(es spielt keine Rolle) und dann Fälle zählen, in denen male_seq == "attack"und female_seq == "treat"um eine Nullverteilung zu erhalten. Vergleichen Sie als Nächstes die aus Ihren Daten erhaltene Anzahl mit der Anzahl in der Nullverteilung, um den Wert zu erhalten .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

Sie können Ihre Teststatistik unterschiedlich definieren, je nachdem, wie Sie die "Präferenz" von Frauen definieren. Der Permutationstest ist in diesem Fall eine direkte Interpretation Ihres : "Das Verhalten der Frau ist unabhängig vom männlichen Verhalten", was zu folgendem führt: "Das weibliche Verhalten ist bei männlichem Verhalten zufällig", sodass die Verhaltensweisen unter zufällig gemischt werden .H0H0

Selbst wenn Sie davon ausgegangen sind, dass die Verhaltensweisen in Clustern desselben Verhaltens auftreten, die für einen bestimmten Zeitraum wiederholt wurden, können Sie mit dem Permutationstest ganze Cluster mischen:

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 beiden Fällen scheinen die Kooperationsmuster in den von Ihnen angegebenen Daten alles andere als zufällig zu sein. Beachten Sie, dass wir in beiden Fällen die autokorrelierte Natur dieser Daten ignorieren und eher fragen: Wenn wir einen zufälligen Zeitpunkt für einen Angriff des Mannes auswählen würden, wäre es weniger wahrscheinlich, dass Frauen gleichzeitig Leckereien machen?

Da Sie anscheinend über Kausalität sprechen ("wann ... dann"), könnten Sie während der Durchführung eines Permutationstests daran interessiert sein, das Verhalten von Männern in Zeit mit dem Verhalten von Frauen in Zeit zu vergleichen (worauf war die "Reaktion" von Frauen? männliches Verhalten?), aber das ist etwas, was Sie sich fragen müssen. Permutationstests sind flexibel und können leicht an die Art von Problemen angepasst werden, die Sie zu beschreiben scheinen.t1t


2

Sie können sich Ihre Daten als bivariate Markov-Kette vorstellen. Sie haben zwei verschiedene Variablen für Frauen und für Männer, die den stochastischen Prozess der Änderungen von und zum Zeitpunkt in einen von vier verschiedenen Zuständen beschreiben. Bezeichnen wir mit Übergang für von zu Zeit, vom ten zum ten Zustand. In diesem Fall ist der zeitliche Übergang in einen anderen Zustand vom vorherigen Zustand in und in abhängig :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)

Übergangswahrscheinlichkeiten können einfach berechnet werden, indem Übergangshistorien gezählt und die Wahrscheinlichkeiten anschließend normalisiert werden:

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)

Es kann auch einfach mit Grenzwahrscheinlichkeiten simuliert werden:

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

Das Ergebnis einer solchen Simulation ist unten dargestellt.

Geben Sie hier die Bildbeschreibung ein

Darüber hinaus können damit Vorhersagen getroffen werden, die einen Schritt voraus sind:

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

mit einer Genauigkeit von 69-86% der von Ihnen angegebenen Daten:

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

Wenn die Übergänge zufällig auftreten würden, würden die Übergangswahrscheinlichkeiten einer diskreten gleichmäßigen Verteilung folgen. Dies ist kein Beweis , kann aber dazu dienen, mithilfe eines einfachen Modells über Ihre Daten nachzudenken.


Sie gehen anscheinend davon aus, dass die Alternative zur Zusammenarbeit eine zufällige Antwort ist. Ich konnte sehen, dass die Alternative eine unkoordinierte Antwort ist, die möglicherweise vorprogrammiert ist. Zum Beispiel fliegt ein Vogel im Kreis. Wenn ein Partner mit dem Eindringling zu tun hat, ist der Kreis größer. Also beschäftigen sie sich nacheinander mit dem Eindringling, ohne per se zusammenzuarbeiten, sondern warten, bis einer fertig ist.
Aksakal

@Aksakal, aber die Frage betrifft Interaktionen und was Sie beschreiben, ist eine Art Interaktion. (Ich behaupte nicht, dass dieses vereinfachende Modell korrekt ist.)
Tim

Ich stimme zu, dass OP nicht klar ist, ob er nach einem regelmäßigen Muster oder speziell nach "Kooperation" sucht. Ich würde argumentieren, wenn drei Vögel im selben Raum fliegen, muss sich eine Art Verhaltensmuster herausbilden. Ich denke, dass "Kooperation" mehr als nur ein Muster beinhaltet. Ansonsten könnte man sagen, dass es sich um eine Drei-Wege-Kooperation handelt, wobei der Eindringling in gewissem Sinne auch kooperiert.
Aksakal

@Aksakal Sie könnten Recht haben, aber wenn diese Daten nur aus den vier zeitlich beobachteten Zuständen bestehen, kann das von mir vorgeschlagene vereinfachte Modell als Ausgangspunkt dienen.
Tim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.