Friday, August 25, 2017

How big is a 12% defection rate?

There's this story going around about how 12% of the people who voted for Bernie Sanders in the primary voted for Trump in the general, and this was sufficient to swing the vote in Trump's favor.  The Political Wire report is behind a paywall, but the raw data are here.




So, how big is a 12% defection rate?


At first glance, 12% seems huge, but how does it compare to other defection rates?  Well, Trump lost roughly 34% of Kasich voters, 3% of Cruz voters, 12% of Rubio voters, and 2% of Trump primary voters to Clinton.

4.5% of 2016 primary voters for Clinton voted for Trump.  If those voters had gone for Clinton in the general, they would be sufficient to swing the vote in her favor**.


Using this data to understand how people voted in an effort to understand how to reach those people in future elections could be useful.  Using this data to fan flame wars between Bernie and Hillary supports seems like a huge waste of time.  


** Brian Schaffner breaks down the Bernie defectors by state.  I'm a little nervous about breaking down the numbers by state, because there are a large number of voters with "na"  values for State.  I don't know what these values mean, except that we would need to take care when talking about individual state results based upon this data.


EDIT (8/28/17): I only just saw Schaffner's statement to NPR that "I found basically no Clinton primary voters who voted for Drumpf."  I'm looking at the source data and see the following weighted breakdown.  This shows 4.5% of Clinton voters defecting to Trump, so I'm not certain how Schaffner arrived at that conclusion.

Here is the R code that creates this table, from the raw RData downloaded from the CCES Dataverse:

library(data.table)
library(magrittr)
library(dplyr)
load("CCES16_Common_OUTPUT_Jul2017_VV.RData")
x %>% subset(select=c("CC16_328","CC16_410a","commonweight_vv_post")) %>%          setnames(old=c("CC16_328","CC16_410a","commonweight_vv_post"),  new=c("Primary2016","General2016","weight")) %>% 
 group_by(Primary2016,General2016) %>% filter(Primary2016 %in% ("Hillary Clinton")) %>% 
 summarise(weightedN=sum(weight)) %>% print()


No comments:

Post a Comment