Cory McCartan
banner
corymccartan.com
Cory McCartan
@corymccartan.com
Asst. Prof. of Statistics & Political Science at Penn State. I study stats methods, gerrymandering, & elections. Bayesian. Founder of UGSDW and proud alum of HGSU-UAW L. 5118.
corymccartan.com
Last fall I shared new methods research with @shirokuriwaki.bsky.social on ecological inference—inferring individual relationships from aggregate data.

Our new review WP frames past EI methods as linear models, and argues credible EI requires controlling for covariates

arxiv.org/abs/2601.07668
January 13, 2026 at 5:13 PM
Interestingly, the TX gerrymander doesn't have any net impact in a D+12 environment

Plots below show new effect of redistricting this cycle—cf left with the changes vs right if the 3-judge ruling holds
December 3, 2025 at 2:42 AM
Davidson/Nashville swinging D+25 is wild

Most swing districts next year won't look the way TN-07 does, with mainly rural counties that are shifting D by less
December 3, 2025 at 2:34 AM
D+10-15 national environment would mean Dems end up ~100 seats over Rs in the House

tinyurl.com/cmchousemodel
December 3, 2025 at 2:30 AM
IF it holds, this would net Dems 1.6 seats, on average, due to mid-decade redistricting (D+1 seat in a Dem-favoring environment)
November 18, 2025 at 6:52 PM
Net change in avg. Dem seats by state:
November 17, 2025 at 10:30 PM
D+8.5 (±2) would be 245 Dem seats on average
November 17, 2025 at 10:27 PM
Have updated my simple House model spreadsheet with currently enacted districting plans.

Net effect is R+0.4 seats on average (!), with actually a _Dem_ advantage past a D+8 national environment.

Copy, edit, & explore for yourself: tinyurl.com/cmchousemodel
November 17, 2025 at 10:22 PM
NYC precinct map: Mamdani now vs the primary

Purple = relative improvement vs primary
Orange = relative loss vs primary (e.g. GOP voters)

Takeaway? Mamdani improved significantly with Black voters since June! We see this in EI estimates as well: Mamdani likely won Black voters ~ 52/43 vs Cuomo
November 5, 2025 at 3:48 AM
Precinct-level NYC data: Mamdani exceeded our voterfile-based expectations, Cuomo slightly exceeded them; Sliwa fell way behind, especially in places he was expected to do well!
November 5, 2025 at 3:42 AM
In VA Gov precinct data, we are seeing a ~6pp shift on Spanberger vote share (y axis) versus 2024 president (x axis). Bit smaller in GOP precincts and bit larger in Dem precincts

cf an R+5.5 shift (on vote share) from Biden '20 to McAullife in '21
November 5, 2025 at 1:50 AM
Here at the CBS News data desk with @chriskenny.bsky.social and @simko.bsky.social! Looking at the VA numbers
November 5, 2025 at 12:55 AM
This election night I will be working the Data Desk at CBS News, focusing on the NYC mayoral race! Will try to post some things we are seeing in our precinct-level data and analyses, and maybe some cool maps like this one of Mamdani vs Harris support
November 4, 2025 at 6:07 PM
As we showed in our paper, `seine` can strongly outperforms existing methods, which generally do not control for covariates (or do not do so efficiently)
October 21, 2025 at 3:31 PM
Instead of a plot, you can also calculate a robustness value, which is a single-number summary of each estimand's sensitivity
October 21, 2025 at 3:31 PM
The fun does not stop there! `seine` lets you immediately turn around and conduct a sensitivity analysis on your estimates. The `ei_sens()` function returns a data frame with different sensitivity parameters and biases. By default this can be plotted! Benchmarking to observed covariates works too!
October 21, 2025 at 3:31 PM
The `ei_est()` function then does DML to estimate your main quantities of interest, and returns them in a tidy format.

You can subset to produce subgroup estimates, and estimate linear contrasts as well—all with proper uncertainty quantification
October 21, 2025 at 3:31 PM
Then you can quickly & easily fit a regression model and a Riesz representer to the EI specification

These are implemented efficiently with the SVD, and the penalty is tuned automatically for the regression model!
October 21, 2025 at 3:31 PM
You can then set up an EI specification which describes the problem and the covariates you will use.
October 21, 2025 at 3:31 PM
`seine` first helps you preprocess your data into a format suitable for applying EI. Any messiness with proportions not adding to 1, etc. is handled.
October 21, 2025 at 3:31 PM
A few weeks ago I shared a new WP on doing ecological inference—learning individual relationships from aggregate data, such as vote choice by race from precinct data.

Excited now to introduce `seine`, our open-source R package for doing EI easily and efficiently!

corymccartan.com/seine/
October 21, 2025 at 3:31 PM
The best news is that all of this is implemented in new software we've developed!

I will write more about this next week. I've worked hard to make it ergonomic & efficient!

corymccartan.com/seine/
September 26, 2025 at 7:42 PM
This also leads naturally to a sensitivity analysis that lets researchers evaluate how violations of the key identifying assumption affect their inferences. (Heavily based off of the "Long Story Short" paper by Chernozhukov et al)

We apply this to an air pollution example in the paper
September 26, 2025 at 7:42 PM
How to do estimation with many covariates? Building on DML and Riesz regression, we propose a semiparametrically efficient series estimator that estimates nuisance functions within a restricted partially linear function space. You can get a root-n rate on your main estimand under ~weak conditions!
September 26, 2025 at 7:42 PM
Take estimating vote choice by race, based on precinct data that have vote % and race % (but not both jointly).

We (@shirokuriwaki.bsky.social and I) show that to do EI, you have to believe that each group's preferences are independent of the racial makeup of the precinct, given covariates
September 26, 2025 at 7:42 PM