esda.Moran

class esda.Moran(y, w, transformation='r', permutations=999, two_tailed=True)[source]

Moran’s I Global Autocorrelation Statistic

Parameters:
yarray

variable measured across n spatial units

wW | Graph

spatial weights instance as W or Graph aligned with y

transformationpython:str

weights transformation, default is row-standardized “r”. Other options include “B”: binary, “D”: doubly-standardized, “U”: untransformed (general weights), “V”: variance-stabilizing.

permutationspython:int

number of random permutations for calculation of pseudo-p_values

two_tailedbool

If True (default) analytical p-values for Moran are two tailed, otherwise if False, they are one-tailed.

Notes

Technical details and derivations can be found in [CO81].

Examples

>>> import libpysal
>>> w = libpysal.io.open(libpysal.examples.get_path("stl.gal")).read()
>>> f = libpysal.io.open(libpysal.examples.get_path("stl_hom.txt"))
>>> y = np.array(f.by_col['HR8893'])
>>> from esda.moran import Moran
>>> mi = Moran(y,  w)
>>> round(mi.I, 3)
0.244
>>> mi.EI
-0.012987012987012988
>>> mi.p_norm
0.00027147862770937614

SIDS example replicating OpenGeoda >>> w = libpysal.io.open(libpysal.examples.get_path(“sids2.gal”)).read() >>> f = libpysal.io.open(libpysal.examples.get_path(“sids2.dbf”)) >>> SIDR = np.array(f.by_col(“SIDR74”)) >>> mi = Moran(SIDR, w) >>> round(mi.I, 3) 0.248 >>> mi.p_norm 0.0001158330781489969

One-tailed

>>> mi_1 = Moran(SIDR,  w, two_tailed=False)
>>> round(mi_1.I, 3)
0.248
>>> round(mi_1.p_norm, 4)
0.0001
Attributes:
yarray

original variable

wW | Graph

original w object

permutationspython:int

number of permutations

Ipython:float

value of Moran’s I

EIpython:float

expected value under normality assumption

VI_normpython:float

variance of I under normality assumption

seI_normpython:float

standard deviation of I under normality assumption

z_normpython:float

z-value of I under normality assumption

p_normpython:float

p-value of I under normality assumption

VI_randpython:float

variance of I under randomization assumption

seI_randpython:float

standard deviation of I under randomization assumption

z_randpython:float

z-value of I under randomization assumption

p_randpython:float

p-value of I under randomization assumption

two_tailedbool

If True p_norm and p_rand are two-tailed, otherwise they are one-tailed.

simarray

(if permutations>0) vector of I values for permuted samples

p_simarray

(if permutations>0) p-value based on permutations (one-tailed) null: spatial randomness alternative: the observed I is extreme if it is either extremely greater or extremely lower than the values obtained based on permutations

EI_simpython:float

(if permutations>0) average value of I from permutations

VI_simpython:float

(if permutations>0) variance of I from permutations

seI_simpython:float

(if permutations>0) standard deviation of I under permutations.

z_simpython:float

(if permutations>0) standardized I based on permutations

p_z_simpython:float

(if permutations>0) p-value based on standard normal approximation from permutations

__init__(y, w, transformation='r', permutations=999, two_tailed=True)[source]

Methods

__init__(y, w[, transformation, ...])

by_col(df, cols[, w, inplace, pvalue, outvals])

Function to compute a Moran statistic on a dataframe

classmethod by_col(df, cols, w=None, inplace=False, pvalue='sim', outvals=None, **stat_kws)[source]

Function to compute a Moran statistic on a dataframe

Parameters:
dfpandas.DataFrame

a pandas dataframe with a geometry column

colspython:str or python:list of python:str

name or list of names of columns to use to compute the statistic

wW | Graph

spatial weights instance as W or Graph aligned with the dataframe. If not provided, this is searched for in the dataframe’s metadata

inplacebool

a boolean denoting whether to operate on the dataframe inplace or to return a series contaning the results of the computation. If operating inplace, the derived columns will be named ‘column_moran’

pvaluepython:str

a string denoting which pvalue should be returned. Refer to the the Moran statistic’s documentation for available p-values

outvalspython:list of strings

list of arbitrary attributes to return as columns from the Moran statistic

**stat_kwspython:dict

options to pass to the underlying statistic. For this, see the documentation for the Moran statistic.

Returns:
If inplace, python:None, and operation is conducted on dataframe
in memory. Otherwise, returns a copy of the dataframe with
the relevant columns attached.