Last week, as I walked into Andrew’s office for a meeting, he was
formulating some misgivings about applying an ideal-point model to
budgetary bills in the U.S. Senate. Andrew didn’t like that the model
of a senator’s position was an indifference point rather than at their
optimal point, and that the effect of moving away from a position was
automatically modeled as increasing in one direction and decreasing in
The monotonicity of inverse logit entails that the expected vote
for a bill among any fixed collection of senators’ ideal points is
monotonically increasing (or decreasing) with the bill’s position,
with direction determined by the outcome coding.
The Ideal-Point Model
The ideal-point model’s easy to write down, but hard to reason about
because of all the polarity shifting going on. To recapitulate from
Gelman and Hill’s
book (p. 317), using the U.S. Senate instead of the Supreme Court, and
ignoring the discrimination term, the ideal-point model is
Pr(y[i]=1) = invLogit(alpha[j[i]]-beta[k[i]]) = 1/(1 + exp(-(alpha[j[i]]-beta[k[i]]))).
y[i] is the vote by senator j[i] on bill k[i]. The value alpha[j] is
the ideal point of senator j and the value beta[k] the position of
bill k. The probability of a 1 vote versus the difference
alpha[j[i]]-beta[k[i]] looks as follows.
But what does a 0 or 1 response mean? In Gelman and Hill’s words, the
vote is “coded so that a ‘yes’ response (y[i]=1) is intended to
correspond to the politically ‘conservative’ outcome, with ‘no’
(y[i]=0) corresponding to a ‘liberal’ vote.”
To identify the parameters, we can center the alphas around 0 and
assume that liberal senators will have smaller alpha[j] and conservative
senators larger alpha[j] values. On the same scale, more conservative
bills will have larger beta[k] and more liberal bills smaller beta[k].
The Problem: Directional Monotonicity
Gelman and Hill correctly state that “if a justice’s [senator's]
ideal point is near a case’s [bill's] position, then the case [bill]
could go either way, but if the ideal point is far from the position,
then the justice’s [senator's] vote is highly predictable.” This is
easy to see from the graph. It’s the specifics of how the votes get
more predictable that’s problematic.
Given a vote on bill k with position beta[k], the further the
senator’s position is to the right (i.e., larger alpha[j]), the more
likely they are to vote conservative (i.e., y=1), and the further a
senator is to the left (i.e., smaller alpha[j]), the more likely they
are to vote liberal (i.e., y=0).
Holding a senator’s ideal point alpha[j] steady, bills further to
the left (i.e. smaller beta[k]) are more likely to get conservative
(i.e., y=1) votes and those further to the right more likely to get
liberal (i.e., y=0) votes.
Expected Votes Given Position
The obvious thing to plot here is the expected number of votes
predicted by the model versus the position of a bill. The following
graph is a simulation. I simulated a mixture of 57 Democratic and 43
Republican senators (using Norm(-1.5,1) and Norm(2,1) sampling
distributions, respectively). I then centered them so they’d have a
mean of zero. The senators’ positions are shown on the x axis as
circles, colored blue for Democratic and red for Republican senators.
The red curve shows the expected number of 1 votes given the
position of a bill. It’s colored red because a conservative bill is
coded with a vote of y[i]=1 being for the bill. Thus the red curve is
the number of votes for a conservative bill based on its position.
Although only 51 votes are required to pass a bill, 60 are required
to block an opposing filibuster, so we have drawn a horizontal line at
60 votes. It intersects the curves at the least extreme positions at
which a bill is expected to pass even under threat of filibuster.
Things flip for a liberal bill, where outcome y[i]=0 is considered a
vote for the bill. The blue curve shows the number of votes for a
liberal bill based on its position. Thus the coding of a bill makes a
difference to the position at which it’ll pass as well as the
direction of movement which increases likelihood of passage.
Specifically, for a bill coded as conservative, the more liberal its
position, the more likeliy it is to pass. For bills coded liberal,
the more conservative its position, the more likely it is to pass.
Andrew’s right — the model doesn’t make sense. Making a bill more
liberal or more conservative has the same effect on senators of both
parties, making them either more or less likely to vote for the bill,
depending on how the coding is chosen. Flipping the coding actually
changes the point at which a bill will pass, and seems redundant given
that a bill’s position, beta[k], is also coding a bill’s
A More Concrete Example
For concreteness, consider the US$ 800+
stimulus bill, a liberal bill which squeaked through the
U.S. Senate. We will suppose that voting for it is “liberal”, so
coded as 0. Presumably larger stimulus packages are also more
liberal, corresponding to smaller estimated beta[k] (see what I mean
about polarity shifting?).
Now consider any old senator j with any old ideal-point alpha[j], no
matter how far right or left. What happens to their voting
preferences as the bill beta[k] moves to the left or right? If the
bill moves to the left, beta[k] decreases, so alpha[i]-beta[k]
inreases, and the vote is more likely to be 1 (against the stimulus).
Thus no matter what the senator’s ideal point is, they’re more likely
to vote against the bill as the target amount becomes more liberal
(rises). If the bill moves to the right, presumably corresponding to
a smaller stimulus package, beta[k] increases, so alpha[i]-beta[k]
decreases, so the vote is more likely to be 0 (for the stimulus).
If we recode the outcome so that y[i]=1 rerpesents a vote for the
stimulus package, we’re left with the same problem in the opposite
Pardon me for whipping out the Latin, but I am back in
academia, and this sure feels like a
A Better Approach?
A better approach would presumably model a senator’s preferences for
bills based on proximity to their ideal point rather than difference.
Then, the further the bill got away from the senator’s ideal in either
direction, the more likely they’d be to vote against it, rather than
assuming their preference for the bill goes up in one direction of
change and down in the other relative to their indifference point.
A hypothetical bill with a position to the left (or right) of all
the senators will still act monotonically, but now with the expected
directional effect, namely increasing expected votes as the bill
approaches the senator’s ideal points. Points in the middle act in
different directions on different senators, moving closer to some and
further from others based on their ideal points.
In addition to hierarchical structure on the ideal points and
multiplicative discrimination terms (for senator and/or the bill), as
Gelman and Hill discuss, we could also add some basic predictors in
addition to senator and bill identity, such as for the party of the
senator, the party of the senator(s) who introduced the bill, the
chance of filibuster, pork going to the senator’s state, and all the
the other things that make the U.S. senate so much fun.