esda.Join_Counts_Local_MV¶
-
class esda.Join_Counts_Local_MV(connectivity=
None, permutations=999, n_jobs=1, keep_simulations=True, seed=None, island_weight=0, drop_islands=True, alternative=None)[source]¶ Multivariate Local Join Count Statistic
Initialize a Local_Join_Counts_MV estimator
- Parameters:¶
- connectivity : W | Graph¶
spatial weights instance as W or Graph aligned with y
- permutations : int¶
number of random permutations for calculation of pseudo p_values
- n_jobs : int¶
Number of cores to be used in the conditional randomisation. If -1, all available cores are used.
- keep_simulations : bool (default True)¶
If
True, the entire matrix of replications under the null is stored in memory and accessible; otherwise, replications are not saved- seed : int (default None)¶
Seed to ensure reproducibility of conditional randomizations. Must be set here, and not outside of the function, since numba does not correctly interpret external seeds nor numpy.random.RandomState instances.
- island_weight : int or float (default 0)¶
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 thestat_func. If0, then the lag is always zero for islands.- drop_islands : bool (default 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().- alternative : None | str = None¶
The alternative hypothesis for conditional randomization. See
crand.crand()for complete description.
Methods
fit(variables[, n_jobs, permutations])Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
set_fit_request(*[, n_jobs, permutations, ...])Configure whether metadata should be requested to be passed to the
fitmethod.set_params(**params)Set the parameters of this estimator.
-
fit(variables, n_jobs=
1, permutations=999)[source]¶ - Parameters:¶
- variables : numpy.ndarray¶
array(s) containing binary (0/1) data
- Return type:¶
the fitted estimator.
Notes
Technical details and derivations can be found in [Anselin and Li, 2019].
Examples
>>> import libpysal >>> import numpy >>> w = libpysal.weights.lat2W(4, 4) >>> x = numpy.ones(16) >>> x[0:8] = 0 >>> z = [0,1,0,1,1,1,1,1,0,0,1,1,0,0,1,1] >>> y = [0,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1] >>> LJC_MV = Join_Counts_Local_MV( ... connectivity=w, seed=12345, alternative='two-sided', ... ).fit([x, y, z]) >>> LJC_MV.LJC array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 1., 2.]) >>> LJC_MV.p_sim array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.677, nan, nan, 0.661, 0.746], dtype=float32)Guerry data extending GeoDa tutorial
>>> import geopandas as gpd >>> guerry = libpysal.examples.load_example('Guerry') >>> guerry_ds = gpd.read_file(guerry.get_path('guerry.shp')) >>> guerry_ds['infq5'] = 0 >>> guerry_ds['donq5'] = 0 >>> guerry_ds['suic5'] = 0 >>> guerry_ds.loc[(guerry_ds['Infants'] > 23574), 'infq5'] = 1 >>> guerry_ds.loc[(guerry_ds['Donatns'] > 10973), 'donq5'] = 1 >>> guerry_ds.loc[(guerry_ds['Suicids'] > 55564), 'suic5'] = 1 >>> w = libpysal.weights.Queen.from_dataframe(guerry_ds, use_index=True) >>> LJC_MV = Join_Counts_Local_MV( ... connectivity=w, seed=12345, alternative='two-sided', ... ).fit([guerry_ds['infq5'], guerry_ds['donq5'], guerry_ds['suic5']]) >>> LJC_MV.LJC array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) >>> LJC_MV.p_sim array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], dtype=float32)
- get_metadata_routing()[source]¶
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:¶
routing – A
MetadataRequestencapsulating routing information.- Return type:¶
MetadataRequest
-
set_fit_request(*, n_jobs=
'$UNCHANGED$', permutations='$UNCHANGED$', variables='$UNCHANGED$')[source]¶ Configure whether metadata should be requested to be passed to the
fitmethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed tofitif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it tofit.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:¶
- n_jobs : str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED¶
Metadata routing for
n_jobsparameter infit.- permutations : str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED¶
Metadata routing for
permutationsparameter infit.- variables : str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED¶
Metadata routing for
variablesparameter infit.
- Returns:¶
self – The updated object.
- Return type:¶