Hi there,
I'll try to keep my question simple so that I don't take up too much of anyone's time, but
i don't think it's an easy problem, so i really appreciate any advice or suggestions
anyone might have...
As part of a code for multistate markrecapture models, I need to calculate probabilities
of an individual animal being in a particular state at a time when it is not observed;
combined across animals, these probabilities contribute to the calculation of observation
(recapture) rate. These probabilities will depend upon observations of this same
individual at previous or subsequent time periods, which indicate what state that
individual was in at each time it was observed.
(inspired from two papers on Bayesian markrecapture models: Dupuis 1995, Biometrika
82:761772, and Clark et al. 2005, Ecology 86:22322244)
notation:
phi[k] = survival in state k
p[k] = recapture probability in state k
Psi[j,k] = probability of moving from state j to state k (over one time interval)
q[j,k] = phi[j]*Psi[j,k] = prob of surviving in one state and moving to another
z[i,t] = "true state" of an individual (i) at a particular time (t), regardless of whether
or not it was observed; z can be 0 (dead), 1, 2 etc (where 1, 2 etc are states)
parameters are assumed to be the same for all individuals and time periods (for now)
for times when an individual is unobserved (data x=0), we need to know the probability
that it was in each state (pr.z[i,t,k] where k=0,1,2), and then use these probabilities
in a multinomial distribution (i think?) to predict what state it was in (z[i,t]=? when
unobserved)
the two problems i ran into were
(1) winBUGS interpreting my code as having the possibility of a 0index (e.g. q[z[i,t]]
when z[i,t] could be 0) and therefore not compiling ("undefined real result"); i've
created an alternative index that equals a non0 integer (K+1) when z=0 but this doesn't
seem to have worked either
(2) i don't know how to translate these probabilities (pr.z[i,t,k]) into values (z[i,t]);
i thought i could use a multinomial distribution but so far it doesn't work
here's what i've written for this section (annotated to describe each component):
# because WinBUGS doesn't allow 0indices, create a different variable to be K+1 if z=0
(for use below)
for (i in 1:N){
for (t in 1:T){
a[i,t] < ((1  equals(z[i,t], 0)) * z[i,t]) + ((equals(z[i,t],0)) * (K+1))
# lets the index on phi or Psi (below) be z if z is nonzero, and lets the index be K+1
(in this case, K+1=3) if z=0, avoiding 0indices
}
}
q[K+1, K+1] < 1
p[K+1] < 0
for (k in 1:K){
q[K+1, k] < 0
q[k, K+1] < 1phi[k]
for (j in 1:K){
q[k, j] < phi[k] * Psi[k, j]
}
}
# probabilties of unobserved states (what was z when x=0?)  see Clark's Eq4, Dupuis p765
# had to write numerator separately; tmpz is numerator, pr.z is overall probability
# Dupuis and Clark both specify we only estimate pr.z if z[i,t1] not 0, so add that in
for (i in 1:N){
for (t in 2:(T1)){
for (k in 1:(K+1)){
tmpz[i,t,k] < (1equals(z[i,t1], 0)) * q[a[i,t1], k] * (1p[k]) * q[k, a[i,t+1]]
}
}
}
# different equation for last time period (T) because no T+1 possible...
for (i in 1:N){
for (k in 1:(K+1)){
tmpz[i,T,k] < (1equals(z[i,T1], 0)) * q[a[i,T1], k] * (1p[k])
}
}
for (i in 1:N){
for (t in 2:T){
for (k in 1:(K+1)){
pr.z[i,t,k] < tmpz[i,t,k] / sum(tmpz[i,t, ])
}
}
}
for (i in 1:N){
for (t in 2:T){
z[i,t] ~ dmulti(pr.z[i,t,1:K+1],1)
}
}
# how to translate these probabilities of what z might have been into zy[i,t] values...?
# I think it should be a multinomial with n=1 (individualspecific) but i may be wrong!!!
# i'm getting error msg: "multivariate distribution must have more than one component"
# likely because i've got a particular value, instead of a vector, on the lefthand side;
# but i'm not sure how else to write it?
I realise this is rather complex, but if anyone has suggestions regarding avoiding
zeroindices, or alternatives to the multinomial distribution for assigning specific
values from a vector of probabilities, i'd be very grateful. I'd also be happy to explain
it in further detail if that would be helpful, but don't want to clog your inboxes too
much.
Thanks so much,
Anna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Anna Calvert, PhD candidate
[log in to unmask]
Biology Department
room 3134, Life Sciences Centre
Dalhousie University
1355 Oxford St
Halifax, NS B3H 4J1

This list is for discussion of modelling issues and the BUGS software.
For help with crashes and error messages, first mail [log in to unmask]
To mail the BUGS list, mail to [log in to unmask]
Before mailing, please check the archive at www.jiscmail.ac.uk/lists/bugs.html
Please do not mail attachments to the list.
To leave the BUGS list, send LEAVE BUGS to [log in to unmask]
If this fails, mail [log in to unmask], NOT the whole list
