[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 17:01:28 CEST 2012
On Thu, 12 Jul 2012, Roger Bivand wrote:
> On Thu, 12 Jul 2012, Kerstin Traut wrote:
>
>> 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?
>
> Yes, there are subset methods for nb and listw objects. To ensure data
> integrity, use dnearneigh() instead of cell2nb(), and use a
> SpatialPointsDataFrame to hold your data. In that way, you make sure that the
> subset condition is applied to the same observations.
The latter advice may not work if your coordinates are planar and you
really mean to set torus=TRUE in cell2nb(). You'll have to get the data
order right by deconstructing the region.id attribute of the nb object
created by cell2nb() to ensure data integrity.
Roger
>
> Roger
>
>>
>> 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
>
>
--
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