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 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
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
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
2dimensions




   [INSERT PICTURE 2 DIMENSIONS]
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
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.
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.
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
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
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
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)
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]
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]
VEDI ROSENTHAL ABOUT FRANCE
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
Pros
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)

Tech appendix

  • 1.
    Technical Appendix Francesco Nicolai December 5, 2012
  • 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 ofSpatial 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 determinethe 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 moredimensions ◮ 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
  • 6.
    2dimensions [INSERT PICTURE 2 DIMENSIONS]
  • 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 researchquestions 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 researchquestions 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 codewe 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]
  • 16.
  • 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
  • 18.
  • 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)