[R-sig-Geo] BYM Model Problem

Peter Larson pslarson2 at gmail.com
Mon May 31 22:26:09 CEST 2010


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(nc at 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[nc at 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
>>>
>>>        
>>      
>



More information about the R-sig-Geo mailing list