This is the python code to run the local join count statistics using the Snow cholera deaths data set for central London (data/deaths_nd_by_house)
import pygeoda
# load data
snow = pygeoda.open("./data/deaths_nd_by_house.shp")
# get values for varaible "death_dum"
v = snow.GetIntegerCol("death_dum")
# create a distance weights with distance threshold = 20 (meters)
d20 = pygeoda.weights.distance_weights(snow, dist_thres=20)
print(d20)
# apply local join count statistics
snowjc = pygeoda.local_joincount(d20, v, permutations=99999, significance_cutoff=0.01)
# get results from local join count statistics
snowsig = snowjc.lisa_clusters()
pval = snowjc.lisa_pvalues()
print(sum(snowsig))
The outputs:
Weights Meta-data:
number of observations: 1852
is symmetric: True
sparsity: 0.004744156104660655
# min neighbors: 0
# max neighbors: 25
# mean neighbors: 8.786177105831534
# median neighbors: 9.0
has isolates: True
98
This is the python code to apply the local neighbor match test using an example of neighborhood-level social determinants of health (data/us-sdoh-2014-chi_utm).
import pygeoda
# load data
chi = pygeoda.open("./data/us-sdoh-2014-chi_utm.shp")
# get data from variables:"1_SES", "2_MOB", "3_URB","4_MICA"
v = ("1_SES", "2_MOB", "3_URB","4_MICA")
# apply neighbor match test with 8 nearest neighbors
chsdoh = pygeoda.neighbor_match_test(chi, v, 8)
print(chsdoh)
The outpu:
{
'Cardinality': [1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1, 1, 0, 1, 0, 2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 2, 1, 1, 3, 0, 3, 0, 0, 0, 1, 1, 0, 0, 2, 0, 1, 2, 0, 4, 2, 1, 0, 0, 0, 1, 0, 0, 2, 1, 3, 1, 2, 2, 2, 1, 1, 0, 2, 1, 3, 1, 3, 0, 1, 0, 0, 0, 3, 0, 2, 0, 0, 1, 2, 1, 2, 2, 0, 0, 2, 0, 0, 0, 4, 0, 1, 1, 4, 0, 1, 2, 1, 2, 2, 0, 1, 0, 0, 0, 2, 0, 1, 2, 3, 1, 1, 2, 0, 0, 0, 2, 2, 3, 0, 0, 0, 0, 0, 1, 0, 1, 4, 1, 0, 0, 1, 0, 0, 1, 0, 2, 2, 0, 0, 2, 1, 1, 2, 4, 0, 1, 0, 1, 3, 2, 0, 0, 1, 1, 0, 2, 3, 3, 3, 1, 2, 0, 1, 0, 1, 2, 1, 1, 3, 0, 2, 1, 2, 0, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 3, 0, 1, 3, 2, 2, 2, 0, 2, 2, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 2, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 3, 1, 4, 1, 3, 2, 0, 0, 0, 1, 1, 2, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 0, 1, 0, 0, 1, 2, 1, 0, 1, 0, 0, 1, 1, 2, 2, 0, 2, 1, 1, 2, 2, 3, 0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 1, 2, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 1, 0, 1, 2, 3, 0, 2, 1, 1, 3, 0, 0, 0, 0, 2, 0, 1, 2, 0, 2, 0, 0, 3, 2, 0, 1, 1, 0, 0, 1, 0, 1, 0, 2, 0, 1, 1, 1, 1, 1, 3, 0, 1, 0, 2, 3, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 2, 1, 0, 0, 0, 0, 1, 0, 1, 2, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 1, 2, 2, 1, 1, 1, 1, 0, 0, 2, 0, 1, 0, 1, 0, 0, 0, 2, 0, 1, 1, 1, 3, 2, 0, 0, 0, 3, 1, 2, 1, 1, 0, 1, 0, 0, 0, 0, 3, 2, 1, 2, 0, 0, 0, 1, 1, 1, 2, 0, 2, 1, 1, 1, 0, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 1, 2, 0, 0, 0, 2, 0, 2, 1, 2, 3, 0, 2, 1, 2, 3, 2, 1, 0, 0, 2, 1, 0, 1, 2, 1, 4, 2, 1, 0, 1, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 2, 2, 3, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 2, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 2, 1, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1, 3, 0, 1, 2, 0, 1, 1, 4, 5, 7, 3, 2, 0, 0, 0, 1, 0, 1, 1, 3, 4, 6, 3, 1, 1, 5, 4, 0, 3, 0, 0, 0, 3, 2, 0, 1, 0, 0, 1, 1, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 1, 1, 0, 1, 1, 0, 2, 1, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1],
'Probability': [0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, 0.002402489230530913, nan, nan, nan, nan, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, nan, nan, 0.002402489230530913, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.0760951690976322, nan, nan, nan, nan, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.002402489230530913, 0.002402489230530913, nan, nan, nan, nan, nan, nan, 3.710408078040021e-05, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, nan, 3.710408078040021e-05, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.002402489230530913, nan, 2.9807262837725103e-07, 0.002402489230530913, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.0760951690976322, 3.710408078040021e-05, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, nan, 0.002402489230530913, 0.0760951690976322, 3.710408078040021e-05, 0.0760951690976322, 3.710408078040021e-05, nan, 0.0760951690976322, nan, nan, nan, 3.710408078040021e-05, nan, 0.002402489230530913, nan, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, nan, nan, 0.002402489230530913, nan, nan, nan, 2.9807262837725103e-07, nan, 0.0760951690976322, 0.0760951690976322, 2.9807262837725103e-07, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, nan, 0.0760951690976322, nan, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.002402489230530913, 3.710408078040021e-05, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 0.002402489230530913, 0.002402489230530913, 3.710408078040021e-05, nan, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, 2.9807262837725103e-07, 0.0760951690976322, nan, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, nan, 0.002402489230530913, 0.002402489230530913, nan, nan, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 2.9807262837725103e-07, nan, 0.0760951690976322, nan, 0.0760951690976322, 3.710408078040021e-05, 0.002402489230530913, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.002402489230530913, 3.710408078040021e-05, 3.710408078040021e-05, 3.710408078040021e-05, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, nan, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, nan, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 3.710408078040021e-05, nan, 0.0760951690976322, 3.710408078040021e-05, 0.002402489230530913, 0.002402489230530913, 0.002402489230530913, nan, 0.002402489230530913, 0.002402489230530913, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, 0.0760951690976322, 2.9807262837725103e-07, 0.0760951690976322, 3.710408078040021e-05, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, nan, nan, nan, nan, 0.0760951690976322, nan, nan, nan, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, nan, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, 3.710408078040021e-05, nan, nan, nan, nan, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, nan, nan, 0.002402489230530913, nan, nan, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.002402489230530913, 0.0760951690976322, nan, nan, nan, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, nan, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, nan, nan, nan, nan, nan, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, 3.710408078040021e-05, nan, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, nan, nan, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.002402489230530913, nan, 0.002402489230530913, nan, nan, 3.710408078040021e-05, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, nan, 0.0760951690976322, nan, 0.002402489230530913, 3.710408078040021e-05, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.0760951690976322, nan, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.002402489230530913, 0.0760951690976322, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, nan, nan, nan, nan, 0.002402489230530913, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.002402489230530913, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, 0.002402489230530913, nan, nan, nan, 3.710408078040021e-05, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, nan, 3.710408078040021e-05, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, nan, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 0.002402489230530913, nan, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 3.710408078040021e-05, nan, 0.002402489230530913, 0.0760951690976322, 0.002402489230530913, 3.710408078040021e-05, 0.002402489230530913, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 2.9807262837725103e-07, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.002402489230530913, 3.710408078040021e-05, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, 0.0760951690976322, 3.710408078040021e-05, 0.0760951690976322, 3.710408078040021e-05, 0.002402489230530913, nan, nan, nan, nan, nan, 0.0760951690976322, nan, nan, 0.002402489230530913, nan, nan, 0.0760951690976322, 3.710408078040021e-05, nan, 0.0760951690976322, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, 2.9807262837725103e-07, 1.2244318495599528e-09, 1.7228290717169489e-15, 3.710408078040021e-05, 0.002402489230530913, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 3.710408078040021e-05, 2.9807262837725103e-07, 2.35467663376914e-12, 3.710408078040021e-05, 0.0760951690976322, 0.0760951690976322, 1.2244318495599528e-09, 2.9807262837725103e-07, nan, 3.710408078040021e-05, nan, nan, nan, 3.710408078040021e-05, 0.002402489230530913, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, 0.002402489230530913, nan, 0.002402489230530913, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.002402489230530913, 0.0760951690976322, nan, 3.710408078040021e-05, nan, 0.0760951690976322, nan, nan, nan, 0.0760951690976322, nan, nan, nan, nan, nan, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, nan, 0.0760951690976322, nan, nan, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, 0.0760951690976322, 0.002402489230530913, 0.0760951690976322, 0.0760951690976322, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, nan, nan, nan, 0.002402489230530913, nan, 0.0760951690976322, nan, 0.0760951690976322, nan, nan, nan, nan, nan, 0.0760951690976322, nan, 0.0760951690976322]
}
Test datasets:
Name | # observations | variable |
---|---|---|
U.S. counties (natregimes.shp) | 3,085 | HR60 (homicide rates for 1960) |
U.S. census tracts (us-sdoh-2014.shp) | 72,344 | EP_UNEMP (unemployment rate by U.S. census tract in 2010) |
New York City census blocks (NYC Area2010_2data.shp) | 108,487 | CE01_02 (employed persons earning less than $1250 per month in 2002) |
Chicago parcels (Chicago_parcels_points.shp) | 592,521 | EstBuild Board of Review final estimated market value of building from the prior tax year. |
Test function:
The main time-consuming part in the Local Moran statistic is the conditional permutation. The number of permutations ranges from 999 (the default in GeoDa) to 9,999 and 99,999 (the largest possible value in GeoDa).
Software | Test Function |
---|---|
GeoDa | Local Moran using GPU |
pygeoda | local_moran() with permutation_method="complete" |
pygeoda | local_moran() with permutation_method="lookup-table" |
rgeoda | local_moran() with permutation_method="complete" |
rgeoda | local_moran() with permutation_method="lookup-table" |
pysal/esda | Moran_Local() without Numba (No multi-threading) |
pysal/esda | Moran_Local() with Numba (multi-threading) |
spedp | localmoran_perm() |
- NOTE: permutation_method="complete" vs "lookup-table"
In "complete" permutation method, for example with 999 permutations, each observation will find 999 groups of random neighbors which are used to compute a pseudo-p value. Therefore, the total number of permutation computation is: sum(999 x nbr_i)
In "lookup-table" permutation method, for example with 999 permutations, a 999 groups of random neighbors (size = max_neighbors) from a pool of (N-1) indices will be created as a "lookup-table". Then, each observation will use this "lookup-table" to compute a pseudo-p value. The (N-1) indices in the "lookup-table" will be reordered by removing the index of current observation, so to create a "conditional" permutation test. Therefore, the total number of permutation computation is: 999 x max_neighbors
The "lookup-table" method is implemented in pysal/esda (version 2.3.6) and pygeoda/rgeoda (version 0.0.8).
Test machine:
- Mac Pro (Later 2013)
- Processor: 2.7 GHz 12-Core Intel Xeon E5
- Memory: 64 GB 1866 MHz DDR3
- Graphic: AMD FirePro D700 6 GB
Test environment:
Software | Version |
---|---|
macOS | Mojave Version 10.14.6 |
Python | Python3.6.6 64-bit |
R | R 4.0.3 |
clang | Apple clang version 11.0.0 |
Test implementations:
Software/Library | version | |
---|---|---|
1 | GeoDa desktop (using GPU) | 1.18 |
2 | libgeoda C++ API | 0.0.8 |
3 | rgeoda | 0.0.8 |
4 | spdep | remotes::install_github("r-spatial/spdep") |
5 | pygeoda | 0.0.8 |
6 | PySAL | libpysal 4.4.0, esda-2.3.6 |
Each test function will be executed 3 times, and the average executing time (in seconds with 6 digital decimals) will be recorded.
Test results:
- pygeoda (permutation_method="complete")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 0.5914509296417236 | 0.08591008186340332 | 0.05975604057312012 |
9999 | 6.03707218170166 | 0.8514440059661865 | 0.5646729469299316 |
99999 | 58.92710328102112 | 8.485954999923706 | 5.570709943771362 |
- Pygeoda using permutation_method="lookup-table"
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 0.05076098442077637 | 0.009467840194702148 | 0.007524013519287109 |
9999 | 0.49645209312438965 | 0.07634782791137695 | 0.05653190612792969 |
99999 | 4.989437103271484 | 0.6796438694000244 | 0.5439951419830322 |
- PySAL/ESDA without Numba (No multi-threading)
Permutations | No multi-threading |
---|---|
999 | 0.5763969421386719 |
9999 | 2.856947898864746 |
99999 | 32.94658708572388 |
- PySAL/ESDA wit Numba
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 4.20540714263916 | 8.051929950714111 | 11.0227689743042 |
9999 | 5.640074968338013 | 9.817737817764282 | 12.505669832229614 |
99999 |
- rgeoda (permutation_method="complete")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 0.643 | 0.104 | 0.079 |
9999 | 6.419 | 0.891 | 0.673 |
99999 | 65.327 | 9.141 | 6.844 |
- spdep
spdep uses multi-processing programming to parallel the local moran computation
Permutations | No parallel | 4 Cores | 8 Cores |
---|---|---|---|
999 | 1.271 | 0.618 | 0.434 |
9999 | 9.714 | 3.492 | 1.956 |
99999 | 97.019 | 33.408 | 18.353 |
- rgeoda (permutation_method="lookup")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 0.061 | 0.018 | 0.016 |
9999 | 0.528 | 0.081 | 0.070 |
99999 | 4.954 | 0.695 | 0.549 |
- pygeoda (permutation_method="complete")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | 17.454599857330322 | 2.4892380237579346 | 1.6712172031402588 | |
9999 | 175.07298302650452 | 25.021250009536743 | 16.907100200653076 | |
99999 | 1727.7120940685272 | 248.83428502082825 | 166.1402678489685 |
- pygeoda (permutation_method="lookup-table")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | 2.0331978797912598 | 0.30008673667907715 | 0.23631691932678223 | |
9999 | 20.22104287147522 | 2.7842931747436523 | 2.2208046913146973 | |
99999 | 278.66816306114197 | 29.182877779006958 | 23.67146110534668 |
-
PySAL/ESDA without Numba (No multi-threading)
-
spdep
Permutations | Not Use Core | 4 Cores | 8 CPU Cores |
---|---|---|---|
999 | 78.861 | 28.678 | 17.504 |
9999 | 394.205 | 159.013 | 86.205 |
99999 | 3517.074 | 1435.823 | 766.686 |
- rgeoda (permutation_method="lookup")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 2.185 | 0.432 | 0.345 |
9999 | 21.004 | 3.039 | 2.402 |
99999 | 373.949 | 31.582 | 23.572 |
- pygeoda (permutation_method="complete")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | 28.46846580505371 | 4.277080059051514 | 2.896711826324463 | |
9999 | 282.76479601860046 | 42.7974419593811 | 28.276558876037598 | |
99999 | 2821.240134000778 | 422.4912781715393 | 283.2045419216156 |
- pygeoda (permutation_method="lookup-table")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | 3.9321858882904053 | 0.5913081169128418 | 0.45052385330200195 | |
9999 | 37.25004291534424 | 5.340345859527588 | 4.245307922363281 | |
99999 | 656.4548988342285 | 62.88683271408081 | 48.3938422203064 |
- PySAL/ESDA without Numba (No multi-threading)
The new Moran_Local() can't handle the islands and throws ValueError:
-
rgeoda (permutation_method="complete")
-
spdep
Permutations | Not Use Core | 4 Cores | 8 CPU Cores |
---|---|---|---|
999 | 143.273 | 49.197 | 30.782 |
9999 | 518.500 | 206.445 | 113.492 |
99999 | 4254.713 | 1745.632 | 933.819 |
- rgeoda (permutation_method="lookup")
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads |
---|---|---|---|
999 | 4.074 | 0.706 | 0.567 |
9999 | 37.748 | 5.500 | 4.387 |
99999 | 735.241 | 68.873 | 48.744 |
- pygeoda (permutation_method="complete")
(knn=20)
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | 389.7134437561035 | 57.798383951187134 | 43.7291738986969 | |
9999 | 3842.998600959778 | 556.979868888855 | 436.6491787433624 | |
99999 | 53586.285209178925 | 1964.156000137329 | 1349.4739561080933 |
- pygeoda (permutation_method="lookup-table")
(knn=10)
Permutations | Single Thread | 8 CPU Threads | 16 CPU Threads | Average |
---|---|---|---|---|
999 | ||||
9999 | ||||
99999 | 3419.858710050583 | 164.23768401145935 |