[R-sig-Geo] How to handle NA-values in raster-based Geary´s C test?

Roger Bivand Roger.Bivand at nhh.no
Thu Jul 12 16:34:57 CEST 2012


On Thu, 12 Jul 2012, Kerstin Traut wrote:

> Hi,
>
> I have a question on testing spatial autocorrelation on raster data including 
> NA-values. In particular, I like to calculate Moran´s I and Geary´s C indices 
> by using inverse distance weighting matrices.
> Calculating Moran´s I with moran.test works fine, because the function 
> contains the option "na.action=na.pass". Unfortunately, the function 
> geary.test does not contain this option. The problem is that geary.test needs 
> an nb argument for which I cannot perform for example nb<-ifelse(value, nb, 
> NA), because it would change the nb-format to a list-format.
> Is there a way to ignore NA-values in geary.test? Or how can I set NA values 
> in a neigbors (nb) list?

The simple answer is to subset the variable of interest and the nb object 
to omit NA observations (which is what moran.test does internally). 
Alternatively, you could contribute a patch to geary.test(), if you like.

Hope this helps,

Roger

>
> Thank you very much,
> Kerstin
>
> ---
>
> file<-raster(test.tif")
> mask<-extent(file, 1, 50, 1, 50)
> subset<-crop(file,mask,test.tif", overwrite=TRUE)
> value <- as.matrix(subset)
>
> # Creation of a list of integer vectors giving the region id numbers for the 
> neighbors within the grid extent
> nb <- cell2nb(50, 50, type="queen", torus=TRUE)
>
> # Calculation of the distances along the links in the neighbous list
> dist <- nbdists(nb, coordinates(subset), longlat=TRUE)
>
> # Converting the distances to inverse distance values
> inv.dist <- lapply(dist, function (x) 1/(x*100))
>
> # Supplementing the neighbors list with spatial weights for a coding scheme
> nb.idw <- nb2listw(nb, glist=inv.dist, style="W")
> summary(unlist(nb.idw$weights))
>
> # Moran's test (two-sided)
> moran.global <- moran.test(value, listw=nb.idw, zero.policy = TRUE, 
> na.action=na.pass, alternative="two.sided")
> moran.global
>
> # Geary's test (two-sided)
> geary.global <- geary.test(value, listw=nb.idw, zero.policy = TRUE , 
> alternative="two.sided")
> geary.global
>
> ----------------------------------------------------------------
> This message was sent through https://webmail.uni-jena.de
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo

-- 
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
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