Virgilio,

It appears to be working now. Thank you very much for your help.

Pete



On 2010/05/31 16:21, Virgilio Gomez Rubio wrote:
Hi Peter,

You will probably need to define 'N' as the number of areas in your
problem. For this, you could use

N<-nrow(n...@data)

This is the most likely cause for your problem, as I mentioned in my
previous e-mail


Also, please use these two lines to get the neighbour list in WB format:

nc.neig<-poly2nb(nc)
nc.nb<- nb2WB(nc.neig)


I believe that your code will work with these changes.

Best,

Virgilio

El lun, 31-05-2010 a las 16:19 -0400, Peter Larson escribió:
Hello,

I can get the example in the book to work fine, but it will not work
with my data. I have loaded a shp file in using the code below but don't
know if I can attach it to the whole list or not.

What could be going wrong?

Thank you very much for your help,

Pete


nc<- readShapePoly("LynchingHotSpots.shp",  proj4string=llCRS)

statesWanted<- c("Alabama","Mississippi","Louisiana","Georgia","Kentucky",
"North Carolina","South Carolina","Florida","Arkansas","Tennessee")

nc<- nc...@data$state_name %in% statesWanted,]

#names(nc)#Variables in the dataset

nc$Observed<-nc$Lynchings
nc$Population<-nc$POP1990   #Population at risk
r<-sum(nc$Observed)/sum(nc$Population)
nc$Expected<-nc$Population*r

#Computed Standardised Mortality Ratio
nc$SMR<-nc$Observed/nc$Expected

#######BESAG

nc.nb<- nb2WB(nc)
nc$nwprop<- nc$Lynchings/nc$POP1990
d<-list(N=N, observed=nc$Observed, expected=nc$Expected,
    nonwhite=nc$nwprop,#log(nwprop/(1-nwprop)),
    adj=nc.nb$adj,  weights=nc.nb$weights, num=nc.nb$num)

dwoutcov<-list(N=N, observed=nc$Observed, expected=nc$Expected,
    adj=nc.nb$adj,  weights=nc.nb$weights, num=nc.nb$num)

inits<-list(u=rep(0,N), v=rep(0,N), alpha=0, beta=0, precu=.001,
precv=.001)
#inits$v[d$num==0]<-NA


#### Winbugs ####

   bymmodelfile<-paste(getwd(), "/besag.txt", sep="")
   wdir<-paste(getwd(), "/BYM", sep="")
   if(!file.exists(wdir)){dir.create(wdir)}
   BugsDir<- "C:/Users/Pete/Downloads/WinBUGS14"
   MCMCres<- bugs(data=d, inits=list(inits),
   working.directory=wdir,
   parameters.to.save=c("theta", "alpha", "beta", "u", "v", "sigmau",
"sigmav"),
   n.chains=1, n.iter=30000, n.burnin=20000, n.thin=10,
   model.file=bymmodelfile,
   bugs.directory=BugsDir,
   WINEPATH="/usr/bin/winepath")
       save(file="BYM.RData", list=c("d", "inits", "MCMCres") )
#Load the data obtained by running WinBUGS in Windows
nc$BYMmean<-MCMCres$mean$theta
#nc$BYMmedian<-MCMCres$median$theta
nc$BYMumean<-MCMCres$mean$u
#nc$BYMumedian<-MCMCres$median$u
nc$BYMvmean<-MCMCres$mean$v
#nc$BYMvmedian<-MCMCres$median$v
On 2010/05/31 14:20, Virgilio Gomez Rubio wrote:

On 2010/05/31 14:20, Virgilio Gomez Rubio wrote:
Dear Peter,



I am working through the examples in Applied Spatial Data Analysis with
R using my own data.

When I attempt to run the Besage-York-Mollie model in Chapter 11, I get
an index out of range error in WinBugs.

How should I go about finding where the problem is?

PLease, could you provide more information? In particular, are you
trying to reproduce the example in the book or adapting it to your own
data set? In that case, could you provide the code and data that you are
using (in a private e-mail, if you prefer)?

The error usually happens when there is some mismatch between the index
in the loop exceeds some vector size(i.e., looping over 20 areas when
there are just 15).

Best,

Virgilio



_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to