Representatives and direct Taxes shall be apportioned among the several States which may be included within this Union, according to their respective Numbers...
– U.S. Constitution, Article I § 2
Generally, all the precincts in a congressional district must touch each other.
(Exception: islands and the like)
The constitutional requirement in Art. I, § 2, that Representatives be chosen "by the People of the several States" means that, as nearly as is practicable, one person's vote in a congressional election is to be worth as much as another's.
– Wesberry v. Sanders (1964)
Text: Justia
State |
---|
County |
City/Town |
Precinct/Ward/VTD |
Voting districts (VTDs)
Wards
Precincts
(essentially synonymous)
See Wikipedia for more.
Data from MGGG, Data.gov, and Census.gov.
State | Population | Subunits | Average subunit population |
---|---|---|---|
Utah | 2,764,056 | 2,123 | 1,301 |
Wisconsin | 5,686,986 | 6,634 | 857 |
Massachusetts | 6,728,170 | 2,151 | 3,128 |
Pennsylvania | 12,684,929 | 8,921 | 1,422 |
California | 37,254,523 | 17,582 | 2,119 |
There are typically ~1,500 people per subunit.
...[Assembly districts are] to be bounded by county, precinct, town or ward lines, to consist of contiguous territory and be in as compact form as practicable.
– Wisconsin Constitution, Article IV § 4
Source: Wisconsin.gov
Adapted from King et al. 2018
more compact
less compact
In some cases, a districting plan must contain one or more minority opportunity districts.
Source: Public Mapping Project
Graphic courtesy MassMoments
Graphic courtesy FairVote
Graphic courtesy FairVote
90% blue
100% blue
Graphic courtesy FairVote
All districts 60% blue
Graphic courtesy Wikipedia/NationalMap.gov
Republican candidates often receive between 30 and 40 percent of the two-way vote share in statewide elections in Massachusetts…For several of the elections studied here, there are more ways of building a valid districting plan than there are particles in the galaxy, and every one of them will produce a 9-0 Democratic delegation.
–"Locating the representational baseline" (Duchin et al. 2018)
Party 1 | Party 2 | |
---|---|---|
District 1 | 55 | 45 |
District 2 | 75 | 25 |
District 3 | 35 | 65 |
District 4 | 20 | 80 |
Party A (Total) |
Party B (Total) |
Party A (Wasted) | Party B (Wasted) | |
---|---|---|---|---|
District 1 | 55 | 45 | 5 | 45 |
District 2 | 75 | 25 | 25 | 25 |
District 3 | 35 | 65 | 35 | 15 |
District 4 | 20 | 80 | 20 | 30 |
Total | 195 | 205 | 85 | 115 |
See Ballotpedia
Contextually dependent
Somewhat arbitrary
Normative
...sociological gobbledygook.
–John Roberts, Chief Justice of the United States
Inspired by MGGG (2018)
Partisanship
Problem: partition a set of subunits (smaller voting districts) into N congressional districts.
Given a set with n elements, find the number of ways the set can be partitioned into k non-empty subsets.
See Wikipedia for more.
Let's partition our 50-subunit grid into five districts.
See Wikipedia for more.
Let's partition Massachusetts (2,151 precincts) into nine districts.
See Wikipedia for more.
(Of course, the overwhelming majority of these districting plans are invalid due to constraints. But still.)
Data from MGGG, Data.gov, and Census.gov.
Problem: uniformly sample from the space of all possible valid districting plans.
If we make a succession of random changes to a districting plan, we'll eventually have a large distribution of possible plans.
(We can impose constraints on these changes to ensure that all the plans in the distribution are valid.)
MD:
sources:
vtd_map: https://dataverse.harvard.edu/api/access/datafiles/2288574
demographics: https://www2.census.gov/.../md2010.pl.zip
county_names: https://www2.census.gov/.../st24_md_cou.txt
openelections:
2008: https://raw.githubusercontent.com/.../20081104__md__general__precinct__raw.csv
2010: https://raw.githubusercontent.com/.../20101102__md__general__precinct__raw.csv
2012: https://raw.githubusercontent.com/.../20121106__md__general__precinct__raw.csv
2014: https://raw.githubusercontent.com/.../20141104__md__general__precinct__raw.csv
md_gov:
2012: https://elections.maryland.gov/.../All_By_Precinct_2012_General.csv
2016: https://elections.maryland.gov/.../All_By_Precinct_2016_General.csv
from random import random
from geopandas import read_file
from elbridge import Plan
from elbridge.strategies import stochastic_pop_coords
ma = read_file('MA_precincts_02_10/MA_precincts_02_10.shp')
plan = Plan(gdf=ma,
n_districts=9,
pop_col='POP2000',
county_col='COUNTYFP10',
city_col='City/Town')
while not plan.done:
stochastic_pop_coords(plan, random() * 0.2, random() * 6.28)
Personal
Finishing up Elbridge
More reinforcement learning work
VRDI
Data, data, data!
GerryChain