2. Table of contents
The Geometry of Spatial Models
One dimension
Two or more dimensions
Adding Error
Focus on research questions
Focus on data
A case study: Italian XV legislature
Data and software
Data Analysis
Possible errors
3. The Geometry of Spatial Models
One dimension
Suppose to have no error and sincere voting. The outcomes of the
roll call could be represented by O Y and O N . It is convenient to
Y N
represent the roll call by its midpoint Z = O +O . Suppose the
2
legislator utility function is
w 2 (diY )2
uiY = βe − 2 (1)
(diY )2 = (xi − z)2 (2)
Fix the polarity, and have that every legislator on the left votes for
Yes, while every legislator on the right votes for NO.
One dimension geometry
Yes ——–Z ——–No
O Y ——–Z ——–O N
4. How to determine the position legislators with more than
one roll call?
We could follow these four steps:
1. compute an agreement score matrix 1 :
b−1
q− i =a ki 2
Aab = q
2. Convert the agreement matrix in a matrix of squared
distances:
dab = (1 − Aab )2
2
3. Double center the matrix, subtracting the row mean, the
column mean, add the matrix mean and then divide by −2
4. Take the square root of a diagonal element and divide it
through the corresponding column
The diagonal elements give us the position of legislator i in the
left-right spectrum.
1
Proportion of times they vote the same way
2
Note that q = p−1 ki where ki is the number of cutting points between
i =1
legislator i and i + 1
5. Two or more dimensions
◮ The legislator ideal point is represented by a s-dimensional
vector.To simplify, suppose s = 2
◮ The roll call could be represented by a line, joining OjY and
OjN , and passing through the midpoint Zj = (Zj1 , Zj2 )
◮ The cutting line is perpendicular to the roll call and divides
the legislator who voted yes from the ones who voted no
◮ The legislator could be everywhere in the region between two
or more cutting lines. These regions are called Polytopes.
◮ The number of possible configurations is N ∗ = s k=0 k
q
where s is the number of dimensions while q the number of
roll calls. Note that N ∗ >> p, where p is the number of
legislators.
Using brute force to calculate Coombs meshes is very demanding
even for a modern computer. On the other hand, now we cannot
consider the number of cutting lines between two legislators as an
Euclidean distance, therefore we cannot use the double centered
matrix of distances, as we did for s = 1
7. Adding Error - One dimension
Paradoxically, assuming that legislators could commit errors help us
in the process of determining the geometry of the legislative space.
Poole considers an utility function with a stochastic error term
Uij = uij + ǫY
Y Y
ij (3)
In the one dimensional case, now we can3 :
1. Generate starting estimate of the legislator positions (xi0 )
2. Given xit−1 , find the optimal normal vectors to the roll calls
(Njt ), using the same procedure we used without errors
3. Given Njt , find the optimal legislator positions (xit ), using the
same procedure we used without errors
4. Re-iterate from step 2 until we have reached the desired
accuracy4
3
To understand better the procedure we recommend ”Poole, Spatial
Models”
4 t
Nj = Njt−1 + ǫ , xit = xit−1 + ǫ where ǫ is smaller than the desired accuracy
8. Adding error - multiple dimensions
Remember that in more than one dimensions we cannot use
Euclidean distances, but legislators belong to a certain Polytope,
and the distance between two legislators could be not proportional
to the number of cutting lines between polytopes.
[INSERT GRAPH TO EXPLAIN WHY]
That’s why Poole developed in 1997 the Optimal Classification
Algorhitm that we used to rank legislators5 .
5
A complete discussion of the algorithm could be find in ”Poole, Spatial
Models...” . The algorithm is very similar to the one proposed for the single
dimension case.
9. Focus on research questions
Our research question can be summarized as:
1. How many dimension and which ones can describe the italian
Parliamentary voting?
2. Can we detect some interesting trend in polarization?
To address question nr.1 the procedure is very easy. The researcher
has only to analyze every legislature’s data using the W-Nominate
Method. As in Factor Analysis, it is sufficient to plot a Scree Plot
and choose the number of dimensions with an eigenvalue greater
than one.
10. Focus on research questions
Addressing question nr 2 could require a more thorough analysis.
I Aggregate deputies in parties
II Choose between two aggregators:
◮ Use only relative majority parties
◮ Aggregate parties in coalitions
III Calculate the distances between aggregators
One easy way to aggregate is to use a weighted median legislator,
where the weights are the same used in the w-nominate process.
Since every party is basically a network endowed with a metric,
another possibility could be to use the legislator with the higher
closeness centrality as the aggregator6 .
6
Closeness centrality is defined as DEFINIZIONE
11. Focus on data
Required steps:
1. Data after 1996:
1.1 download every roll call in the databases
1.2 create a dataset for every legislature, merging roll calls
2. Data before 1996:
2.1 Collect all the votes’ ”resoconti stenografici”
2.2 For every roll call votes codify for every legislator as follows:
◮ Yes = 1
◮ No = 2
◮ Absent=(4,5)
◮ Astenuto=3
◮ Not in legislature=0
2.3 Create a dataset for every legislature
12. Our Pilot Research
We found a dataset7 for the XV legislature. Running a pilot
reasearch on it was therefore easy. To perform the analysis we used
the open source software R8 .
The XV legislature was a very peculiar one: Romano Prodi won
the general election in 2006, but failed to obtain a strong majority
in the Senate, therefore for the whole two years there was a fierce
struggle between the majority and the opposition, until Mastella’s
party (Popolari-UDEUR) decided to switch to the opposition,
determining the impossibility to continue the legislature.
7
The dataset is available online at http://www.sociol.unimi.it/ilma/
8
R is publicly available at http://cran.r-project.org
13. The R code we used
#REMOVE EVERY OBJECT
rm(list=ls(all=TRUE))
#LOAD LIBRARIES
library(NetData,pscl,wnominate,foreign,gdata,stats)
#SET WORKING DIRECTORY
setwd("***/NOMINATE")
#LOAD DATA(PARTIES+VOTES)
parties<- read.csv(file="partiti.txt",header=T)
data.stata <- read.dta("legislatura_xv.dta")
#data re-elaborated from http://www.sociol.unimi.it/ilma/
#ADD PARTIES TO DATA
data.stata<-cbind(data.stata[,1],parties[,1],data.stata[,-1])
colnames(data.stata)[1]<-"deputato"
colnames(data.stata)[2]<-"party"
colnames(data.stata)
#SUBSTITUTE NA WITH 0
data.stata[is.na(data.stata)]<-0
#CREATE ROLL CALL OBJECT
rc.stata <- rollcall(data.stata[,3:107], yea=c(1,3), nay=2,
missing=c(4,5),notInLegis=0, legis.names=data.stata[,1],
legis.data=data.stata[,1:2],desc="legislatura xv",
vote.names=colnames(data.stata)[3:107])
#USE WNOMINATE,NB:polarity(Alfano,Adornato)
result <- wnominate(rc.stata, dims=2, polarity=c(11,5),
minvotes=15)
summary(result)
#SIMPLE PLOT
plot(result,main.title="Italy-XV Legislature",plotBy="party",
color=T,shape=T)
#BETTER PLOT.COORDS
plot.coords(result,main.title="Italy-XV Legislature",
plotBy="party",color=T,shape=T)
14. Data Analysis
Since the majority was very fragmented, we should expect a very
blurry map. Then, we should also expect a very significative part
of the variation in votes explained by other dimensions than the
right-left dichotomy. We also expected very few polarization, since
the differences in parties were negligible.
Figure : The spatial map of the Italian XV legislature
[ INSERT FIGURE]
15. Data Analysis
As shown by the previous picture, there is a large degree of
polarization between the two main coalitions in the Parliament.
Basically every member of a right-wing party is represented by a
token on the right, while left-wing deputies are on the left. There
is little room for a second dimension, as shown by the skree plot in
the following picture, even though two clusters could be detected
in the upper-left and in the lower-right parts. Is left to the ability
of the scholar to find a plausible explaintion for it.
Figure : The complete plot of the Italian XV legislature
[ INSERT FIGURE]
17. Common misunderstandings
◮ we don’t construct dimensions : we interpret them
◮ The scholar uses every vote, therefore no selection bias
◮ The method has no predictive power, only explanatory
19. Things to consider
◮ Abstensions → about every roll call approved, therefore
abstention counted as yes
◮ Absence rightarrow if the group voted no, counted as no.
Otherwise, counted as missing
◮ Consider ”Government sub-periods” when the Gov’t changes
(e.g. Berluscni-Monti)