localmoran_bv function

Compute the Local Bivariate Moran's I Statistic

Compute the Local Bivariate Moran's I Statistic

Given two continuous numeric variables, calculate the bivariate Local Moran's I.

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.
  • y: a numeric vector of same length as x.
  • listw: a listw object for example as created by nb2listw().
  • nsim: the number of simulations to run.
  • scale: default TRUE.
  • 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; the output will only be reproducible if the count of CPU cores across which computation is distributed is the same.
  • no_repeat_in_row: default FALSE, if TRUE, sample conditionally in each row without replacements to avoid duplicate values, https://github.com/r-spatial/spdep/issues/124
  • zero.policy: default default attr(listw, "zero.policy") as set when listw was created, if attribute not set, use global option value; if TRUE assign zero to the lagged value of zones without neighbours, if FALSE assign NA

Returns

a data.frame containing two columns Ib and p_sim containing the local bivariate Moran's I and simulated p-values respectively.

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

c("\n\n", "IiB=cxiSigmajwijyj\nI_i^B= cx_i\\Sigma_j{w_{ij}y_j}\n")

Examples

# load columbus datay 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)) { tmap4 <- packageVersion("tmap") >= "3.99" if (tmap4) { tm_shape(columbus) + tm_polygons(fill="hs", fill.scale=tm_scale(values="brewer.set3"), fill.legend=tm_legend(position=tm_pos_in("left", "top"), frame=FALSE, item.r=0), lwd=0.01) } else { tm_shape(columbus) + tm_fill("hs") } } moran.plot(x=columbus$CRIME, y=columbus$INC, listw=listw)

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

Author(s)

Josiah Parry josiah.parry@gmail.com