esda.Moran¶
- class esda.Moran(y, w, transformation='r', permutations=999, two_tailed=True)[source]¶
Moran’s I Global Autocorrelation Statistic
- Parameters:
- y
array
variable measured across n spatial units
- w
W
spatial weights instance
- transformation
python:str
weights transformation, default is row-standardized “r”. Other options include “B”: binary, “D”: doubly-standardized, “U”: untransformed (general weights), “V”: variance-stabilizing.
- permutations
python: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.
- y
Notes
Technical details and derivations can be found in [].
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:
- y
array
original variable
- w
W
original w object
- permutations
python:int
number of permutations
- I
python:float
value of Moran’s I
- EI
python:float
expected value under normality assumption
- VI_norm
python:float
variance of I under normality assumption
- seI_norm
python:float
standard deviation of I under normality assumption
- z_norm
python:float
z-value of I under normality assumption
- p_norm
python:float
p-value of I under normality assumption
- VI_rand
python:float
variance of I under randomization assumption
- seI_rand
python:float
standard deviation of I under randomization assumption
- z_rand
python:float
z-value of I under randomization assumption
- p_rand
python: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.
- sim
array
(if permutations>0) vector of I values for permuted samples
- p_sim
array
(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_sim
python:float
(if permutations>0) average value of I from permutations
- VI_sim
python:float
(if permutations>0) variance of I from permutations
- seI_sim
python:float
(if permutations>0) standard deviation of I under permutations.
- z_sim
python:float
(if permutations>0) standardized I based on permutations
- p_z_sim
python:float
(if permutations>0) p-value based on standard normal approximation from permutations
- y
Methods
__init__
(y, w[, transformation, ...])by_col
(df, cols[, w, inplace, pvalue, outvals])Function to compute a Moran statistic on a dataframe