Princeton Election Consortium

Innovations in democracy since 2004

Sep 20: Biden 347 EV (D+5.2% from toss-up), Senate 52 D, 48 R (D+3.7%), House control D+3.0%
Moneyball states: President NV AZ PA, Senate MT KS AK, Legislatures KS TX NC

Schroedinger’s Senate

May 27th, 2014, 9:45pm by Sam Wang

In 2015, who will control the Senate? Warring models point in opposite directions. The NYT’s “The Upshot” looks at polls and other factors, and has Democrats favored. The Monkey Cage favors the Republicans. Who’s right?

For now, here’s the snapshot (following my past methods): in an election today, Democrats would retain control of the Senate with about 67% probability. Think of the Senate in 2014 as Schroedinger’s Cat: in that closed box, it’s currently 1/3 dead*. That will change over time. We open the box on November 4th.

See my further thoughts on the issue over at Politico. Here it is: The War Of The Senate Models.

Update: As per usual, here is the MATLAB code. It’s basically like the Presidential race, except that each state gets one “electoral vote,” i.e. one Senate seat. Super-simple. The basic algorithm is in senate2014_est.m. Then, senate2014_biascalc.m calls the basic algorithm, and allows you to see what would happen if polls moved over a range of possibilities. A simpler way is to simply set “bias=-2“, which moves margins toward the GOP by 2%, then run senate2014_est.m. Set bias to whatever your hopes and biases are. Mine is bias=0, which has a good track record on Election Eve.

Update #2: To learn about Schroedinger’s Cat and why I invoked it, click the image!

*”Dead”=GOP control, “live”=Democratic control. Some might see it the other way around…

Tags: 2014 Election

28 Comments so far ↓

  • SFBay

    I think some reporters and pollsters have a preferred outcome and work to make the poll results back up the outcome they want. I would be interested to know how you reached your 67% probability.

    • Sam Wang

      Surely you do not mean me! Anyway, I did it the usual way that I always do, straight calculation with no thumb on the scale. And then I wrote the story afterward to fit the facts.

      The methods are in the article, and closely follow what I do for presidential elections, which is listed in the left sidebar. I have now posted code.

    • anthony

      No. the polls are not skewed. Ask President Romney

    • Davey

      The problem with being a pollster is that statistics are weird. I project a 90% chance that it will be sunny tomorrow, but it rains. Was I wrong? No, I was totally right…but we woke up and found ourselves in the far less likely side of my prediction. With political statistics, you can only really get a sign of skew over time. If I consistently favor one side to win and they consistently win, that’s not skew. If I favor one side to win 80% of the time and history shows them winning 50%, that might indicate the bias you’re describing.

  • Jack Tenold

    It’s nice to have your political commentary back , Sam. I’ve been checking every day. Thanks for a great site.

    • 538 Refugee

      That reminds me. I have to put the RSS feed onto my laptop. I’m not spending much time in front of the other lately. I kinda expected this posting so I watched for a while. Must have gone up shortly after I quit checking. If any don’t know, the RSS feed will clue you to new postings.

  • Amitabh Lath

    Nice article in Politico. I note the Upshot (another polls-only prediction) is now at 61%, close to yours.

    The Upshot also has a table comparing predictions.

    Which one of these are model only? Rothenberg and Sabato I would guess.

    Could you break your prediction out by states? I would like to see what the PEC says about Georgia and Louisiana.

    And the damn cat. I wish it would die and stay dead. Most freaky thing about QM is how spins add.

    • Sam Wang

      I agree that there is freakishness about QM that does not make it into public discussions. I just thought it would be fun to invoke The Cat.

      In regard to state-by-state, as I tweeted the other day, Georgia and Louisiana are in the 20-80% range, too close to have any certainty in regard to November. If you’re not too wedded to individual Senate races, I think the Obama approve/disapprove average at HuffPost is the number to watch.

      For what it’s worth, I have:
      Georgia, Nunn (D) +1% margin, 62% probability.
      Louisiana, Landrieu (D) -1% margin, 32% probability.
      Along with Alaska, Arkansas, Kentucky, and North Carolina, they are this year’s current knife-edge races.

      I’ll say more in the weeks ahead, including some of the points you raised. It will not surprise you that in my view, we have on this thread identified most of the themes of this year’s campaign!

  • Amitabh Lath

    I just looked at the code. I hadn’t realized you doing this by hand. I hope you have a student to input the values.

    I noticed the huffpost polls indicate Likely Voter (LV) and Registered Voter (RV), and give the number sampled. Would it make a difference to weight the polls based on these?

    For instance, in the KY race, the margins are +1, -1 and -1. The +1 is due to a 1500 LV sample, while the first -1 is a 2400 RV sample, and the last -1 is a 500 LV sample. Would it make sense to weight that 1500 LV sample a little more?

    Also, what is the “un” variable? It is set to zero.

    • Sam Wang

      Once it’s automated, there will be a pretty graph. I will send up a smoke signal.

      The “un” variable is a metaphorical safety belt, to make sure that SEM is not zero. Thanks for flagging that – I should put it back on for the automated process.

      LV, RV, weighting…your criticisms are valid. However, for transparency’s sake I never do any of that. It’s a compromise that I view as necessary for maintaining a publicly verifiable calculation.

  • Eric Walker

    What I am eagerly awaiting is a list, similar to what you have done in the past, of where dollar campaign contributions are most likely to have effect. (That would, it is to be hoped, House races as well.)

    • Sam Wang

      That’ll be one of the posts. Spoiler: it will be very similar to the 20-80% races I listed above. More soon.

    • Ming Kuo

      I’m with Eric! Looking for bang for the buck, in terms of control of houses, and in terms of individual races. Thank you so much!

    • Sam Wang

      It’s up now. Take a look.

      Unfortunately, I am not confident of my ability to identify key House races. Also, it seems unlikely at the moment that control of the House is up for grabs. If that changes, I will of course revisit the subject.

  • Amitabh Lath

    Interesting primary night. Depending on how the
    Mississippi R primary turns out (it looks headed to runoff) you may have to add another state to your array.

    • Sam Wang

      Doubt it. The Republican victory there will simply move from low double digits to high single digits. But then there is the Akin factor…

    • Amitabh Lath

      This is interesting. Here is the money sentence:

      For incumbents running for re-election, we consider their approval ratings. We also consider each candidate’s political experience; money raised; the state’s most recent presidential result; national polls on the public’s mood; and whether the election happens in a midterm or presidential year.

      So even the Upshot is not a polls-only algorithm. Ugh.

    • Sam Wang

      True, but at least they only use that to set a prior, which is not so bad.

      I’ll have the automated polls-only tracker up soon. It’s going to show a recent drop for the Democrats. Things have turned south for them in Iowa and Georgia.

    • 538 Refugee

      Maybe that is why this site doesn’t get the huge list of posters some others do? You don’t have things like weights to discuss back and forth over. Maybe complexity has its place. It drives traffic. ;)

    • Sam Wang

      Indeed I am not a fan of complexities like weighting, which I think are of nearly no benefit. As I ramp up, I’ll start beating the simplicity drum again!

      I don’t think any procedure could have predicted what happened to Eric Cantor, on the grounds that there probably weren’t many surveys. The one exception would be if there were net approve/disapprove figures showing him below 50% with Republicans.

  • Amitabh Lath

    Cantor lost the primary. One would need astronomy units to gauge the distance between the poll predictions and the actual outcome.

    I know, congressional districts are difficult to poll, primaries are even more difficult, and this was an open primary so maybe D’s crossed over…

    But still, maybe weighting polls isn’t such a bad idea!

    • HHW

      Analyses are now coming out concluding that there weren’t enough Democrats crossing over to make a difference. It’s looking more and more like Cantor had become extraordinarily unpopular in this district, and his office and campaign had been tone-deaf and in deep denial about this.

      The problem with weighting polls is that because there are so few polls that have been conducted, weighting what little there are introduces more “noise” to the equation, which can result in more unreliable predictions.

    • bks

      Cantor is not a good fit for the 7th district in Virginia. It’s white and semi-rural. Cantor is a beltway guy and really is a very poor match for the old-school southerners in that part of Virginia. There were plenty of news stories about Cantor getting dissed at his own dog and pony shows in the district. What his own parochial pollster had to say is almost irrelevant. –bks

  • Tony Roberts

    It’s past time for you to start beating the “simplicity drum”. You have legions of people who rely on you to cut through the clutter and junk to provide the most accurate predictions and projections in the business. I plead with you to start.

  • Ryan

    I’ve translated the code to Python/NumPy and have posted it at
    It doesn’t take any arguments; just run it like you would any python program by calling “python”

    The functionality is identical to the MATLAB version, except that it currently does both the bar graph (bias=0) and the biascalc line graph. To get one or the other, comment out the relevant lines in main().

    There are a few magic numbers I’m curious about and haven’t quite figured out yet:
    1. The 0.88 factor in calculating prob_dem. It seems to suggest that democrats will have an 88% chance of controlling an evenly-split senate.
    2. In calculating the standard errors of the means, I guess the 0.6745 gets us quartiles, but I’m not sure where 1.2 comes from. I’ve never worked with mean absolute deviation before so I’m not 100% sure what’s going on here.

    • Sam Wang

      Whoa! You did that? That is great! I was just wishing for someone who was bilingual in NumPy and MATLAB. I know I should learn NumPy, kind of embarrassed about that.

      I’d like to be in touch. I am at a decision point about whether to use the script you just converted, or to adapt the Presidential one. Would you have any interest in doing it again, with a better script?

      Answers to your questions:
      1. The 0.88 factor doesn’t matter this year. It was a way to factor in the uncertainty in the 2012 Presidential race, i.e. Democrats needed either 50 D/I seats plus VP Biden, or 49 D/I seats plus VP Ryan.
      2. The 0.6745 is a way to get an estimated SD from a median absolute deviation. It’s documented here. Basically the number is invcdf(0.75).

Leave a Comment