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

Kerstin Traut Kerstin.Traut at uni-jena.de
Thu Jul 12 16:50:35 CEST 2012


Zitat von Roger Bivand <Roger.Bivand at nhh.no>:

> 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

Thanks for your answer. Unfortunately, I think that subsetting is in  
my case not the right solution, because I need to define the amount of  
neighbors in cell2nb on the basis of a rectangular extent (e.g. 50 x  
50 neighbors). Subsetting this extent by deleting NA-values would  
destroy the nb list format required by geary.test.
Is there any solution for subsetting an nb list without destroying the  
nb format?

Kind regards,
Kerstin


>> 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
>



----------------------------------------------------------------
This message was sent through https://webmail.uni-jena.de



More information about the R-sig-Geo mailing list