Calculate Moran's I as linear regression using ordinary least squares (OLS).

OLSMoransI(
  X,
  W,
  normalize = TRUE,
  alternative = c("two.sided", "less", "greater"),
  p.adjust.method = "BH"
)

Arguments

X

A matrix with observations as rows and features as columns.

W

A weight matrix across all observations, i.e inverse of a pairwise distance matrix.

normalize

Whether to normalize the weight matrix such that each row adds up to one. Default is TRUE.

alternative

Alternative hypothesis used, default is two.sided.

p.adjust.method

Method used for multiple comparisons correction, default is BH. See p.adjust.

Value

A list containing the following:

  • Morans.I, the Moran's I.

  • Z.I, the Z score of Moran's I.

  • X, data matrix used for calculating Moran's I.

  • Y, a matrix of spatial lags.

  • Expected.I, the expectation of Moran's I under the null hypothesis.

  • SD.I, the standard deviation of Moran's I under the null hypothesis.

  • p.val, p-values.

  • p.adj, adjusted p-values.

  • alternative, alternative hypothesis used.

  • p.adjust.method, method used for multiple comparisons correction.

References

Anselin, L. Local indicators of spatial association-LISA. Geogr. Anal. 27, 93–115 (2010)

Examples

{
data.use <- quakes[1:100,]
W <- 1/as.matrix(dist(data.use[,1:2]))
diag(W) <- 0
res <- OLSMoransI(data.use[,3:4], W)
}