A few comments below

On Mon, Sep 21, 2009 at 3:10 PM, drlucyasher <lasher@rvc.ac.uk> wrote:

>
> Hi,
>
> I am trying to write a simulation of the movements of four animals between
> six patches. The movement between patches is based on a first-order Markov
> chain so that the next patch they visit depends on the patch they were in
> before.
>
> I have written code that allows me to simulate the movement of one animal
> but when I add more there seems to be a problem and all chains come back as
> N/A. I can fix the problem if I run the animals as separate sub-routines
> but
> whilst this is adequate for this stage of my model it won't allow me to
> progress to the next stage. The next stage will be to make the animals move
> in reference to each other using a moving average variable. Therefore I
> think I need all animals simulated within one subroutine (loop).
>
> I probably haven't explained thie very well but here is the code I have
> been
> working on....
>
> #creation of a 6*6 matrix with the transition probabilities
>
> transitions<-matrix(0,nrow=6,ncol=6); transitions[1,1]<- (0/6);
> transitions[1,2]<- (0/6); transitions[1,3]<-(0/6);
> transitions[1,4]<-(0/6);transitions[1,5]<-(0/6);
> transitions[1,6]<-(6/6);transitions[2,1]<- (1/6);transitions[2,2]<- (1/6);
> transitions[2,3]<-(1/6); transitions[2,4]<-(1/6);transitions[2,5]<-(1/6);
> transitions[2,6]<-(1/6);transitions[3,1]<- (1/6);transitions[3,2]<- (1/6);
> transitions[3,3]<-(1/6); transitions[3,4]<-(1/6);transitions[3,5]<-(1/6);
> transitions[3,6]<-(1/6);transitions[4,1]<- (1/6);transitions[4,2]<- (1/6);
> transitions[4,3]<-(1/6); transitions[4,4]<-(1/6);transitions[4,5]<-(1/6);
> transitions[4,6]<-(1/6);transitions[5,1]<- (1/6);transitions[5,2]<- (1/6);
> transitions[5,3]<-(1/6); transitions[5,4]<-(1/6);transitions[5,5]<-(1/6);
> transitions[5,6]<-(1/6);transitions[6,1]<- (1/6);transitions[6,2]<- (1/6);
> transitions[6,3]<-(1/6); transitions[6,4]<-(1/6);transitions[6,5]<-(1/6);
> transitions[6,6]<-(1/6); transitions
>
> # start position probalities
> w <- c((1/6), (1/6), (1/6), (1/6), (1/6), (1/6))
>
> #length of the chain
>
> n<-241
>
>
#matrices creation for birds 1-4
> observationb1<-matrix(nrow=n+1,ncol=6)
> observationb2<-matrix(nrow=n+1,ncol=6)
> observationb3<-matrix(nrow=n+1,ncol=6)
> observationb4<-matrix(nrow=n+1,ncol=6)
>
>
#chains starting position
> i<-1;observationb1[1,2]<-sample(1:6, 1, prob=w, repl=T)
> i<-1;observationb2[1,2]<-sample(1:6, 1, prob=w, repl=T)
> i<-1;observationb3[1,2]<-sample(1:6, 1, prob=w, repl=T)
> i<-1;observationb4[1,2]<-sample(1:6, 1, prob=w, repl=T)
>
>
the i <- 1 above is not necessary.

rather use a for loop instead of the while - easier to use.


> while(i<n+1){
>
> Here your i == 1


>      stateb1<-observationb1[i,2];
>
>
>      probsb1<-transitions[stateb1,1:6];
>
>      nextstateb1<-rmultinom(1,1,probsb1);
>
>      seqb1<-which.max(nextstateb1);
>
>      j<-i+1;
>
>      observationb1[j,2]<-seqb1;i<-j
> #-------------------------------------if I close the brackets here this
>

Here you set your i to j, i.e. i+1


> works but I want to inlcude this next bit of code for bird 2
>
>      stateb2<-observationb2[i,2];
>
>      probsb2<-transitions[stateb2,1:6];
>
>      nextstateb2<-rmultinom(1,1,probsb2);
>
>      seqb2<-which.max(nextstateb2);
>
>      j<-i+1;
>
>      observationb2[j,2]<-seqb2;i<-j
>
> #and so on for birds 3 and 4.
>
> Any help you could give me would be much appreciated.
>
>
Hope this helps,

Rainer


> Lucy
> --
> View this message in context:
> http://www.nabble.com/Four-concurrent-Markov-chains-tp25530321p25530321.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Rainer M. Krug, Centre of Excellence for Invasion Biology, Stellenbosch
University, South Africa

	[[alternative HTML version deleted]]


