Application 1: district-level predictions

Use minorep() when the adjusted racial margin of victory (M) and minority electorate share (C) are known for one or more districts. Both are percentages from 0 to 100.

Motivating example: influence districts (Online Appendix C.1)

Louisiana redistricting disputes raised the question of whether districts with about 20% minority voters could elect minority candidates under strongly polarized voting. The scenario in Online Appendix C.1 of Atsusaka (2021) predicts a probability close to zero under those voting assumptions.

A second example considers a district with 40% minority voters. Assuming all minority voters support the minority candidate and 30% of White voters do so, sim_M() gives M = 58. Holding that margin fixed, minorep() predicts about a 3.3% chance with equal turnout, about 91.1% when minority turnout is 50% and White turnout is 40%, and almost zero when those turnout rates are reversed.

influence_M <- sim_M(C = 40, coethnic = 1, crossover = 0.3)
influence_predictions <- c(
  "Equal turnout" = minorep(M = influence_M, C = 40),
  "Higher minority turnout" = minorep(
    M = influence_M, C = 40, gap = c(0.5, 0.4)
  ),
  "Lower minority turnout" = minorep(
    M = influence_M, C = 40, gap = c(0.4, 0.5)
  )
)
round(influence_predictions, digits = 4)
#>           Equal turnout Higher minority turnout  Lower minority turnout 
#>                  0.0334                  0.9108                  0.0000

The same district composition can therefore produce very different predictions. This comparison holds past performance (M) fixed while changing turnout in the election being predicted. All probabilities are conditional on the supplied assumptions, and this comparison alone does not establish legal vote dilution. See Application 2 for constructing M.

Predicting several districts

M <- c(20, 50, 30)
C <- c(40, 70, 85)

prediction <- minorep(M = M, C = C)
round(prediction, digits = 4)
#> [1] 0.0000 1.0000 0.6906

The result contains one probability per district. minorep() returns full-precision values, so retain prediction rather than its rounded display for later analysis.

Adjusting for turnout differences

If the minority and White turnout rates are 0.5 and 0.6, respectively, provide them in that order with gap. Rates are proportions, not percentages.

prediction_with_gap <- minorep(
  M = M,
  C = C,
  gap = c(0.5, 0.6)
)
round(prediction_with_gap, digits = 4)
#> [1] 0.0000 1.0000 0.4039

The adjustment changes the effective minority share of the electorate before the model calculates the probability. Use turnout rates that match the election or scenario under study.