# pointpats.Knox

class pointpats.Knox(s_coords, t_coords, delta, tau, permutations=99, keep=False)

  Global Knox statistic for space-time interactions.

  Parameters:
    s_coords: array-like

      spatial coordinates of point events

    t_coords: array-like

      temporal coordinates of point events (floats or ints, not dateTime)

    delta: float

      spatial threshold defining distance below which pairs are spatial neighbors

    tau: float

      temporal threshold defining distance below which pairs are temporal neighbors

    permutations: int

      number of random permutations for inference

    keep: bool

      whether to store realized values of the statistic under permutations

  Attributes:
    s_coords: array-like

      spatial coordinates of point events

    t_coords: array-like

      temporal coordinates of point events (floats or ints, not dateTime)

    delta: float

      spatial threshold defining distance below which pairs are spatial neighbors

    tau: float

      temporal threshold defining distance below which pairs are temporal neighbors

    permutations: int

      number of random permutations for inference

    keep: bool

      whether to store realized values of the statistic under permutations

    nst: int

      number of space-time pairs

    p_poisson: float

      Analytical p-value under Poisson assumption

    p_sim: float

      Pseudo p-value based on random permutations

    expected: array

      Two-by-two array with expected counts under the null of no space-time interactions. `[[NST, NS_], [NT_, N__]]` where `NST` is the expected number of space-time pairs, `NS_` is the expected number of spatial (but not also temporal) pairs, `NT_` is the number of expected temporal (but not also spatial pairs), `N__` is the number of pairs that are neighor spatial or temporal neighbors.

    observed: array

      Same structure as expected with the observed pair classifications

    sim: array

      Global statistics from permutations (if keep=True)

  Notes

  Technical details can be found in [Rog01]

  Examples

      >>> import libpysal
      >>> path = libpysal.examples.get_path('burkitt.shp')
      >>> import geopandas
      >>> df = geopandas.read_file(path)
      >>> from pointpats.spacetime import Knox
      >>> global_knox = Knox(df[['X', 'Y']], df[["T"]], delta=20, tau=5)
      >>> global_knox.statistic_
      13
      >>> global_knox.p_poisson
      0.14624558197140414
      >>> global_knox.observed
      array([[1.300e+01, 3.416e+03],
             [3.900e+01, 1.411e+04]])
      >>> global_knox.expected
      array([[1.01438161e+01, 3.41885618e+03],
             [4.18561839e+01, 1.41071438e+04]])
      >>> hasattr(global_knox, 'sim')
      False
      >>> import numpy
      >>> numpy.random.seed(12345)
      >>> global_knox = Knox(df[['X', 'Y']], df[["T"]], delta=20, tau=5, keep=True)
      >>> hasattr(global_knox, 'sim')
      True
      >>> global_knox.p_sim
      0.21

  __init__(s_coords, t_coords, delta, tau, permutations=99, keep=False)

  Methods

  `__init__`(s_coords, t_coords, delta, tau[, ...]) |
  `from_dataframe`(dataframe, time_col, delta, tau) | Compute a Knox statistic from a dataframe of Point observations

  classmethod from_dataframe(dataframe, time_col: int, delta: int, tau: int, permutations: int = 99, keep: bool = False)

    Compute a Knox statistic from a dataframe of Point observations

    Parameters:
      dataframe geopandas.GeoDataFrame

        geodataframe holding observations. Should be in a projected coordinate system with geometries stored as Point

      time_col str

        column in the dataframe storing the time values (integer coordinate) for each observation. For example if the observations are stored with a timestamp, the time_col should be converted to a series of integers representing, e.g. hours, days, seconds, etc.

      delta int

        delta parameter defining the spatial neighbor threshold measured in the same units as the dataframe CRS

      tau int

        tau parameter defining the temporal neihgbor threshold (in the units measured by time_col)

      permutations int, optional

        permutations to use for computation inference, by default 99

      keep bool

        whether to store realized values of the statistic under permutations

    Returns:
      pointpats.spacetime.Knox

        a fitted Knox class