alarm-redist / fifty-states

Redistricting analysis for all 50 U.S. states
https://alarm-redist.github.io/fifty-states/
Other
9 stars 7 forks source link

2010 Washington Congressional Districts #161

Closed Aneetej closed 1 year ago

Aneetej commented 1 year ago

2010 Washington Congressional Districts

Redistricting requirements

In Washington, districts must:

  1. be contiguous
  2. have equal populations
  3. be geographically compact
  4. preserve county and municipality boundaries as much as possible

Interpretation of requirements

We enforce a maximum population deviation of 0.05%. We applied a constraint to limit county and municipality splits (see 02_setup_WA_cd_2010 file). We also used ferry routes in order to create districts linking precincts that are offshore.

Data Sources

Data for Washington comes from the ALARM Project's 2020 Redistricting Data Files.

Pre-processing Notes

As described above, the adjacency graph was modified by hand to reflect Washington's contiguity requirements. The full list of these changes can be found in the 01_prep_WA_cd_2010.R file.

Simulation Notes

We sample 8,000 districting plans for Washington using the SMC algorithm and thinned the samples down to 5,000. To comply with the federal VRA and to respect communities of interest, we add a weak VRA constraint targeting one majority-minority district (currently WA-09).

Validation

WA 2010 Analysis

SMC: 5,000 sampled plans of 10 districts on 6,966 units
`adapt_k_thresh`=0.985 • `seq_alpha`=0.5
`est_label_mult`=1 • `pop_temper`=0

Plan diversity 80% range: 0.52 to 0.81

R-hat values for summary statistics:
   pop_overlap      total_vap       plan_dev      comp_edge    comp_polsby      pop_white      pop_black       pop_hisp       pop_aian      pop_asian 
      1.020646       1.007013       1.000877       1.009620       1.027121       1.041514       1.029283       1.003249       1.015292       1.016735 
      pop_nhpi      pop_other        pop_two      vap_white      vap_black       vap_hisp       vap_aian      vap_asian       vap_nhpi      vap_other 
      1.012014       1.011881       1.019888       1.037065       1.029113       1.004391       1.015265       1.015949       1.018797       1.018028 
       vap_two pre_16_dem_cli pre_16_rep_tru pre_20_dem_bid pre_20_rep_tru uss_16_dem_mur uss_16_rep_van uss_18_dem_can uss_18_rep_hut gov_16_dem_ins 
      1.028033       1.017817       1.011321       1.019296       1.007770       1.022853       1.013209       1.008937       1.014070       1.012611 
gov_16_rep_bry gov_20_dem_ins gov_20_rep_cul atg_16_dem_fer atg_16_rep_tru atg_20_dem_fer atg_20_rep_lar sos_16_dem_pod sos_16_rep_wym sos_20_dem_tar 
      1.012491       1.016154       1.012431       1.020033       1.010431       1.021560       1.013724       1.010634       1.011003       1.012553 
sos_20_rep_wym         adv_16         adv_18         adv_20         arv_16         arv_18         arv_20  county_splits    muni_splits            ndv 
      1.014917       1.021497       1.008937       1.019049       1.013094       1.014070       1.013645       1.002015       1.009399       1.021720 
           nrv        ndshare          e_dvs         pr_dem          e_dem          pbias           egap 
      1.014997       1.025723       1.026007       1.001760       1.019431       1.004636       1.037831 

Sampling diagnostics for SMC run 1 of 2 (4,000 samples)
         Eff. samples (%) Acc. rate Log wgt. sd  Max. unique Est. k 
Split 1     3,455 (86.4%)     14.6%        0.78 2,560 (101%)     13 
Split 2     3,271 (81.8%)     19.2%        0.86 2,399 ( 95%)      9 
Split 3     3,319 (83.0%)     21.9%        0.84 2,376 ( 94%)      7 
Split 4     3,320 (83.0%)     30.8%        0.80 2,376 ( 94%)      4 
Split 5     3,304 (82.6%)     27.8%        0.79 2,353 ( 93%)      4 
Split 6     3,260 (81.5%)     28.5%        0.79 2,335 ( 92%)      3 
Split 7     3,200 (80.0%)     25.4%        0.82 2,285 ( 90%)      3 
Split 8     3,221 (80.5%)     23.3%        0.81 2,246 ( 89%)      2 
Split 9     2,963 (74.1%)      8.3%        0.91 1,886 ( 75%)      2 
Resample      887 (22.2%)       NA%        0.97 2,356 ( 93%)     NA 

Sampling diagnostics for SMC run 2 of 2 (4,000 samples)
         Eff. samples (%) Acc. rate Log wgt. sd  Max. unique Est. k 
Split 1     3,436 (85.9%)     12.1%        0.80 2,522 (100%)     16 
Split 2     3,330 (83.3%)     17.1%        0.83 2,367 ( 94%)     10 
Split 3     3,361 (84.0%)     19.2%        0.82 2,373 ( 94%)      8 
Split 4     3,353 (83.8%)     26.4%        0.78 2,415 ( 96%)      5 
Split 5     3,313 (82.8%)     26.3%        0.78 2,331 ( 92%)      4 
Split 6     3,245 (81.1%)     28.5%        0.79 2,363 ( 93%)      3 
Split 7     3,091 (77.3%)     29.9%        0.84 2,312 ( 91%)      2 
Split 8     3,027 (75.7%)     13.4%        0.89 2,208 ( 87%)      5 
Split 9     3,094 (77.3%)      2.8%        0.88 1,987 ( 79%)      8 
Resample    1,365 (34.1%)       NA%        0.95 2,431 ( 96%)     NA

Checklist

@CoryMcCartan

Aneetej commented 1 year ago

@CoryMcCartan Here is the adjacency plot WA 2010 adj plot

kosukeimai commented 1 year ago

@Aneetej I think Cory is asking you to zoom in and check whether there is discontinuity. Why don't you check that?

Aneetej commented 1 year ago

@kosukeimai @CoryMcCartan Ah, my apologies! I zoomed in and do not see any discontinuity that would lead to the discontinuity in Plan #754, but I do see some precincts that don't seem connected properly (contact points are precinct edges and not in the middle of the precinct). Here is the zoomed in image for reference.

WA 2010 Adjacency Graph SE
CoryMcCartan commented 1 year ago

Thanks for that. A bit hard to read with the pixelation (not your fault).

Maybe after you run the code to make that plot, you could run ggsave("adj.pdf", width=20, height=15) ? That would create a PDF locally that won't have any pixelation. Then you can post that here.

Aneetej commented 1 year ago

@CoryMcCartan Here is the adj graph with (hopefully) no pixelation. The zoom isn't set but it's doesn't pixilate when zooming in. I'm not seeing any disconnected precincts though...

adjMA2010.pdf

CoryMcCartan commented 1 year ago

A bit hard to see but I think a precinct in the upper left is getting connected to one in the lower right here? image

That would explain the issue we see in the example plan above.

Can you check if this edge (which is crossing diagonally top-left to bottom-right) is accidentally created in your manual adjacency graph edits? I.e. does it show up on the adjacency graph before you make those edits?

Aneetej commented 1 year ago

@CoryMcCartan, to your point about the manual connection, it appears that that connection was a manual error (from me adding the adjacency graph edits). Is there any recommendation on how to fix this error?

CoryMcCartan commented 1 year ago

You should look for an add_edge() line in your code which deals with this county (Clark, FIPS 53011). Somehow that line is connecting the wrong precincts to each other

Aneetej commented 1 year ago

Alright, so I was looking at Clark and I made one manual connection which appears to have the correct connection. I'm not sure why that connection appears as it does in the adj graph but I'm fairly certain Clark is correct.

kosukeimai commented 1 year ago

@Aneetej let's make sure that it's absolutely correct. Take a close look at those precincts and double check everything.