This was updated twice since first posting, as indicated below.
In a Wired article yesterday Lawmakers Who Upheld NSA Phone Spying Received Double the Defense Industry Cash, the author said that based on an analysis by MAPLight “defense cash was a better predictor of a member’s vote on the Amash amendment than party affiliation.” That suggests there’s evidence defense cash had something to do with the vote. There isn’t.There isn’t much.
Everyone who’s been following the Amash vote already knows that the vote was not along party lines in the least. Take a look at the seating chart diagram on the GovTrack vote page:
Liberal Democrats and conservative Republicans happened to form a coalition in opposition of NSA data collection (an “Aye” vote), while moderates in both parties voted to reject the amendment. (The seating chart arranges representatives by their GovTrack ideology score.) So, first, the fact that defense cash was a better predictor than party is not very interesting.
A better question is whether defense cash is a better predictor than a legislator’s pre-existing personal convictions, as measured by our ideology score.
It isn’t.
Defense cash’s prediction
To make this quantitative, let’s make the prediction like this. Since we know the vote was 205/217, let’s put the 217 legislators who received the most defense cash into one group and the bottom 205 legislators into another group. How well do those groups match the vote outcome? Here’s the breakdown by counts:
Less$ | More$ | |
---|---|---|
Aye | 123 | 82 |
No | 82 | 135 |
In other words, this prediction is right for 123+135 = 258 legislators, or just 61% of the time.
Ideology’s prediction
We can do a similar analysis based on the ideology score. The idea is that the further from the center a legislator is, the more likely he or she was to vote for the amendment. So let’s make groups for the 205 legislators with scores furthest from the median ideology score (“extreme”) and the 217 closest (“moderate”). Does that match the vote?
A little better.
Extreme | Moderate | |
---|---|---|
Aye | 131 | 74 |
No | 74 | 143 |
This prediction is right for 131+143 = 274 legislators, or 65% of the time. That’s a little better than defense cash, but let’s call it a draw.
[update: added 7/29/2013]
We have two predictors for the vote — personal conviction and campaign contributions — that are about equally good, and both are equally plausible. In the absence of other data, there’s no reason to prefer one explanation of the vote over the other.
Better together?
Votes are often mostly along party lines. That is, vote and party are often extremely highly correlated. That also means that to the extent money is highly correlated with votes, it’s then necessarily highly correlated with party affiliation too. That makes it very difficult, or impossible, to try to separate the influences of party and money.
But the Amash vote presents a uniquely interesting case because ideology (distance from the center) and defense dollars are not really correlated at all (r=-.05). That means ideology is good at predicting 60ish% of the votes and defense dollars are good at predicting a slightly different 60ish%. Maybe we can put them together to predict more than either can predict alone?
Let’s start with the predictions from the ideology score. We know we got 35%, or 148, of the votes wrong. So let’s swap the 74 congressmen in the ‘extreme’ group with the highest defense cash (call them the A group) with the 74 representatives in the ‘moderate’ group with the least defense cash (call them the B group). If money has any effect, we’d predict these to be the representatives most likely to be affected. Here’s how those representatives voted:
A | B | |
---|---|---|
Aye | 35 | 38 |
No | 39 | 36 |
Note that the by ideology alone, we predicted the As to be Aye voters and the Bs to be No voters, which was right 35+36=71 times. After the swap, we make the reverse predictions, which is right 39+38=77 times. The swap improves our predictions for 6 votes, or 1.4% (6 out of 422 aye and no votes).
The predictors are better together. That means there is room for an influence of defense dollars on the vote, even for a skeptic like me that prefers an explanation in terms of ideology first. But it’s a small effect in absolute terms. And this effect goes both ways. The 6 votes extra are split between 4 additional no-votes due to defense-dollars and 2 additional aye-votes due to lack-of-defense-dollars.
So let’s boil this down to one number. Out of the 422 votes, maybe about 4 no-votes were due to the influence of defense contractor campaign contributions. Even in a tight vote like this, that wouldn’t have affected the outcome. And it’s still a big maybe. This is a miniscule correlation that is probably due more to random chance than any actual influence of money.
(In a linear regression model, the adjusted r-squared roughly doubles when we put the factors together.)
[end of update]
What does it mean?
Since we have two predictors that are about equally good, and one has nothing to do either with defense or money, there’s no reason to think that defense cash had anything directly to do with the outcome of this vote.
There’s obviously a role of campaign cash in our political system. In particular, only candidates who can raise cash can run for office. I’ve written about that in my book if you want to know what I think in more detail.
But if you want to relate industry cash to a particular vote, you’re going to have to at least beat other explanations that aren’t based on that industry’s cash.
So, here’s the thing, it’s important that we actually tell truthful stories, not just ones that we can spin to match our beliefs.
[update: added 8/19/2013] Ben Klemens, a statistician, has turned this data into an interesting logit model and quantifies in a better way the effect of money on the vote: post 1, post 2. [end of update]
Analysis details
After merging the vote and ideology data from GovTrack with the campaign contributions aggregated by MAPLight into a single table (download), I ran the following script in R:
data = read.table("table.csv", header=T, sep=",") attach(data)
# There were 205 Aye-votes. num_ayes = sum(vote=='Aye')
# Group legislators by how much defense contractor money they received. # Call the bottom 205 legislators the 'Less$' group, and the other half # the 'More$' group. defense_dollars = ifelse(rank(contribs) <= num_ayes, 'Less$', 'More$')
# Group legislators by how far their GovTrack ideology score is from # the House median. Call the most extreme 205 legislators the 'Extreme' # group, and the other half the 'Moderate' group. distance_from_center = abs(ideology - median(ideology)) is_extreme = ifelse(rank(-distance_from_center) <= num_ayes, 'Extreme', 'Moderate') table(vote, defense_dollars) table(vote, is_extreme) cat("cor(contribs, distance_from_center) =", cor(contribs, distance_from_center),"n") swap_size = 74 group = ifelse(is_extreme=='Extreme', '0', 'Z') group[is_extreme=='Extreme'][rank(-contribs[is_extreme=='Extreme']) <= swap_size] = 'A' group[is_extreme!='Extreme'][rank(contribs[is_extreme!='Extreme']) <= swap_size] = 'B' print(table(vote, group))