Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarity on weighting functionality in ei_good, ei_iter, ei_rxc #129

Open
bfifield opened this issue Jun 2, 2021 · 2 comments
Open

Clarity on weighting functionality in ei_good, ei_iter, ei_rxc #129

bfifield opened this issue Jun 2, 2021 · 2 comments

Comments

@bfifield
Copy link

bfifield commented Jun 2, 2021

Is your feature request related to a problem? Please describe.
Cohen, Duchin, Matthews, and Suwal (https://mggg.org/uploads/DP.pdf) analyze the effects of the Census DAS policy for voting rights analyses and litigation. Their suggestion is that any bias induced by DAS can be alleviated by either trimming very small precincts from any voting rights analysis, or by weighting precincts by total turnout in any ecological regression or EI analysis. However, it is difficult to figure out whether any weighting functionality is supported, or if it happens automatically using the totals argument, in any of the main estimation functions in eiCompare.

Describe the solution you'd like
Either documentation discussing how precincts are weighted by default in each of these three estimation functions, or an additional weights argument where users can weight by the population total of their choice.

Describe alternatives you've considered
Dropping small precincts is an alternative that I can immediately implement, but weighting would be a really welcome feature and also fits with their primary recommendation.

@aridf
Copy link
Collaborator

aridf commented Jun 2, 2021

Interpret everything I say below with the caveat that I haven't found the code for Cohen, Duchin, Matthews, and Suwal so I might be way off-base.

Note the following passage from the paper:

Because the general aggregate-to-individual inference problem is called “ecological” (cf. ecological paradox, ecological fallacy), the leading techniques are called ecological regression (ER) and ecological inference (EI). It is rare that EI and ER do not substantively agree, and we focus on ER here because it lends itself to easily interpretable pictures. ER is a simple linear regression, fitting a line to the data points determined by the precincts on a demographics-vs-votes plot. A high slope (positive or negative) indicates a likely strong difference in voting preferences, which is necessary to demonstrate the Gingles 2-3 tests for a VRA lawsuit.

My interpretation of this passage is that the authors are not primarily using iterative EI, RXC, or even Goodman regression (which iteratively applies the formula cand_voteshare ~ race_share + totalvotes). They are instead fitting bivariate regressions of the form cand_voteshare ~ race_share. Since they are fitting bivariate OLS models, adding weights corresponding to precinct population is both straightforward and feasible. It's unclear whether the author's prescription about weighting still applies to EI methods.

We will try to confirm how/whether the three EI methods incorporate turnout and add this to the documentation. We could also add a function for running what the authors call 'ecological regression' if that's useful, although the underlying models are quite straightforward to run without such a function.

Does this make sense, @bfifield?

@bfifield
Copy link
Author

bfifield commented Jun 2, 2021

That all makes sense - thanks, @aridf. That's also helpful for double-checking my own understanding. Agreed that the Cohen et al models are extremely simple to run and don't need a separate interface from your team. I think just a note on how the three main methods weigh the precincts in an analysis (whether by turnout or whatever population denominator the user is inputting), or if they're weighted at all, would be most helpful here. And thanks very much for developing a great suite of tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants