segregation.aspatial.ModifiedGiniSeg

class segregation.aspatial.ModifiedGiniSeg(data, group_pop_var, total_pop_var, iterations=500)[source]

Calculation of Modified Gini Segregation index

Parameters
dataa pandas DataFrame
group_pop_varstring

The name of variable in data that contains the population size of the group of interest

total_pop_varstring

The name of variable in data that contains the total population of the unit

iterationsint

The number of iterations the evaluate average classic gini segregation under eveness. Default value is 500.

Notes

Based on Carrington, William J., and Kenneth R. Troske. “On measuring segregation in samples with small units.” Journal of Business & Economic Statistics 15.4 (1997): 402-409.

Reference: [CT97].

Examples

In this example, we will calculate the Modified Gini Segregation Index (Gct) for the Riverside County using the census tract data of 2010. The group of interest is non-hispanic black people which is the variable nhblk10 in the dataset.

Firstly, we need to perform some import the modules and the respective function.

>>> import pandas as pd
>>> import geopandas as gpd
>>> import segregation
>>> from segregation.aspatial import ModifiedGiniSeg

Secondly, we need to read the data:

>>> # This example uses all census data that the user must provide your own copy of the external database.
>>> # A step-by-step procedure for downloading the data can be found here: https://github.com/spatialucr/geosnap/blob/master/examples/01_getting_started.ipynb
>>> # After the user download the LTDB_Std_All_fullcount.zip and extract the files, the filepath might be something like presented below.
>>> filepath = '~/data/LTDB_Std_2010_fullcount.csv'
>>> census_2010 = pd.read_csv(filepath, encoding = "ISO-8859-1", sep = ",")

Then, we filter only for the desired county (in this case, Riverside County):

>>> df = census_2010.loc[census_2010.county == "Riverside County"][['pop10','tractid']]

The value is estimated below.

>>> np.random.seed(1234)
>>> modified_gini_seg_index = ModifiedGiniSeg(df, 'tractid', 'pop10')
>>> modified_gini_seg_index.statistic
0.4280279611418648
Attributes
statisticfloat

Modified Gini Segregation Index (Gini from Carrington and Troske (1997))

core_dataa pandas DataFrame

A pandas DataFrame that contains the columns used to perform the estimate.

__init__(data, group_pop_var, total_pop_var, iterations=500)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(data, group_pop_var, total_pop_var)

Initialize self.