# esda.LOSH

class esda.LOSH(connectivity=None, inference=None)

  Local spatial heteroscedasticity (LOSH)

  __init__(connectivity=None, inference=None)

    Initialize a losh estimator

    Parameters:
      connectivity `W` | `Graph`

        spatial weights instance as W or Graph aligned with y

      inference `str`

        describes type of inference to be used. options are “chi-square” or “permutation” methods.

    Attributes:
      Hi `numpy` `array`

        Array of LOSH values for each spatial unit.

      ylag `numpy` `array`

        Spatially lagged y values.

      yresid `numpy` `array`

        Spatially lagged residual values.

      VarHi `numpy` `array`

        Variance of Hi.

      pval `numpy` `array`

        P-values for inference based on either “chi-square” or “permutation” methods.

  Methods

  `__init__`([connectivity, inference]) | Initialize a losh estimator
  `fit`(y[, a]) |
  `get_metadata_routing`() | Get metadata routing of this object.
  `get_params`([deep]) | Get parameters for this estimator.
  `set_fit_request`(*[, a]) | Configure whether metadata should be requested to be passed to the `fit` method.
  `set_params`(**params) | Set the parameters of this estimator.

  fit(y, a=2)
    Parameters:
      y `numpy.ndarray`

        array containing continuous data

      a `int`

        residual multiplier. Default is 2 in order to generate a variance measure. Users may use 1 for absolute deviations.

    Returns:
      `the` fitted estimator.

    Notes

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

    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 import losh
        >>> ls = losh(connectivity=w, inference="chi-square").fit(y)
        >>> np.round(ls.Hi[0], 3)
        >>> np.round(ls.pval[0], 3)

    Boston housing data replicating R spdep::LOSH() >>> import libpysal >>> import geopandas as gpd >>> boston = libpysal.examples.load_example(‘Bostonhsg’) >>> boston_ds = gpd.read_file(boston.get_path(‘boston.shp’)) >>> w = libpysal.weights.Queen.from_dataframe(boston_ds) >>> ls = losh(connectivity=w, inference=”chi-square”).fit(boston[‘NOX’]) >>> np.round(ls.Hi[0], 3) >>> np.round(ls.VarHi[0], 3)

  set_fit_request(*, a: bool | None | str = '$UNCHANGED$') → LOSH

    Configure whether metadata should be requested to be passed to the `fit` method.

    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` (see `sklearn.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 to `fit` if provided. The request is ignored if metadata is not provided.

    - `False`: metadata is not requested and the meta-estimator will not pass it to `fit`.

    - `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:
      a `str`, `True`, `False`, or `None`, default=sklearn.utils.metadata_routing.UNCHANGED

        Metadata routing for `a` parameter in `fit`.

    Returns:
      self `object`

        The updated object.