Technical Appendix Francesco Nicolai December 5, 2012
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
The Geometry of Spatial ModelsOne 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
How to determine the position legislators with more thanone 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
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 conﬁgurations 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
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 , ﬁnd the optimal normal vectors to the roll calls (Njt ), using the same procedure we used without errors 3. Given Njt , ﬁnd 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
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 Classiﬁcation Algorhitm that we used to rank legislators5 . 5 A complete discussion of the algorithm could be ﬁnd in ”Poole, Spatial Models...” . The algorithm is very similar to the one proposed for the single dimension case.
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 suﬃcient to plot a Scree Plot and choose the number of dimensions with an eigenvalue greater than one.
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 deﬁned as DEFINIZIONE
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 stenograﬁci” 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
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 ﬁerce 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
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)<-"deputato" colnames(data.stata)<-"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)
Data Analysis Since the majority was very fragmented, we should expect a very blurry map. Then, we should also expect a very signiﬁcative part of the variation in votes explained by other dimensions than the right-left dichotomy. We also expected very few polarization, since the diﬀerences in parties were negligible. Figure : The spatial map of the Italian XV legislature [ INSERT FIGURE]
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 ﬁnd a plausible explaintion for it. Figure : The complete plot of the Italian XV legislature [ INSERT FIGURE]
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)