Dear Users, I am trying to do a spatial Poisson-gamma model. I intend to read my data into R & then call OpenBugs/GeoBUGS/WinBugs to implement the car.normal function.
Here is a copy for my codes: # in R: # do Poisson-gamma spatial models using CAR # y= number of employments x=distance to cbd library(spdep) library(rjags) #Read data taz = read.csv("file path", header=TRUE) y=taz[,9] # number of employment distcbd=taz[,10] # dist2cbd # compute adjacency matrix and adj, N, sumNumNeigh required by car.normal function in GeoBUGS shape <- readShapePoly("file path", IDvar="FID2") shape_nb <- poly2nb(shape) N= length(shape_nb) num=sapply(shape_nb,length) adj=unlist(shape_nb) sumNumNeigh=length(unlist(shape_nb)) # create initial values tau.b = 0.5 tau.h = 0.2 alpha=0 beta=0 # setup and compile the jags model. I used jags to call OpenBUGS from R. # to do adaptation for. Adaptation is a way to get better samples, you don't # have to do this but it'll help speed convergence in some cases. jags <- jags.model("model1.txt", data=list("O"=y, "N"=N, "distcbd"=distcbd, "num"=num, "adj"=adj,"sumNumNeigh"=sumNumNeigh), init=list("tau.b"=tau.b, "tau.h"=tau.h, "alpha"=alpha, "beta"=beta), n.chains=1, n.adapt=0) # Burn-in. update(jags, 500) # Draw samples and store them. samples <- coda.samples(jags, c('alpha', 'beta'), 2000) # only store alpha & beta #### this is how the model1.txt look like (so this is OpenBUGS codes) model { for (i in 1 : N) { # Likelihood O[i] ~ dpois(mu[i]) log(mu[i]) <- alpha + beta * distcbd[i] + b[i] + h[i] RR[i] <- exp(alpha + beta * distcbd[i] + b[i] + h[i]) # Area-specific relative risk (for maps) # Exchangeable prior on unstructured random effects h[i] ~ dnorm(0, tau.h) } # CAR prior distribution for spatial random effects: b[1:N] ~ car.normal(adj[], weights[], num[], tau.b) for(k in 1:sumNumNeigh) { weights[k] <- 1 } # Other priors: alpha ~ dflat() beta ~ dnorm(0.0, 1.0E-5) tau.b ~ dgamma(0.5, 0.0005) sigma.b <- sqrt(1 / tau.b) tau.h ~ dgamma(0.5, 0.0005) sigma.h <- sqrt(1 / tau.h) } However, I got an error message "RUNTIME ERROR:Compilation error on line 16.Unknown distribution: dflat ". When I changed the flat prior (dflat) into a uniform prior (dunif(-1000,1000)). I got another error message "RUNTIME ERROR:Compilation error on line 11.Unknown distribution: car.normal." I've been banging my head against the wall trying to solve this mistery but to no avail. Does anyone can help me out? I appreciate very much for your time and expertise! Another more salient point I've been confused about is which package should I use to do such a spatial model? WinBUGS or OpenBUGS? It seems that GeoBUGS is built in both of them & I installed both WInBUGS 14 (& then upgrade to 1.4.3) and OpenBUGS version 3.2.1 rev 781. My R is 2.13.2. Is there anything in particular I should do with the WInBUGS or OpenBUGS, whichever one I should use, when running my codes in R? I just opened WinBUGS/OpenBUGS when running the codes in R.... Thanks so much! All the best, Yiyi -- View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Failure-to-call-GeoBUGS-s-car-normal-function-from-R-tp7041139p7041139.html Sent from the R-sig-geo mailing list archive at Nabble.com. _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo