# `esda.join_counts` — Spatial autocorrelation statistics for binary attributes¶

New in version 1.0.

Spatial autocorrelation for binary attributes

class `pysal.esda.join_counts.``Join_Counts`(y, w, permutations=999)[source]

Binary Join Counts

Parameters: y (array) – binary variable measured across n spatial units w (W) – spatial weights instance permutations (int) – number of random permutations for calculation of pseudo-p_values
`y`

array – original variable

`w`

W – original w object

`permutations`

int – number of permutations

`bb`

float – number of black-black joins

`ww`

float – number of white-white joins

`bw`

float – number of black-white joins

`J`

float – number of joins

`sim_bb`

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

`p_sim_bb`

array

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

float – average of permuted bb values

`min_bb`

float – minimum of permuted bb values

`max_bb`

float – maximum of permuted bb values

`sim_bw`

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

`p_sim_bw`

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

`mean_bw`

float – average of permuted bw values

`min_bw`

float – minimum of permuted bw values

`max_bw`

float – maximum of permuted bw values

Examples

Replicate example from anselin and rey

```>>> import numpy as np
>>> w = pysal.lat2W(4, 4)
>>> y = np.ones(16)
>>> y[0:8] = 0
>>> np.random.seed(12345)
>>> jc = pysal.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
>>> jc.p_sim_bb
0.0030000000000000001
>>> np.mean(jc.sim_bb)
5.5465465465465469
>>> 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
>>>
```
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: df (pandas.DataFrame) – a pandas dataframe with a geometry column cols (string or list of string) – name or list of names of columns to use to compute the statistic w (pysal weights object) – a weights object aligned with the dataframe. If not provided, this is searched for in the dataframe’s metadata inplace (bool) – 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’ pvalue (string) – a string denoting which pvalue should be returned. Refer to the the Join_Count statistic’s documentation for available p-values outvals (list of strings) – list of arbitrary attributes to return as columns from the Join_Count statistic **stat_kws (keyword arguments) – options to pass to the underlying statistic. For this, see the documentation for the Join_Count statistic. If inplace, None, and operation is conducted on dataframe in memory. Otherwise, returns a copy of the dataframe with the relevant columns attached.

`For`, `refer`