localmoran_bv {spdep} | R Documentation |
Compute the Local Bivariate Moran's I Statistic
Description
Given two continuous numeric variables, calculate the bivariate Local Moran's I.
Usage
localmoran_bv(x, y, listw, nsim = 199, scale = TRUE, alternative="two.sided",
iseed=1L, no_repeat_in_row=FALSE, zero.policy=attr(listw, "zero.policy"))
Arguments
x |
a numeric vector of same length as |
y |
a numeric vector of same length as |
listw |
a listw object for example as created by |
nsim |
the number of simulations to run. |
scale |
default |
alternative |
a character string specifying the alternative hypothesis, must be one of "greater" (default), "two.sided", or "less". |
iseed |
default NULL, used to set the seed for possible parallel RNGs. |
no_repeat_in_row |
default |
zero.policy |
default default |
Details
The Bivariate Local Moran, like its global counterpart, evaluates the value
of x at observation i with its spatial neighbors' value of y. The value of I_i^B
is xi * Wyi. Or, in simpler words, the local bivariate Moran is the result of multiplying x by the spatial lag of y. Formally it is defined as
I_i^B= cx_i\Sigma_j{w_{ij}y_j}
Value
a data.frame
containing two columns Ib
and p_sim
containing the local bivariate Moran's I and simulated p-values respectively.
Author(s)
Josiah Parry josiah.parry@gmail.com
References
Anselin, Luc, Ibnu Syabri, and Oleg Smirnov. 2002. “Visualizing Multivariate Spatial Correlation with Dynamically Linked Windows.” In New Tools for Spatial Data Analysis: Proceedings of the Specialist Meeting, edited by Luc Anselin and Sergio Rey. University of California, Santa Barbara: Center for Spatially Integrated Social Science (CSISS).
Examples
# load columbus data
columbus <- st_read(system.file("shapes/columbus.gpkg", package="spData"))
nb <- poly2nb(columbus)
listw <- nb2listw(nb)
set.seed(1)
(res <- localmoran_bv(columbus$CRIME, columbus$INC, listw, nsim = 499))
columbus$hs <- hotspot(res, Prname="Pr(folded) Sim", cutoff=0.05,
quadrant.type="pysal", p.adjust="none")
if (require("tmap", quietly=TRUE)) {
tm_shape(columbus) + tm_fill("hs")
}
moran.plot(x=columbus$CRIME, y=columbus$INC, listw=listw)