Two models show the chances of successfully impeaching President Trump are not good.
Before anyone gets too excited: this is not a post about politics; it is a post about statistics and data viz. Nothing in this article should be interpreted as either an endorsement of, or opposition to, the idea of impeaching the president. Rather, we are just going to look at some publically available data to draw some reasonable conclusions as to whether a hypothetical impeachment attempt is likely to succeed. For me, this is a fun way to look at data that I might not otherwise often consider. Mostly, however, it's an excuse to play with Flourish, which I've been admiring for some time.
This post was inspired by a recent tweet from Lara Trump (which has since been re-tweeted by the POTUS, incidentally):
— Lara Trump (@LaraLeaTrump) September 28, 2019
Obviously, this visualization is a bit deceptive as it does not take into account population densities. But it occurred to me, while looking at other geographical maps that Democrats tweeted back in reply, that the idea of looking at impeachment through the lens of a geo map in the first place doesn't make sense. Both the original map and the replies are simply irrelevant. Why? Because the American people do not impeach a president by referendum vote, that role is reserved for Congress. And it further occurred to me that the best way of predicting what Congress is likely to do in the future is to see how its current members have voted on divisive issues in the past. Based on this, I put together a couple different models showing what support in both chambers of Congress for impeachment might foreseeably look like. But first, some key assumptions to get out of the way.
Assumptions Baked Into Both Models
- Only looking at voting history since January 2017 (i.e. during the current administration).
- Only roll call votes are counted.
- Only counting yes/no/present votes, not multiple choice votes (such as when voting for a particular candidate).
- Only counting votes on reasonably divisive issues, not procedural or clearly bipartisan votes that generally pass close to unanimously. The threshold is at least 16 minority votes in Senate or 51 minority votes in the House.
- An issue is considered to be "along the party lines" of whichever party contributed the most to the majority vote. For instance, if a resolution in the senate passes 60-40 and 50 of the winning 60 votes belong to Democrat party members, then the issue will be categorized as being along Democrat party lines (because 50 > 10).
- For simplicity, excluding those votes that resulted in an unbroken tie (happens very rarely).
- This last one may be a little controversial: that any crimes the president is alleged to have committed are not so heinous that they would significantly sway legislators' historic stances or cause widespread public outrage even among his own base. The president has been unofficially charged with various degrees of impropriety since before he was even elected. Since we are only looking at voting data since January 2017, I'm assuming that legislators' general feelings towards the president have more or less solidified by this point. And, for lack of a better term, I'm assuming that any actual crimes he is charged with during an impeachment hearing are relatively "soft" (think procedural crime, as opposed to murder, for example).
Model 1: Tendency to Vote with Party
Readers of the blog might remember this guy. We talked about him before in the context of market share. We are going to be using the same concept today to discuss Congressional voting probabilities. Let's say this two-tone individual represents a member of Congress. It turns out that it's extremely rare for any member to vote 100% of the time along his or her party's lines. Even the staunchest Democrat might occasionally side with Republican colleagues, and vice versa. Imagine that the amount of blue indicates the percentage of time that the congressperson votes along Democrat party lines (let's say 75%). The first model then takes this amount of blue and says "well, what we have here is 0.75 votes for impeachment," assuming impeachment becomes an officially-espoused Democratic party issue. Of course, there is no such thing as 0.75 votes—this is just another way of looking at probabilities, which only become meaningful in aggregate, when we add up all the fractional people and see how many whole people we have in total. If you have 10 people, each 90% likely to vote Democrat, that you might reasonably except that the total number of Democrat votes will be 9.
From a visual point of view, we can use this concept to color dots in a parliamentary chart in shades of blue/red, rather than fully saturated like we are used to seeing. The darker the saturation, the greater the odds that someone will vote along the party lines of a particular party. Without further ado, here's what the chart looks like for the House of Representatives:
So far, things look pretty promising for the budding impeachment effort. This model shows that it will get 233 votes in the House; while this is short of the full 235-representative Democratic roster, it is still far more than the 218 threshold. Not surprisingly, though, things fall apart in the Senate:
Not only is the Senate mostly Republican, but out of the 47 non-Republican members, only 41 are predicted to vote to impeach. This falls vastly short of the 67-Senator super-majority that is required for a successful impeachment vote.
Model 2: Playing it Safe
This model uses the same historical voting data as the previous model. However, it does not add up voting probabilities to turn them into votes. Rather, it takes into account that an impeachment vote is not exactly "business as usual" in Congress; it amounts to essentially reversing an election, which is about as serious of a position as a legislator can take. The hard-line folks, those who virtually always vote along Democrat party lines, can probably be expected to support an impeachment effort—but what about all the others? Using a threshold of historical Democratic voting patterns, what if we say that anyone who is above that threshold will count as one solid vote for impeachment, and anyone below that threshold will not count as a vote for impeachment at all? That's not to say they will necessarily vote against impeachment, but a vote of "present" (i.e. playing it safe) instead of "aye" strikes just as much of blow in this case. For the below two charts, I used a 90% threshold. That means that someone like Congresswoman Ocasio-Cortez (D-NY), who historically has voted 97.4% along Democrat party lines, would be counted to support the effort. Someone more moderate like Congressman Costa (D-CA), however, would not be counted as supporting the effort, since his historic voting record is only 73.7% Democrat. I'm also assuming that 100% of Republicans would oppose the effort, but if they merely abstain from voting it would have the same effect. So what does this look like in aggregate in both chambers?
The result is that the impeachment effort fails even in the Democrat-controlled House, and would overwhelmingly fail in the Senate.
So What Does All This Mean?
As a wise person once said: ¯\_(ツ)_/¯ These models only represent one limited way of looking at the world. They treat people like they are perfectly predictable machines; we know that this is not the case. We also know that the past does not necessarily predict the future and one newsworthy incident can be enough to strongly sway members of Congress in either direction. An example would be Congressman Cummings (D-MD) who, on paper, is quite moderate with a historic Democrat-party-line voting record of only 70.6%, but who has publically called for the president's impeachment recently. Nevertheless, all (or at least most) things being equal, I certainly find the numbers very interesting. And one thing I can definitely conclude is that Flourish is a very slick visualization tool and I look forward to working with it more in the future!
I'm not a political analyst, nor do I even play one on TV. So here's all the data I used; if anyone wants to create their own models, I'd love to see them! And all the code is freely open to anyone who has a license of QlikView, which you can also use to tweak that 90% number I used in the second model. Or if you prefer that I tweak it for you, just drop me a line in the comments below!