Multi-group Segregation Indices¶
%load_ext watermark
%watermark -a 'eli knaap' -v -d -u -p segregation,geopandas,libpysal
Author: eli knaap
Last updated: 2026-09-04
Python implementation: CPython
Python version : 3.14.7
IPython version : 9.17.1
segregation: 2.5.6.dev83+g2e095ced1
geopandas : 1.1.4
libpysal : 4.15.0
Classes for computing multigroup segregation indices are in the multigroup module
import geopandas as gpd
import matplotlib.pyplot as plt
from libpysal.examples import load_example
from segregation.multigroup import MultiDissim, MultiInfoTheory
sacramento = gpd.read_file(load_example("Sacramento1").get_path("sacramentot2.shp"))
sacramento = sacramento.to_crs(sacramento.estimate_utm_crs())
Aspatial Segregation Indices¶
multi_dissim = MultiDissim(sacramento, groups=['WHITE', 'BLACK', 'HISP'])
multi_dissim.statistic
np.float64(0.42469982288295693)
multi_info = MultiInfoTheory(sacramento, groups=['WHITE', 'BLACK', 'HISP'])
multi_info.statistic
np.float64(0.1800803002655424)
Spatial Segregation Indices¶
As with single group measures, generalized spatial versions of multigroup indices can be created by passing a distance parameter or a W/Network object.
Note: the network-distance workflow below relies on the optional
pandarmpackage and a pre-built network file, so those cells are taggedskip-executionand are not run during automated testing.
spatial_multi_dissim = MultiDissim(sacramento, groups=['WHITE', 'BLACK', 'HISP'], distance=2000)
spatial_multi_dissim.statistic
np.float64(0.37767566088850035)
from pandana import Network
net = Network.from_hdf5("../40900.h5")
net_multi_dissim = MultiDissim(sacramento, groups=['WHITE', 'BLACK', 'HISP'], distance=2000, network=net, decay='linear')
net_multi_dissim.statistic
0.3997196467720179
Batch-Computing Multi-Group Measures¶
To compute all single group indices in one go, the package provides a wrapper function in the batch module similar to single-group indices
from segregation.batch import batch_compute_multigroup
all_multigroup = batch_compute_multigroup(sacramento, groups=['WHITE', 'BLACK', 'HISP'],)
all_multigroup
| Statistic | |
|---|---|
| Name | |
| GlobalDistortion | 0.0444 |
| MultiDissim | 0.4247 |
| MultiDivergence | 0.1317 |
| MultiDiversity | 0.7314 |
| MultiGini | 0.5565 |
| MultiInfoTheory | 0.1801 |
| MultiNormExposure | 0.1914 |
| MultiRelativeDiversity | 0.1686 |
| MultiSquaredCoefVar | 0.1453 |
| SimpsonsConcentration | 0.5877 |
| SimpsonsInteraction | 0.4123 |