esda.G_Local

class esda.G_Local(y, w, transform='R', permutations=999, star=False, keep_simulations=True, n_jobs=-1, seed=None, island_weight=0)[source]

Generalized Local G Autocorrelation

Parameters:
yarray

variable

wW

DistanceBand, weights instance that is based on threshold distance and is assumed to be aligned with y

transform{‘R’, ‘B’}

the type of w, either ‘B’ (binary) or ‘R’ (row-standardized)

permutationsint

the number of random permutations for calculating pseudo p values

starbool or float

whether or not to include focal observation in sums (default: False) if the row-transformed weight is provided, then this is the default value to use within the spatial lag. Generally, weights should be provided in binary form, and standardization/self-weighting will be handled by the function itself.

island_weight:

value to use as a weight for the “fake” neighbor for every island. If numpy.nan, will propagate to the final local statistic depending on the stat_func. If 0, then the lag is always zero for islands.

Notes

To compute moments of Gs under normality assumption, PySAL considers w is either binary or row-standardized. For binary weights object, the weight value for self is 1 For row-standardized weights object, the weight value for self is 1/(the number of its neighbors + 1).

For technical details see [] and [].

Examples

>>> import libpysal
>>> import numpy
>>> numpy.random.seed(10)

Preparing a point data set

>>> points = [(10, 10), (20, 10), (40, 10), (15, 20), (30, 20), (30, 30)]

Creating a weights object from points

>>> w = libpysal.weights.DistanceBand(points,threshold=15)

Preparing a variable

>>> y = numpy.array([2, 3, 3.2, 5, 8, 7])

Applying Getis and Ord local G test using a binary weights object

>>> from esda.getisord import G_Local
>>> lg = G_Local(y,w,transform='B')

Examining the results

>>> lg.Zs
array([-1.0136729 , -0.04361589,  1.31558703, -0.31412676,  1.15373986,
        1.77833941])
>>> round(lg.p_sim[0], 3)
0.101

p-value based on standard normal approximation from permutations >>> round(lg.p_z_sim[0], 3) 0.154

>>> numpy.random.seed(10)

Applying Getis and Ord local G* test using a binary weights object

>>> lg_star = G_Local(y,w,transform='B',star=True)

Examining the results

>>> lg_star.Zs
array([-1.39727626, -0.28917762,  0.65064964, -0.28917762,  1.23452088,
        2.02424331])
>>> round(lg_star.p_sim[0], 3)
0.101
>>> numpy.random.seed(12345)

Applying Getis and Ord local G test using a row-standardized weights object

>>> lg = G_Local(y,w,transform='R')

Examining the results

>>> lg.Zs
array([-0.62074534, -0.01780611,  1.31558703, -0.12824171,  0.28843496,
        1.77833941])
>>> round(lg.p_sim[0], 3)
0.103
>>> numpy.random.seed(10)

Applying Getis and Ord local G* test using a row-standardized weights object

>>> lg_star = G_Local(y,w,transform='R',star=True)

Examining the results

>>> lg_star.Zs
array([-0.62488094, -0.09144599,  0.41150696, -0.09144599,  0.24690418,
        1.28024388])
>>> round(lg_star.p_sim[0], 3)
0.101
Attributes:
yarray

original variable

wDistanceBand W

original weights object

permutationsint

the number of permutations

Gsarray

of floats, the value of the orginal G statistic in Getis & Ord (1992)

EGsfloat

expected value of Gs under normality assumption the values is scalar, since the expectation is identical across all observations

VGsarray

of floats, variance values of Gs under normality assumption

Zsarray

of floats, standardized Gs

p_normarray

of floats, p-value under normality assumption (one-sided) for two-sided tests, this value should be multiplied by 2

simarray

of arrays of floats (if permutations>0), vector of I values for permutated samples

p_simarray

of floats, p-value based on permutations (one-sided) null - spatial randomness alternative - the observed G is extreme it is either extremely high or extremely low

EG_simarray

of floats, average value of G from permutations

VG_simarray

of floats, variance of G from permutations

seG_simarray

of floats, standard deviation of G under permutations.

z_simarray

of floats, standardized G based on permutations

p_z_simarray

of floats, p-value based on standard normal approximation from permutations (one-sided)

__init__(y, w, transform='R', permutations=999, star=False, keep_simulations=True, n_jobs=-1, seed=None, island_weight=0)[source]

Methods

__init__(y, w[, transform, permutations, ...])

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

Function to compute a G_Local statistic on a dataframe

calc()