Hi Roger, Thank you very much for your quick reply and for creating the spdep package. I tried the tweaks to the code as you note below, but I still get a warning message. I have reposted my code below with a few more questions:
> #making inverse distance weights > neigh.dist <- nbdists(neigh.nb, coords, longlat=TRUE) > inverse <- lapply(neigh.dist, function(x) (1/(x^2))) > > #creating row standardized spatial weights from list > neigh.listw <- nb2listw(neigh.nb, glist=inverse, style="W", zero.policy=TRUE) Warning message: In nb2listw(neigh.nb, glist = inverse, style = "W", zero.policy = TRUE) : zero sum general weights > warning() Warning message: There was nothing listed here. Is this warning a problem? I was hesitant about using glist since I didn't think it could be incorporated in the errorsarlm models (hence the error in the code below). Would using spautolm() help to get around my error below in the model? > #making crime counts into rates > assaul_r <- (assaul/gpop00)*1000 > Good catch on this one. I meant to make my crime counts into rates. I haven't found a package where I can model crime counts as Poisson or negative binomial regressions. Any suggestions? > #SAR MODEL > ass05 <- errorsarlm(assaul_r ~ gage2900 + gblack00 + gcrwd00 + gethhet00 + > ghhincsdln00 + glatino00 + gocc00+ gowner00 + > gpov00,data=buffalo,listw=neigh.listw, zero.policy=TRUE) Error in subset.listw(listw, subset, zero.policy = zero.policy) : Not yet able to subset general weights lists > traceback() 4: stop("Not yet able to subset general weights lists") 3: subset.listw(listw, subset, zero.policy = zero.policy) 2: subset(listw, subset, zero.policy = zero.policy) 1: errorsarlm(assaul_r ~ gage2900 + gblack00 + gcrwd00 + gethhet00 + ghhincsdln00 + glatino00 + gocc00 + gowner00 + gpov00, data = buffalo, listw = neigh.listw, zero.policy = TRUE) Thanks again for your help! Adam Adam Boessen Doctoral Student Department of Criminology, Law and Society University of California, Irvine aboes...@uci.edu On Feb 21, 2010, at 11:38 PM, Roger Bivand wrote: > On Sun, 21 Feb 2010, Adam Boessen wrote: > >> My apologies for the duplicate list, but I forgot to use plain text in my >> last post, and thus there was a problem posting to archive. Here is the >> post now: > > Thanks for cooperating about this, keeping to plain text really helps! > >> >> Hi Everyone, >> I'm new to R, so thank you in advance for your patience. I'm using US >> census block groups in Buffalo New York to examine how neighborhood >> characteristics affect crime. I would like to use an inverse distance >> weights (distance decay) of block group centroids that is banded at 1 >> kilometer. In other words, I would like to create a one kilometer buffer >> around each of the centroids, then use row standardized inverse distance >> weights. Finally, I would like to run a spatial error model using these >> weights. >> >> Here is my code: >>> library(foreign) >>> library(spdep) >>> >>> buffalo <- read.dta("buffalo_blkgrps.dta") >>> attach(buffalo) >>> names(buffalo) >> [1] "bgidfp00" "gage2900" "gavghhinc00" "gblack00" "gcrwd00" >> [6] "gethhet00" "ghhincsdln00" "glatino00" "gocc00" "gowner00" >> [11] "gpop00" "gpov00" "assaul" "robber" "burglr" >> [16] "motveh" "murder" "larcen" "x" "y" >>> >>> #distance based neighbors - making a neighbor list - bounded to 1 kilometer >>> coords <-(cbind(x,y)) >>> neigh.nb <- dnearneigh(coords, 0, 1, longlat=TRUE) > > I'm assuming that you know definitely that your coordinates are geographical > not projected - I've seen users adding longlat=TRUE when not appropriate. > >>> summary(neigh.nb) >> Neighbour list object: >> Number of regions: 409 >> Number of nonzero links: 5298 >> Percentage nonzero weights: 3.167126 >> Average number of links: 12.95355 >> 1 region with no links: >> 12 >> Link number distribution: >> >> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 >> 26 >> 1 1 3 3 4 5 14 25 28 23 19 26 32 44 29 24 29 25 24 13 15 12 3 4 1 1 >> 1 >> 1 least connected region: >> 3 with 1 link >> 1 most connected region: >> 382 with 26 links >>> >>> #making inverse distance weights >>> neigh.dist <- nbdists(neigh.nb, coords, longlat=TRUE) >>> inverse <- lapply(neigh.dist, function(x) (1/(x^2))) >>> >>> #creating row standardized spatial weights from list >>> neigh.listw <- nb2listw(inverse, style="W",zero.policy=TRUE) > > No, use: > > neigh.listw <- nb2listw(neigh.nb, glist=inverse, style="W", > zero.policy=TRUE) > > You pass the list of weights through the glist= argument, as in the example > for col.w.d in ?nb2listw. > >> Error in nb2listw(inverse, style = "W", zero.policy = TRUE) : >> Not a neighbours list >>> traceback() >> 2: stop("Not a neighbours list") >> 1: nb2listw(inverse, style = "W", zero.policy = TRUE) >>> >>> >>> assault <- errorsarlm(assaul_r ~ gage2900 + gblack00 + gcrwd00 + gethhet00 >>> + ghhincsdln00 + glatino00 + gocc00+ gowner00 + gpov00, >> + data=buffalo,listw=neigh.listw, zero.policy=TRUE) >> Error in eval(expr, envir, enclos) : object 'assaul_r' not found >> > > Well, there is no assaul_r in buffalo, is there? > > Hope this helps, > > Roger > >> The model will run when I do not include the code with the inverse weights >> and only interpoint distances, but it's unclear to me why I can't include >> the inverse distances when using nb2listw. Any ideas on why this is >> occurring and/or help to alleviate this issue would be much appreciated. >> The spatial error model from errorsarlm (package=spdep) will also run fine >> when I don't include the inverse weights. Is there a better way to go about >> running this spatial error model using row standardized inverse distance >> weights? Would spautolm from the spdep package be better suited for these >> data? Any comments or suggestions are welcome. >> Thank you for your time! >> >> Adam >> >> Adam Boessen >> Doctoral Student >> Department of Criminology, Law and Society >> University of California, Irvine >> aboes...@uci.edu >> >> p.s. If it's helpful, here is my version of R: >>> version >> _ >> platform i386-apple-darwin9.8.0 >> arch i386 >> os darwin9.8.0 >> system i386, darwin9.8.0 >> status >> major 2 >> minor 10.1 >> year 2009 >> month 12 >> day 14 >> svn rev 50720 >> language R >> version.string R version 2.10.1 (2009-12-14) >> >> _______________________________________________ >> R-sig-Geo mailing list >> R-sig-Geo@stat.math.ethz.ch >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >> > > -- > Roger Bivand > Economic Geography Section, Department of Economics, Norwegian School of > Economics and Business Administration, Helleveien 30, N-5045 Bergen, > Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 > e-mail: roger.biv...@nhh.no > _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo