[R] Help with R2 OpenBUGs

SuzieK suzanne.f.kenny at hotmail.co.uk
Fri Jul 13 10:24:37 CEST 2012


Hi, I'm currently working on the below codes however whenever I run it in
openbugs it gives an error message saying: unknown type of logical function
error pos 76.  Any help would be appreciated. 

## bugs code
library(R2OpenBUGS)
sink("C:/Users/CCF/Documents/Suzie Work/PTY Project/Waterhole
Correction/ungulate.txt")
cat("
model{

# hyperparameters
# habitat effects for each functional group
g <- length(table(G))
for(i in 1:g){	# number of functional group
for(j in 1:3){	# number of habitat type
	mu.h[i,j] ~ dnorm(0,0.0001) I(-5,5)
	sigma.h[i,j] ~ dunif(0,5)
	tau.h[i,j] <- 1/(sigma.h[i,j]*sigma.h[i,j])
	}
	}

# detectability
mu.r ~ dnorm(0,0.0001) I(-5,5)
sigma.r ~ dunif(0,5)
tau.r <- 1/(sigma.r*sigma.r)

psi ~ dunif(0,1)	# inclusion rate that generates wi

# proportion of number of species among groups
for(i in 1:g){
	prop[i] ~ dgamma(1,1)
	prob[i] <- prop[i]/sum(prop[])
	}

for(i in 1:(S+m)){
	r[i] ~ dnorm(mu.r,tau.r) I(-5,5)		# generating parameters related to
detectability
	p[i] <- 1/(1+exp(-(r[i])))		# individual-level detection probability
	w[i] ~ dbern(psi)				# indicator variable whether each species is exposed
to sampling or not
	G[i] ~ dcat(prob[1:g])			# group identity
for(h in 1:3){	# habitat effects
	habitat.eff[i,h] ~ dnorm(mu.h[G[i],h],tau.h[G[i],h]) I(-5,5)
	}
for(j in 1:20){	# fitting process
	# ecological process model
	lambda[i,j] <-  exp(habitat.eff[i,habitat[j]])
	Z[i,j] ~ dpois(lambda[i,j])	# latent abundance of each species at each site
at each visit
	A[i,j] <- Z[i,j]*w[i]		# latent abundance only for species exposed to
sampling
for(v in 1:7){
	# detection process model
	AY[i,j,v] ~ dbin(p[i],A[i,j])
	}
	}
# group identity (indicator variable)
G1[i] <- equals(G[i],1)
G2[i] <- equals(G[i],2)
	}

for(i in 1:(S+m)){
for(j in 1:20){
	A1[i,j] <- A[i,j]*G1[i]
	A2[i,j] <- A[i,j]*G2[i]
	O[i,j] <- step(A[i,j]-1)		# latent occupancy of each species for each site
	O1[i,j] <- O[i,j]*G1[i]
	O2[i,j] <- O[i,j]*G2[i]
	}
	}

for(j in 1:20){
	AB0[j] <- sum(A[,j])
	AB1[j] <- sum(A1[,j])
	AB2[j] <- sum(A2[,j])
	SpR0[j] <- sum(O[,j])
	SpR1[j] <- sum(O1[,j])
	SpR2[j] <- sum(O2[,j])
	}

for(i in 1:3){
for(j in 1:7){
	HabAB0[i,j] <- AB0[hab[i,j]]
	HabAB1[i,j] <- AB1[hab[i,j]]
	HabAB2[i,j] <- AB2[hab[i,j]]
	HabSpR0[i,j] <- SpR0[hab[i,j]]
	HabSpR1[i,j] <- SpR1[hab[i,j]]
	HabSpR2[i,j] <- SpR2[hab[i,j]]
	}
	HAB0[i] <- mean(HabAB0[i,])
	HAB1[i] <- mean(HabAB1[i,])
	HAB2[i] <- mean(HabAB2[i,])
	HSpR0[i] <- mean(HabSpR0[i,])
	HSpR1[i] <- mean(HabSpR1[i,])
	HSpR2[i] <- mean(HabSpR2[i,])
	}

R <- sum(w[1:(S+m)])	# estimating unknown number of species that occupy any
sites

}
",fill=TRUE)
sink()

data <- list("m","S",
	"habitat",
	"G","g",
#	"date",
	"hab",
	"AY")
g <- length(table(G))	
inits <- function()list(
	mu.h=matrix(rnorm(6),nrow=2),sigma.h=matrix(runif(6),nrow=2),
	mu.r=rnorm(1),sigma.r=runif(1),
	r=rnorm(S+m),
	prop=runif(n=g,min=0,max=7),
	Z=array(rpois(n=(S+m)*20,lambda=20),dim=c((S+m),20)),
	w=rep(1,(S+m)),psi=runif(1))
parameters <- c(
	"mu.h","sigma.h",
	"habitat.eff",
	"mu.r","sigma.r",
	"r",
	"R","psi",
	"A",
	"O",
	"HAB0","HAB1","HAB2",
	"HSpR0","HSpR1","HSpR2"
	)

out <- bugs (data, inits, parameters,
model.file="C:/Users/CCF/Documents/Suzie Work/PTY Project/Waterhole
Correction/ungulate.txt",
OpenBUGS.pgm="C:/Users/CCF/Desktop/OpenBUGS/OpenBUGS321/OpenBUGS.exe",
n.thin=10, n.burnin=100, n.chains=3,n.iter=1000, debug=TRUE)

--
View this message in context: http://r.789695.n4.nabble.com/Help-with-R2-OpenBUGs-tp4636412.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list