# NOT RUN {
library(sp)
library(spdep)
data(meuse)
coordinates(meuse) <- ~x+y
#### Providing a neighbor contiguity spatial weights matrix
all.linked <- max(unlist(nbdists(knn2nb(knearneigh(coordinates(meuse))),
coordinates(meuse))))
nb <- nb2listw(dnearneigh(meuse, 0, all.linked), style = "B", zero.policy = TRUE)
Wij <- as.matrix( as(nb, "symmetricMatrix") )
( I <- crossCorrelation(meuse$zinc, meuse$copper, w = Wij,
clust=TRUE, k=99) )
meuse$lisa <- I$SCI[,"lsci.xy"]
meuse$lisa.clust <- as.factor(I$cluster)
spplot(meuse, "lisa")
spplot(meuse, "lisa.clust")
#### Using a default spatial weights matrix method (inverse power function)
( I <- crossCorrelation(meuse$zinc, meuse$copper, coords = coordinates(meuse),
clust = TRUE, k=99) )
meuse$lisa <- I$SCI[,"lsci.xy"]
meuse$lisa.clust <- as.factor(I$cluster)
spplot(meuse, "lisa")
spplot(meuse, "lisa.clust")
#### Simulate spatially autocorrelated random normal variables
#### using eigen-decomposition, requires ncf package
library(sp)
library(ncf)
x=expand.grid(1:20, 1:20)[,1]
y=expand.grid(1:20, 1:20)[,2]
sdat <- data.frame(x =x,y=y,
z1=ncf::rmvn.spa(x=x, y=y, p=2, method="exp"),
z2=ncf::rmvn.spa(x=x, y=y, p=2, method="exp"))
coordinates(sdat) <- ~x+y
( I <- crossCorrelation(sdat$z1, sdat$z2, coords=coordinates(sdat),
k=99, clust = TRUE) )
sdat$lisa <- I$SCI[,"lsci.xy"]
sdat$lisa.clust <- as.factor(I$cluster)
spplot(sdat, "lisa")
spplot(sdat, "lisa.clust")
#### 1st order polygon contingency example
#### requires UScensus2000tract package
library(sp)
library(spdep)
library(UScensus2000tract)
data(oregon.tract)
nb <- spdep::nb2listw(poly2nb(oregon.tract), style = "B", zero.policy = TRUE)
Wij <- as.matrix( as(nb, "symmetricMatrix") )
X = oregon.tract$white
Y = oregon.tract$black
# Simulated bivariate lisa
I <- crossCorrelation(X, Y, w=Wij, k=99)
oregon.tract$lisa <-I$SCI[,"lsci.xy"]
oregon.tract$lisa.clust <- as.factor(I$cluster)
spplot(oregon.tract, "lisa")
spplot(oregon.tract, "lisa.clust")
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab