geary.test: Geary's C test for spatial autocorrelation

Description Usage Arguments Value Note Author(s) References See Also Examples

View source: R/geary.R

Description

Geary's test for spatial autocorrelation using a spatial weights matrix in weights list form. The assumptions underlying the test are sensitive to the form of the graph of neighbour relationships and other factors, and results may be checked against those of geary.mc permutations.

Usage

1
2
geary.test(x, listw, randomisation=TRUE, zero.policy=NULL,
    alternative="greater", spChk=NULL, adjust.n=TRUE)

Arguments

x

a numeric vector the same length as the neighbours list in listw

listw

a listw object created for example by nb2listw

randomisation

variance of I calculated under the assumption of randomisation, if FALSE normality

zero.policy

default NULL, use global option value; if TRUE assign zero to the lagged value of zones without neighbours, if FALSE assign NA

alternative

a character string specifying the alternative hypothesis, must be one of "greater" (default), "less" or "two.sided".

spChk

should the data vector names be checked against the spatial objects for identity integrity, TRUE, or FALSE, default NULL to use get.spChkOption()

adjust.n

default TRUE, if FALSE the number of observations is not adjusted for no-neighbour observations, if TRUE, the number of observations is adjusted

Value

A list with class htest containing the following components:

statistic

the value of the standard deviate of Geary's C, in the order given in Cliff and Ord 1973, p. 21, which is (EC - C) / sqrt(VC), that is with the sign reversed with respect to the more usual (C - EC) / sqrt(VC); this means that the “greater” alternative for the Geary C test corresponds to the “greater” alternative for Moran's I test.

p.value

the p-value of the test.

estimate

the value of the observed Geary's C, its expectation and variance under the method assumption.

alternative

a character string describing the alternative hypothesis.

method

a character string giving the assumption used for calculating the standard deviate.

data.name

a character string giving the name(s) of the data.

Note

The derivation of the test (Cliff and Ord, 1981, p. 18) assumes that the weights matrix is symmetric. For inherently non-symmetric matrices, such as k-nearest neighbour matrices, listw2U() can be used to make the matrix symmetric. In non-symmetric weights matrix cases, the variance of the test statistic may be negative (thanks to Franz Munoz I for a well documented bug report). Geary's C is affected by non-symmetric weights under normality much more than Moran's I. From 0.4-35, the sign of the standard deviate of C is changed to match Cliff and Ord (1973, p. 21).

Author(s)

Roger Bivand Roger.Bivand@nhh.no

References

Cliff, A. D., Ord, J. K. 1981 Spatial processes, Pion, p. 21, Cliff, A. D., Ord, J. K. 1973 Spatial Autocorrelation, Pion, pp. 15-16, 21.

See Also

geary, geary.mc, listw2U

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
data(oldcol)
geary.test(COL.OLD$CRIME, nb2listw(COL.nb, style="W"))
geary.test(COL.OLD$CRIME, nb2listw(COL.nb, style="W"),
 randomisation=FALSE)
colold.lags <- nblag(COL.nb, 3)
geary.test(COL.OLD$CRIME, nb2listw(colold.lags[[2]],
 style="W"))
geary.test(COL.OLD$CRIME, nb2listw(colold.lags[[3]],
 style="W"), alternative="greater")
print(is.symmetric.nb(COL.nb))
coords.OLD <- cbind(COL.OLD$X, COL.OLD$Y)
COL.k4.nb <- knn2nb(knearneigh(coords.OLD, 4))
print(is.symmetric.nb(COL.k4.nb))
geary.test(COL.OLD$CRIME, nb2listw(COL.k4.nb, style="W"))
geary.test(COL.OLD$CRIME, nb2listw(COL.k4.nb, style="W"),
 randomisation=FALSE)
cat("Note non-symmetric weights matrix - use listw2U()\n")
geary.test(COL.OLD$CRIME, listw2U(nb2listw(COL.k4.nb,
 style="W")))
geary.test(COL.OLD$CRIME, listw2U(nb2listw(COL.k4.nb,
 style="W")), randomisation=FALSE)

Example output

Loading required package: sp
Loading required package: Matrix

	Geary C test under randomisation

data:  COL.OLD$CRIME 
weights: nb2listw(COL.nb, style = "W") 

Geary C statistic standard deviate = 4.7605, p-value = 9.655e-07
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       0.52986993        1.00000000        0.00975278 


	Geary C test under normality

data:  COL.OLD$CRIME 
weights: nb2listw(COL.nb, style = "W") 

Geary C statistic standard deviate = 4.6388, p-value = 1.752e-06
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       0.52986993        1.00000000        0.01027137 


	Geary C test under randomisation

data:  COL.OLD$CRIME 
weights: nb2listw(colold.lags[[2]], style = "W") 

Geary C statistic standard deviate = 2.2896, p-value = 0.01102
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      0.811285136       1.000000000       0.006793327 


	Geary C test under randomisation

data:  COL.OLD$CRIME 
weights: nb2listw(colold.lags[[3]], style = "W") 

Geary C statistic standard deviate = -1.5667, p-value = 0.9414
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      1.130277918       1.000000000       0.006914551 

[1] TRUE
[1] FALSE

	Geary C test under randomisation

data:  COL.OLD$CRIME 
weights: nb2listw(COL.k4.nb, style = "W") 

Geary C statistic standard deviate = 6.4415, p-value = 5.916e-11
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      0.399254423       1.000000000       0.008697812 


	Geary C test under normality

data:  COL.OLD$CRIME 
weights: nb2listw(COL.k4.nb, style = "W") 

Geary C statistic standard deviate = 6.2873, p-value = 1.615e-10
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      0.399254423       1.000000000       0.009129529 

Note non-symmetric weights matrix - use listw2U()

	Geary C test under randomisation

data:  COL.OLD$CRIME 
weights: listw2U(nb2listw(COL.k4.nb, style = "W")) 

Geary C statistic standard deviate = 6.4415, p-value = 5.916e-11
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      0.399254423       1.000000000       0.008697812 


	Geary C test under normality

data:  COL.OLD$CRIME 
weights: listw2U(nb2listw(COL.k4.nb, style = "W")) 

Geary C statistic standard deviate = 6.2873, p-value = 1.615e-10
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
      0.399254423       1.000000000       0.009129529 

spdep documentation built on Aug. 19, 2017, 3:01 a.m.