Methodology

This data is generated using Bayesian Aldrich-McKelvey scaling. This is used to overcome the fact that individuals might have their own standards for how liberal a liberal candidate is (or how conservative a conservative candidate is). In particular, we use the fact that voters each rate some shared set of candidates/groups as a way to adjust what it means for a voter to be liberal or conservative.

Basic Model

In order to explain this we need to use some notation from statistics. In particular we start with the fact that we have \(i\) voters who each rate \(j\) candidates. We label these ratings \(Y_{i,j}\) (for now we ignore what this data looks like). We then assume that there exists some \(\theta_j\) which is the “true” perceived ideology of a candidate. We then assume that we can connect the observed ratings (\(Y_{i,j}\)) with with \(\theta_j\) through the formula:

\[ Y_{i,j} \sim \mathcal{F}(\alpha_i + \beta_i \cdot \theta_{j}) \tag{1}\]

This gives us two new bits of notation (which we call parameters as they are estimated): \(\alpha_i\) and \(\beta_i\). Each voter has a unique \(\alpha_i\) and \(\beta_i\) which are used to adjust how each voter’s own understanding of the liberal-conservative spectrum vary by stretching/shrinking (\(\beta_i\)) or shifting (\(\alpha_i\)) the true value of \(\theta_j\) into what they observe.

Right now we’ve used \(\mathcal{F}\) to indicate that we put this through some sort of function. In practice \(Y_{i,j}\) is an ordered variable from 1 to 7. We can use an ordered logit model to account for this. We shift here to talk about the probability of observing \(y_{i,j}\) given a set of parameters (written as \(P(y_{i,j} \vert \alpha_i, \beta_i, \theta_j, \tau)\)):

\[ P(y_{i,j} \vert \alpha_i, \beta_i, \theta_j, \tau) = \begin{cases} 1 - \text{logit}^{-1}( \alpha_i + \beta_i \cdot \theta_j - \tau_1) & \text{if} \quad y_{ij} = 1 \\ \text{logit}^{-1}( \alpha_i + \beta_i \cdot \theta_j - \tau_{y_{ij}-1}) & \text{if} \quad 1 < y_{ij} < 6 \\ \quad - \text{logit}^{-1}( \alpha_i + \beta_i \cdot \theta_j - \tau_{y_{ij}}) & \\ \text{logit}^{-1}( \alpha_i + \beta_i \cdot \theta_j - \tau_6) & \text{if} \quad y_{ij} = 7 \\ \end{cases} \tag{2}\]

This looks like a lot because there is a lot of notation but the idea isn’t that complicated. In particular it says the probability of observing a particular value is a function of where \(\alpha_i + \beta_i \cdot \theta_j\) is in context of \(\tau\) which, whe call cutpoints. In this case we have 6 cutpoints, the can be seen as dividing the space that \(\alpha_i + \beta_i \cdot \theta_j\) is in. Figure 1 shows what this looks like by mapping the probability of different responses. You can also set the \(\alpha\) and \(\beta\) to different values to see how they change.

Figure 1: Example of Ordered Logit Probabilities

Adding in Time

The model so far can be used to estimate a single time period or several time periods independent from each other. We can improve upon this by assuming that any legislator’s perceived ideology in a time period is likely to be similar to their perceived ideology in the previous time period. There are a lot of ways to do this, but here we use a robust random walk approach. We add a \(t\) subscript to \(\theta_j\) to indicate that we observe candidate \(j\) over multiple time periods. The full setup is:

\[ \begin{align} \theta_{j,1} &\sim \text{Normal}(0, 1) \\ \theta_{j,t} &\sim \text{Student's t}_4(\theta_{j,t-1}, \sigma) \quad \forall t > 1 \\ \end{align} \tag{3}\]

Figure 2 demonstrates how this works. At Time 1 \(\theta_j\) is estimated to be 0, in each time period after that \(\theta_j\) can move. The red line shows the median value, while the darker lines from it show the 10th and 90th percentile, and the furthest lines the maximum and minimum values (this is based on a sample of 500 draws). With no other information, \(\theta_j\) will not move substantially from previous values, but the use of the Student’s t-distribution allows for sudden large values (which is why the maximum and minimum can be so extreme). Figure 2 allows you to change the \(\sigma\) parameter as well as set a drift parameter to see how the movement of \(\theta_j\) evolves overtime.

(a)
(b)
Figure 2: Simulation of Movement

Odds and Ends

In order to estimate the model in its entirety it is necessary to set priors on the parameters. This is useful as it allows us to identify the model as well. In this case we use the following priors:

\[ \begin{align} \alpha_j & \sim \text{Normal}(0, 1) \\ \beta_j & \sim \text{Normal}(1.5, 1) \\ \tau & \sim \text{Normal}(0, 3) \end{align} \tag{4}\]

In addition, the pre-2009 data from the CCES is not in the same format. I discuss that in the data section.