SVD量化美国参议院的党派之争

许多观察人士指出,美国参议院近年来党派色彩日益浓厚。按照严格的政党路线进行投票的频率越来越高。从参议院唱名投票记录中得到的矩阵的奇异值分解(SVD)可以衡量这种党派倾向。

内容

参议院

该网站www.senate.gov有每年在参议院投票的记录。我们要看看从1989年到2020年的32年。

参议员的任期是6年,每两年大约有三分之一的参议员需要连任或选举出新参议员。因此,新的“国会”每两年召开一次,并有为期两年的“会议”。第一次会议是在1789年。第101届国会于1989年开始,今年,即2020年,是第116届国会的第二次会议。

这个柱状图显示了我们这一时期共和党和民主党之间的分歧。网站上的数据党分裂附带的警告是:“代表某一特定政党的参议员的实际人数在国会期间往往会发生变化,原因是参议员去世或辞职,或者一名议员换党。”

的数据

URL

https://www.senate.gov/legislative/LIS/roll_call_votes/...vote1162 / vote_116_2_00033.xml

以今年早些时候参议院进行的唱名表决为例。国会编号116,会议编号2,各出现两次。33票意味着这是本届会议的第33次投票。

这是一条XML记录。XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是万维网联盟(WWW Consortium)的一项重要标准,定义了一种人类和机器可读的文档编码格式。我很高兴找到MATLAB中央文件交换28518年的今天,xml2structWouter Falkena。正如函数名所暗示的那样,这段方便的代码“将xml文件转换为MATLAB结构以方便访问数据”。

您还可以使用浏览器访问示例URL,并(a)检查XML,以及(b)了解为什么2020年的第33和34号法案不是参议院的典型措施。

的矩阵

一旦您找到了XML产生的结构层的方法,您将了解关于每个参议院唱名投票的许多细节。特别是,对于投票的每个参议员,您将拥有一个包含全名、姓、名、政党、州、投票和成员id字段的结构。

对于每一年,我们创建一个由+1、-1和0组成的矩阵。A +1表示“赞成”或“有罪”,A -1表示“不赞成”或“无罪”,0表示其他任何选项,包括“不投票”、“在场”(弃权)和一个难以解释的“在场,给予现场配对”。因为有100个元,矩阵有100行。栏目数是那年进行的唱名投票数。矩阵的大小从2016年的100 × 163到1995年的100 × 613不等。2020年的矩阵尚未完成;截至8月6日,共有157篇专栏。

XML使用参议员的姓氏按照字母顺序组织——Alexander (R-TN)、Baldwin (D-WI)、Barrasso (R-WY)……,年轻的(r)。起初,我尝试用这种顺序创建矩阵。但参议员们要么在会议期间退休,要么就会去世,所以事实证明,这种排序很难正确处理。最终,我决定按州对行进行排序。每个状态分配两行;占据每一行的特定参议员的名字是无关紧要的。在给定年份的矩阵完成后,我重新排列行,以便将每个党派的所有参议员分组在一起。一两个宣布自己是独立的参议员(但他们与一个主要政党举行党团会议)是在两党之间。

的矩阵

这是32个矩阵,1989年至2020年的每届会议一个。黄色表示“是”或“有罪”,深蓝色表示“否”或“无罪”,而绿松石是不存在的,弃权或其他。

党派之争

这些矩阵的奇异值分解为我们的分析提供了基础。奇异值随指数的增加而迅速减小,因此矩阵可以用秩为2的矩阵来近似。从唱名表决的记录来看,美国参议院几乎是二维的。

(y)由1、-1和0组成的矩阵,总结一年的唱名投票y.让

σ=圣言((y))

然后党派之争为一年y定义为

1-sigma(3) /σ(1)

这个数量衡量的是投票模式接近二维的程度。

比较

让我们比较一下1989年到2020年两党支持率最低和最高的年份。结果是1991年和2014年。观察这些矩阵结构的一个好方法是把它们看作图像。我还包括了“coinflip”,这是一个随机的+1和-1矩阵,完全没有党派路线投票。

你可以马上看到2014年的结构比1991年要少得多;它更接近于二维。

下一个图显示了前20个奇异值的分布σ(1)= 1.突出显示第三个奇异值。与1991年相比,2014年的党派色彩更浓,正如预期的那样,这两个年份的党派倾向投票都远远多于随机抛硬币。

越来越多的党派之争

最后,这是1989年到2020年每年的党派性度量,用线性最小二乘法拟合。有了这么多的散点值,精确的匹配就不能太当真了。但肯定有上升的趋势。美国参议院的党派性已经从30年前的70%增加到今天的80%。




发布与MATLAB®R2020b

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。