esda.Join_Counts

class esda.Join_Counts(y, w, permutations=999, drop_islands=True)[source]

Binary Join Counts

Parameters:
yarray

binary variable measured across n spatial units

wW | Graph

spatial weights instance as W or Graph aligned with y

permutationspython:int

number of random permutations for calculation of pseudo-p_values

Notes

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

Examples

>>> import numpy as np
>>> import libpysal
>>> w = libpysal.weights.lat2W(4, 4)
>>> y = np.ones(16)
>>> y[0:8] = 0
>>> np.random.seed(12345)
>>> from esda.join_counts import Join_Counts
>>> jc = Join_Counts(y, w)
>>> jc.bb
10.0
>>> jc.bw
4.0
>>> jc.ww
10.0
>>> jc.J
24.0
>>> len(jc.sim_bb)
999
>>> round(jc.p_sim_bb, 3)
0.003
>>> round(np.mean(jc.sim_bb), 3)
5.547
>>> np.max(jc.sim_bb)
10.0
>>> np.min(jc.sim_bb)
0.0
>>> len(jc.sim_bw)
999
>>> jc.p_sim_bw
1.0
>>> np.mean(jc.sim_bw)
12.811811811811811
>>> np.max(jc.sim_bw)
24.0
>>> np.min(jc.sim_bw)
7.0
>>> round(jc.chi2_p, 3)
0.004
>>> jc.p_sim_chi2
0.002
Attributes:
yarray

original variable

wW

original w object

permutationspython:int

number of permutations

bbpython:float

number of black-black joins

wwpython:float

number of white-white joins

bwpython:float

number of black-white joins

Jpython:float

number of joins

sim_bbarray

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

p_sim_bbarray
(if permutations>0)

p-value based on permutations (one-sided) null: spatial randomness alternative: the observed bb is greater than under randomness

mean_bbpython:float

average of permuted bb values

min_bbpython:float

minimum of permuted bb values

max_bbpython:float

maximum of permuted bb values

sim_bwarray

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

p_sim_bwarray

(if permutations>0) p-value based on permutations (one-sided) null: spatial randomness alternative: the observed bw is greater than under randomness

mean_bwpython:float

average of permuted bw values

min_bwpython:float

minimum of permuted bw values

max_bwpython:float

maximum of permuted bw values

chi2python:float

Chi-square statistic on contingency table for join counts

chi2_ppython:float

Analytical p-value for chi2

chi2_dofpython:int

Degrees of freedom for analytical chi2

crosstabDataFrame

Contingency table for observed join counts

expectedDataFrame

Expected contingency table for the null

p_sim_chi2python:float

p-value for chi2 under random spatial permutations

drop_islandsbool (default python:True)

Whether or not to preserve islands as entries in the adjacency list. By default, observations with no neighbors do not appear in the adjacency list. If islands are kept, they are coded as self-neighbors with zero weight. See libpysal.weights.to_adjlist().

__init__(y, w, permutations=999, drop_islands=True)[source]

Methods

__init__(y, w[, permutations, drop_islands])

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

Function to compute a Join_Count statistic on a dataframe

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

Function to compute a Join_Count 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_join_count’

pvaluepython:str

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

outvalspython:list of strings

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

**stat_kpython:dict

options to pass to the underlying statistic. For this, see the documentation for the Join_Count 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.