動物が取り除かれ、検出が時間と空間で変化する複数の観測期間にわたって n.sites から動物を検出する確率を推定しようとしています。5 つの観察期間で次のようなことをするとうまくいきます。
for(i in 1:nsites){
mu[i,1] <- p[i,1]
mu[i,2] <- p[i,2]*(1-p[i,1])
mu[i,3] <- p[i,3]*(1-p[i,1])*(1-p[i,2])
mu[i,4] <- p[i,4]*(1-p[i,1])*(1-p[i,2])*(1-p[i,3])
mu[i,5] <- p[i,5]*(1-p[i,1])*(1-p[i,2])*(1-p[i,3])*(1-p[i,4])
}
時間 2 の確率は時間 1 の確率に依存し、時間 3 の確率は時間 1 と 2 の確率に依存します。これを 5 期間だけ行う場合、書くのは大したことではありません。このアウト。しかし、10、15、20 以上の期間を取得すると、書き出すのはかなり面倒です。各ステップを入力せずにこのループを記述する方法があるはずだと思いますが、その方法が思いつきません。おそらく、追加の索引付けまたは他の制御ステートメントまたは累乗関数です。p[i] が各 j 番目の観測で同じである場合 (つまり、p[i,1] = p[i,2] = p[i,3] など)、次のようになります。
p[i]*(1-p[i])^5
どんな提案でも大歓迎です。
これはバグ言語コードです。私は R で作業しており、コードを rjags パッケージ経由で JAGS に送信しました。BUGS、R、または疑似コードが私の目的に適しています。
問題をシミュレートする R コードを次に示します。
set.seed(123)
testp <- matrix(runif(108, 0.1, 0.5), 108, 5)
testmu <- matrix(NA, 108, 5)
for(i in 1:nsites){
testmu[i,1] <- testp[i,1]
testmu[i,2] <- testp[i,2]*(1-testp[i,1])
testmu[i,3] <- testp[i,3]*(1-testp[i,1])*(1-testp[i,2])
testmu[i,4] <- testp[i,4]*(1-testp[i,1])*(1-testp[i,2])*(1-testp[i,3])
testmu[i,5] <- testp[i,5]*(1-testp[i,1])*(1-testp[i,2])*(1-testp[i,3])*(1-testp[i,4])
}
助けてくれてありがとう。ダン