[R-sig-Geo] question about autocov_dist function in "spdep" package

Roger Bivand Roger.Bivand at nhh.no
Fri Jun 25 21:55:14 CEST 2010


On Fri, 25 Jun 2010, Julien Beguin wrote:

> Dear list member,
>
> I am using the autocov_dist function in spdep on binary point data set 
> to estimate the autocovariate to be used in autologistic regression 
> (session info at the end):
>
> coords<-as.matrix(cbind(datafile$X_COORD, datafile$Y_COORD))
> ac1 <- autocov_dist(datafile$binary_variable, coords, nbs=400, type = "inverse", zero.policy=TRUE)
>
> It works fine with large value of nbs. When nbs value is below the neibhorhood distance of some pairs of point I get warnings because of empty neighbors:
>
>> Warning messages: 1: In autocov_dist(datafile$binary_variable, coords, 
>> nbs = 400, type = "inverse", :

>> With value 400 some points have no neighbours
>> 2: In nb2listw(nb, glist = gl, style = style, zero.policy = zero.policy) :
>> zero sum general weights
>
> It seems, but I might be wrong, that points with no neighbour have an 
> autocov_dist value of zero. Since it is what I want, it is ok for me.

No, the general weights sum to zero, as it says, you are using inverse.

> But if I decrease nbs value below the smallest neighbourhood distance 
> among pairs of points in my data set, I get an error message:
>
>> Error in nb2listw(nb, glist = gl, style = style, zero.policy = zero.policy) :
>>  No valid observations
>> In addition: Warning messages:
>> 1: In autocov_dist(datafile$binary_variable, coords, nbs = 100, type = "inverse",  :
>> With value 100 some points have no neighbours
>> 2: In nb2listw(nb, glist = gl, style = style, zero.policy = zero.policy) :
>>  zero sum general weights
>
> My question is as follows: why do autocov_dist function require that at 
> least one neighbor pair exists? and why not returning zero value for all 
> points when no any point has a neighbor?
>
> This might appear to be a strange question but in my case I estimating 
> autocov_dist for different spatial block in which the minimum distance 
> between points vary from block to block, but still I would like a commun 
> nbs value for all block.

It does indeed seem very strange, as you are asking to include a constant 
vector of zeros, which will alias the constant. The function itself is a 
really bad idea, and is included only to show (see Dormann et al 2007) 
that using it is inferior to all other methods examined there. Trying to 
include a second zero constant doesn't seem well-founded, to put it 
mildly.

Hope this helps,

Roger

>
> Thank you for your help,
>
> Julien Beguin
> --------------------
> Ph.D. student
> Laval University
> Québec, Canada
>
> SESSION INFO:
>
> R version 2.10.1 (2009-12-14)
> i386-pc-mingw32
> locale:
> [1] LC_COLLATE=French_Canada.1252  LC_CTYPE=French_Canada.1252
> [3] LC_MONETARY=French_Canada.1252 LC_NUMERIC=C
> [5] LC_TIME=French_Canada.1252
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> other attached packages:
> [1] spdep_0.5-4         spam_0.20-3         coda_0.13-4
> [4] deldir_0.0-12       maptools_0.7-29     foreign_0.8-40
> [7] nlme_3.1-96         MASS_7.3-4          Matrix_0.999375-33
> [10] lattice_0.17-26     boot_1.2-41         sp_0.9-60
> [13] compositions_1.01-1 robustbase_0.5-0-1  tensorA_0.31
> [16] rgl_0.91
> loaded via a namespace (and not attached):
> [1] grid_2.10.1  tools_2.10.1
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at 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.Bivand at nhh.no


More information about the R-sig-Geo mailing list