The W-NOMINATE Model
W-NOMINATE (Weighted Nominal Three-Step Estimation) is the standard algorithm for estimating legislator ideological positions from roll call votes, developed by Poole & Rosenthal (1985, 1997).
The algorithm takes a binary vote matrix and recovers legislator ideal points in a low-dimensional policy space:
- Binarization: Raw votes are mapped to binary (Yea=1, Nay=0, abstentions excluded)
- Filtering: Low-information votes and inactive legislators are removed (min 10 votes each)
- Estimation: SVD initialization followed by Newton-Raphson optimization
The model estimates two parameters per legislator (2D coordinates) and two per vote event (normal vector + salience weight).
Coverage
The analysis covers all 7 legislatures (LX through LXVI), both per-legislature and cross-legislature runs:
- Per-legislature: Each legislature gets independent ideal point spaces
- Cross-legislature: All legislators placed in a shared space for direct temporal comparison
:::caution With party discipline >99% in the Mexican Congress, W-NOMINATE produces high classification rates (97-99%) that reflect the method’s power to discriminate, not genuine ideological structure. See the research article “El espejismo NOMINATE” for a detailed analysis of this limitation. :::
Implementation
The implementation in analysis/nominate.py uses scipy for SVD decomposition and optimization, numpy for matrix operations, and pandas for data handling. It runs via analysis/run_nominate.py with --camara and --output-dir flags.
References
- Poole & Rosenthal (1985). “A Spatial Model for Legislative Roll Call Analysis”. American Journal of Political Science, 29(2).
- Poole & Rosenthal (1997). Congress: A Political-Economic History of Roll Call Voting. Oxford University Press.
- Poole (2005). Spatial Models of Parliamentary Voting. Cambridge University Press.
Interactive: Ideological Map
Select a legislature and/or party to filter the map.
Fit Metrics
Classification rate, APRE, and GMP by legislature.
| Legislature | Legislators | Votations | Class. Rate | APRE | GMP |
|---|---|---|---|---|---|
| LX | 222 | 11 | 99.6% | 0.9846 | 0.9936 |
| LXI | 484 | 33 | 97.9% | 0.8649 | 0.9514 |
| LXII | 496 | 21 | 98.5% | 0.9130 | 0.9776 |
| LXIV | 495 | 22 | 97.8% | 0.9092 | 0.9673 |
| LXV | 522 | 80 | 99.5% | 0.9865 | 0.9873 |
| LXVI | 526 | 109 | 99.3% | 0.9702 | 0.9887 |