 Email discussion lists for the UK Education and Research communities  ## BUGS@JISCMAIL.AC.UK

#### View:

 Message: [ First | Previous | Next | Last ] By Topic: [ First | Previous | Next | Last ] By Author: [ First | Previous | Next | Last ] Font: Proportional Font  LISTSERV Archives  BUGS Home  BUGS 2006

#### Options  Subscribe or Unsubscribe   Log In   Get Password Subject: avoiding zero indices? and multinomial notation?

From:  Date: Thu, 12 Oct 2006 11:43:53 -0300

Content-Type: text/plain

Parts/Attachments:  text/plain (137 lines)
 ```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 multi-state mark-recapture 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 mark-recapture models: Dupuis 1995, Biometrika 82:761-772, and Clark et al. 2005, Ecology 86:2232-2244) 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 0-index (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 non-0 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 0-indices, 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 non-zero, and lets the index be K+1 (in this case, K+1=3) if z=0, avoiding 0-indices } } q[K+1, K+1] <- 1 p[K+1] <- 0 for (k in 1:K){ q[K+1, k] <- 0 q[k, K+1] <- 1-phi[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,t-1] not 0, so add that in for (i in 1:N){ for (t in 2:(T-1)){ for (k in 1:(K+1)){ tmpz[i,t,k] <- (1-equals(z[i,t-1], 0)) * q[a[i,t-1], k] * (1-p[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] <- (1-equals(z[i,T-1], 0)) * q[a[i,T-1], k] * (1-p[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 (individual-specific) 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 left-hand side; # but i'm not sure how else to write it? I realise this is rather complex, but if anyone has suggestions regarding avoiding zero-indices, 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 ```