pointpats.modified_knox

pointpats.modified_knox(s_coords, t_coords, delta, tau, permutations=99)[source]

Baker’s modified Knox test for spatio-temporal interaction. [Bak04]

Parameters
s_coordsarray

(n, 2), spatial coordinates.

t_coordsarray

(n, 1), temporal coordinates.

deltafloat

threshold for proximity in space.

taufloat

threshold for proximity in time.

permutationsint, optional

the number of permutations used to establish pseudo- significance (the default is 99).

Returns
modknox_resultdictionary

contains the statistic (stat) for the test and the associated p-value (pvalue).

statfloat

value of the modified knox test for the dataset.

pvaluefloat

pseudo p-value associated with the statistic.

Examples

>>> import numpy as np
>>> import libpysal as lps
>>> from pointpats import SpaceTimeEvents, modified_knox

Read in the example data and create an instance of SpaceTimeEvents.

>>> path = lps.examples.get_path("burkitt.shp")
>>> events = SpaceTimeEvents(path, 'T')

Set the random seed generator. This is used by the permutation based inference to replicate the pseudo-significance of our example results - the end-user will normally omit this step.

>>> np.random.seed(100)

Run the modified Knox test with distance and time thresholds of 20 and 5, respectively. This counts the events that are closer than 20 units in space, and 5 units in time.

>>> result = modified_knox(events.space, events.t, delta=20, tau=5, permutations=99)

Next, we examine the results. First, we call the statistic from the results dictionary. This reports the difference between the observed and expected Knox statistic.

>>> print("%2.8f" % result['stat'])
2.81016043

Next, we look at the pseudo-significance of this value, calculated by permuting the timestamps and rerunning the statistics. In this case, the results indicate there is likely no space-time interaction.

>>> print("%2.2f" % result['pvalue'])
0.11