行動シーケンスから協力を証明する方法


10

状況: 2羽の鳥(オスとメス)が侵入者から巣の卵を保護します。各鳥は、保護のために攻撃または脅威のいずれかを使用でき、存在する場合と存在しない場合があります。行動が補完的である可能性があるというデータから浮上しているパターンがあります-女性が脅威の表示を使用している間、男性の攻撃はその逆です。

私の質問は、そのような協力を統計的に証明するにどうすればよいですか? または、誰かが同様の分析を扱う行動研究を知っていますか?私が見つけた逐次分析のほとんどはDNAに焦点を当てています。

ここに画像の説明を入力してください

ここではいくつかのダミーデータを提供していますが、私の元のデータセットは、巣を守るために正確に10分間記録された数十のペアで構成されています。したがって、すべての鳥の行動シーケンスは600ステートの長さです(1秒ごとにステートがあります)。これらの短いデータには、データセット全体と同様のパターンが含まれているはずです。

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)美しく図解された、整形式で興味深い質問の場合!
ティム

1
実際の侵入はどのようにしてこれに入りますか?各シーケンスは、連続する10分の間隔に対応していますか、それとも侵入者がいる間隔のみに対応していますか?「不在」とは、巣にいない、または侵入があったときにその場所にいないという意味ですか?
ウェイン

こんにちは@Wayne!侵入者は最初から最後まで存在します(棒に捕食者のダミー人形が10分間巣を作る鳥に提示されました)。不在とは、入れ子になった場所に存在しないことを意味します-ときどき親は逃げるだけです(時には数分後に戻ってきます)。
LadislavNaďo2016年

OK、それで、正方形の各文字列は侵入全体を含み、隣接する各正方形は連続した10分の期間を表します。良い。さて、あなたは「協力」によってあなたが何を意味するのかを明確にできますか?異なる役割を意味しますか(脅威と攻撃)、それとも警備任務(不在/存在と脅威/攻撃)を共有することを意味しますか?
Wayne

協力とは「男性が攻撃しているとき、女性は脅迫をする」という意味であり、私はこの仮説を別の選択肢に対してテストしたいと思います。「男性が攻撃しているとき、女性は脅迫を好まない」男性の行動とは無関係です)。
LadislavNaďo16年

回答:


3

私はあなたの最後のコメントから2番目の答えを投稿します

協力とは「男性が攻撃しているとき、女性は脅迫をする」という意味であり、私はこの仮説を別の選択肢に対してテストしたいと思います。「男性が攻撃しているとき、女性は脅迫を好まない」男性の行動とは無関係です)。

ゲームチェンジャーです。問題はまったく異なる視点からのアプローチである可能性があるようです。まず、男性が攻撃している場合、サンプルの一部のみに関心があります。次に、そのような場合に、女性がランダムに作った場合よりも女性がおやつを作る頻度が高いかどうかに興味があります。そのような仮説を検証するために、我々は、並べ替え検定を使用することができますランダムにいずれかのシャッフルmale_seqfemale_seq(それは問題ではない)、その後、どこのケースをカウントmale_seq == "attack"し、female_seq == "treat"ヌル分布を得るために。次に、データから取得したカウントをnull分布のカウントと比較して、値を取得します。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

さらに、動作が一定の期間繰り返される同じ動作のクラスターに現れると想定した場合でも、順列テストを使用すると、クラスター全体をシャッフルできます。

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

どちらの場合も、提供したデータの協力パターンはランダムではないようです。どちらの場合も、このデータの自己相関の性質を無視していることに注意してください。男性が攻撃しているときにランダムな時点を選択した場合、女性が同時に扱いをする可能性は低くなりますか、それとも高くなりますか?

因果関係について話しているように見えるので(「いつ...その後」)、順列検定を実行しているときに、時間での男性の行動と時間での女性の行動(女性の「反応」とは何か)を比較したいと思うかもしれません。男性の行動?)、しかしこれはあなた自身に尋ねなければならないものです。順列テストは柔軟性があり、説明しているような問題に簡単に適合させることができます。t1t


2

データは、2変量マルコフ連鎖の観点から考えることができます。女性には2つの異なる変数があり、男性にはがあります。これらの変数は、時間におけるとの4つの異なる状態の1 つへの変化の確率過程を表します。レッツ示すの移行からへから時間に番目の番目の状態。この場合、時間内の別の状態への遷移は、および前の状態を条件します。XYXYtXt1,iXt,jXt1tiX YjX Y

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

遷移確率は、遷移履歴をカウントし、後で確率を正規化することで簡単に計算できます。

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)

限界確率を使用して簡単にシミュレーションすることもできます。

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

そのようなシミュレーションの結果を以下にプロットします。

ここに画像の説明を入力してください

さらに、1ステップ先の予測を行うために使用できます。

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

あなたが提供したデータの69-86%の精度で:

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

遷移がランダムに発生した場合、遷移確率は離散均一分布に従います。これは証明ではありませんが、単純なモデルを使用してデータについて考える方法として役立ちます。


協力の代替手段はある種のランダムな応答であると想定しているようです。代替案は無秩序な応答であり、事前にプログラムされている可能性があることがわかりました。たとえば、鳥は円を描くように飛ぶ。したがって、パートナーが侵入者に対処している場合、サークルはより大きくなります。そのため、彼らは侵入者に次々と対処しますが、それ自体は協力しませんが、侵入者が終わるまで待ちます。
Aksakal

@Aksakalしかし、問題は相互作用についてであり、あなたが説明しているのは一種の相互作用です。(私はこの単純なモデルが正しいと主張しません。)
Tim

私が同意するのは、OPが何らかの規則的なパターンを探しているのか、具体的には「協力」を探しているのかが明確ではないということです。3羽の鳥が同じ空間を飛んでいるとき、ある種の行動パターンが出現しているはずだと私は主張します。「協力」には単なるパターン以上のものが必要だと思います。それ以外の場合は、侵入者も何らかの意味で協力して、3方向の協力であると言えます。
Aksakal

@Aksakalあなたは正しいかもしれませんが、このデータが時間内に観測された4つの状態のみで構成されている場合、私が提案した種類の単純化したモデルが出発点として役立ちます。
ティム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.