addSpatial {glmmBUGS} | R Documentation |
Put an adjacency object in a ragged array
addSpatial(map, raggedArray, effect = NULL)
map |
a spatialPolygonsDataFrame object, or an nb object or a list of two vectors, adj and num |
raggedArray |
the result from winBugsRaggedArray |
effect |
a character vector listing the effect names |
Computes the values need by the car.normal
distribution in WinBUGS.
This function is called by glmmBUGS
when a spatial argument is provided, addSpatial
is
usually not called by a user.
The ragged array is returned, with the following additional elements
num |
a vector of the number of neighbours of each region |
adj |
a vector containing the neighbours |
weights |
a vector of ones, the same length as adj |
NregionSpatial |
where 'region' is replaced by the name of the effect. The number of regions. |
Patrick Brown
Also see the geoBUGS manual
# get a winbugs model and data ready, without a spatial effect data(ontario) forBugs = glmmBUGS(formula=Observed + logExpected ~ 1, effects="CSDUID", family="poisson", data=ontario) # now add a spatial effect. # first, compute the adjacency matrix # if region ID's are stored as factors, make sure to convert # them to characters rather than the default of converting them # to integers ## Not run: #library(spdep) #library(diseasemapping) #data(popdata) popDataAdjMat = poly2nb(popdata,row.names=as.character(popdata[["CSDUID"]]) ) ## End(Not run) data(popDataAdjMat) # add the adjacency matrix to the ragged array raggedWithSpatial = addSpatial(popDataAdjMat, forBugs$ragged, "CSDUID") # write a new bugs model with a spatial effect writeBugsModel("model.bug", "CSDUID", NULL, c("count", "expected"), "poisson", spatial="CSDUID") startingValues = forBugs$startingValues source("getInits.R") ## Not run: library(R2WinBUGS) popResult = bugs(raggedWithSpatial, getInits, parameters.to.save = names(getInits()), model.file="model.bug", n.chain=3, n.iter=1000, n.burnin=100, n.thin=10, program="winbugs") ## End(Not run)