购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

二、相对排序:选举计票机制

排序既可以是客观的,也可以是主观的。客观排序是指根据某些客观指标(如能力、销售量)或比赛胜负情况进行排序,主观排序是指根据人们的主观评价(排序或打分)进行排序。客观排序和主观排序有一个相同点:人们所关心的并非是反映各评价对象水平的绝对数值,而是它们之间的相对位置(谁靠前,谁靠后),因此这样的排序只是相对的。

当排序是主观排序时,又可被称为共识排序(consensus ranking);共识排序问题有时被称为社会选择问题(social choice problem)、中间排序问题(median ranking problem)、排序聚合问题(ranking aggregation problem),等等(D'Ambrosio et al., 2017);解决这个问题的过程实际上就是指将多个评价者的排序或打分数据聚合起来,以便得到一个最能代表这些评价者的倾向的居中排序的过程。共识排序的方法总的来说可以分成三类,分别是基于分布(distributional based)的方法、启发式(heuristic)方法、随机优化算法(stochastic optimization algorithms)(Lin, 2010)。投票和基于专家打分的决策是政治领域中最典型的共识排序问题。

本章接下来的内容将按照涉及的R包和函数分成三个部分:我们将首先讨论投票计票方法,这些方法均可划分到上述分类中的启发式方法中;计算时用到的函数主要是R中的基本函数和votesys包中的函数。接着,我们会介绍用于分析主观排序和客观排序的Bradley-Terry模型、模式模型和Plackett Luce模型;拟合这些模型的目的是探究排序与主客观因素之间的关联,或对比较/评比结果进行预测;尽管这些模型并不属于上述三种共识排序方法,但它们仍然会在输出结果中给出相对排序。最后一部分将对R包中用于实现共识排序算法的多个函数进行介绍。

多数制是最常用的计票方法:每个投票者写下一个候选人的名字,被提到的次数最多的候选人获胜。多数制也可被视为一种高度简化的偏好聚合方法:投票者为自己的第1选项赋1分,为其他选项赋0分,总分最高的候选人获胜。

多数制尽管简单直观,但也有一些非常明显的缺陷。首先,当候选人的数量多于 2人时,得票最多且胜选的人可能只满足一小部分人的偏好,而并非多数人的偏好。其次,如果两个候选人的票数相等(也就是出现了分数打结的情况),那么人们就需要用额外的方法来选择胜者。再次,多选制只允许投票者显示自己的第 1选项;但事实上,投票者有可能对多个候选人都有所了解,并在心中为他们排好了顺序;这就是说,多数制无法使投票者的偏好充分地显示出来。另外,多数制的目标是选出最受欢迎的候选人,但问题在于:何为最受欢迎?可能出现的情况是,一个候选人一方面得到了最多的选票,但另一方面,在对候选人进行两两比较时,这个候选人又是被最多人厌恶的。

设想有A、B、C三个候选人;其中,A和C的意识形态立场截然相反,而B的立场与A相近,但受欢迎程度不如A高。现有 100个投票者。他们心中的真实偏好是:30人认为A>B>C,25人认为B>A>C,45人认为C>B>A。

从以上偏好中可以看出,有 30+25=55个人认为A>C,因此,如果只有A和C两个人参选,那么A将获胜。但是,由于B也参选了,并且分走了A的一部分选票(25),所以最后的胜者成了C(45),尽管C并没有取得半数以上的选票。事实上,完整的偏好信息显示,有 30+25=55个人把C排在最后,可见C的受厌恶程度是最高的。我们甚至可以设想,B是C派来的“克隆人”(Tideman, 1987),他参选的意义就是分化A的得票以确保C获胜。

正因为多数制有这样那样的缺点,所以人们又设计出了多种更复杂的计票方法。我们接下来将对其中一些进行介绍。

1.多数制

使用多数制时,可直接用table函数计算,也可将偏好数据转化成vote对象再计算,以便对比不同算法的结果。

2.赞成投票制

赞成投票制(approval voting)是指投票者按照要求写下一定数量的候选人名字,被提及的次数最多的候选人获胜。

3.波达计数法

波达计数法(Borda counting method)要求投票者按照要求为全部或部分候选人排序,投票者的第 1选项分数为 1,第 2选项分数为 2,以此类推,总分最低的候选人获胜。有时投票者需要为候选人打分,1分代表最满意,最高分代表最厌恶(或最高分代表最满意,1分代表最厌恶);有时除了 1、2、3……这样的整数外,小数、0或负分也被允许出现。与多数制和赞同投票制相比,波达计数法能够更准确地反映投票者的偏好。

4. Dowdall法

Dowdall法是波达计数法的变体,它要求投票者为所有候选人排序;排在第 1位的候选人得 1分,排在第 2位的得 1/2分,排在第 3位的得 1/3分,以此类推;总分最高的候选人获胜。

5.排序复选制

排序复选制(ranked choice voting,或instant run-off voting)(Reilly, 2004)的计票机制为:要求投票者为候选人排序;在第 1轮中,获得过半数选票的候选人获胜,如果没有人得票超半数,则在每张选票标出的偏好中抹除得票最少的人,其他人进入第 2轮;第 2轮只计算剩下的这些候选人的排序情况,得票超过半数者获胜,若无超半数者,抹去得票最少的人,其他人进入第 3轮,以此类推。

如果投票者很多,在各轮计票中不太可能出现票数相等的情况;但假如出现这种情况,还需其他方法处理;votesys包中irv_method函数的处理方法为:如果在某一轮中,同时有两个人的得票数都为票数最低值,则把这两个人都删去;如果在某一轮中所有人的票数相等,则这几个人都被视为胜利者(此时可采取其他计票方法处理以便确定唯一胜者)。

6.孔多塞法

孔多塞法(Condorcet method)(Nalebuff and Levin, 1995)的理念是,胜者应该是那个在每一次成对比较中胜出的候选人。设有i、j、k三个候选人,我们首先建立一个 3*3的矩阵,每个单元格都是 0;现有一张选票上的偏好是i>j>k,它所提供的信息就是i>j,i>k,j>k,成对比较中的胜者得 1分,负者得-1分,若双方排序序数或评分相等,则都得 0分;计票者对每张选票上的信息都依此方法统计,并把分数都加到矩阵中,这样得到的最终的 3*3矩阵就是孔多塞矩阵。

在得到孔多塞矩阵后,对矩阵中的分数进行统计,如果有 55个人把i排在j前边,有 45个人把j排在i前边,则单元格ij和ji中的数值为 55和 45;55大于 45,所以进一步将ij的值记为 1,ji的值计为-1,表示i击败了j;如果两个单元格数值相等,则都记为 0。依此方法计算,能够打败所有人的候选人即为孔多塞胜者;如果没有人满足这个条件,则无胜者。

为解决无法选出胜者的问题,人们又在简单孔多塞方法的基础上设计出了多种变体,这些变体均可看作是广义的孔多塞方法,其中一些常用方法可用votesys包中以"cdc"开头的函数实现。

7. Copeland法

Copeland法(Merlin and Saari, 1996)被用于解决使用一般孔多塞法的时候没有胜者产生的问题。Copeland法又分为两种。

第 1种方法是,在孔多塞矩阵中进行成对比较,胜者计 1分,负者计-1分,数值相等计 0分。假设有 6个候选人,某个候选人在成对比较中胜 3次,负 2次,平局 1次,则分数为 1*3+(-1)*2+0*1=1;依此方法对所有候选人的情况进行计算,得分最高者胜出。

第 2种方法是,在成对比较中得胜次数最多的人胜出(而不像简单孔多塞方法所要求的那样必须在所有成对比较中胜出)。

8.最小最大法

最小最大法(minmax method)在处理孔多塞矩阵并赋分时可使用三种不同方法:

第 1种方法,胜出选票法(winning votes method):设认为i优于j的人数为nij,认为j优于i的人数为nji,如果nij大于nji,则单元格ij的分数记为 0,单元格ji的分数等于nij。

第 2种方法,差距法(margins method):单元格ij的分数记为nji-nij,单元格ji的分数记为nij-nji。

第 3种方法,成对对立法(pairwise opposition method):单元格ij的分数记为nji,单元格ji的分数记为nij。

以上 3种赋分方法的共同点是,它们都试图反映一个候选人在何种程度上被其他候选人击败,因此最后的计算方法是相同的:找出每个候选人的目标值中的最大值,然后看在这些最大值当中哪个值最小,所对应的那个候选人即是胜者,这正是这种方法被称为“最小最大法”的原因。请看以下示例中的讲解。

9. Dodgson法

由cdc_dodgson函数实现的实际是两种简化的Dodgson方法(McCabe Dansted and Slinko, 2008)。

第 1种方法,Tideman法:利用孔多塞矩阵进行成对对比,假设,有i、j、k、l四个候选人,认为i优于j的人有 50个,认为j优于i的人数为 55个,i是成对比较的负者,因此单元格ij记为 55-50=5,单元格ji记为 0。认为i优于k的人和认为k优于i的人都为 40个,则单元格ik和ki都记 0分。以此类推,计算出il,并计算ij+ik+il的总和,并进一步对j、k、l求这个总分;总分最小的人获胜。

第 2种方法,Dodgson Quick法:总体上与Tideman方法相同,区别在于赋分的方法。如果认为i优于j的人有 50个,认为j优于i的人数为 55个,单元格ij不是直接记为 55-50=5,而是ceiling(5/2)=3,即先除以 2再向上取整。用这种方法选出的胜者有时会与Tideman方法下的胜者不同。

10. Schulze法

Schulze法(Schulze, 2010)本质上是解一个最宽路径问题;对获胜者来说,从他出发指向任何一个对手的路径的强度都大于反方向路径的强度。

11.排列成双制

排列成双制(ranked pairs method)(Tideman, 1987)的计算过程较繁琐,我们将借助下面的示例进行说明。

12. Kemeny-Young法

Kemeny-Young法(Young and Levenglick, 1978)意在找到具有最大强度的排序并将这个排序中排在第 1位的候选人计为胜者。以下例子将对其具体算法给出介绍。

用以下数据进行的对比直观地说明,不同计票机制会产生不同的胜者。 PsBnRk69cUfxey8ayxCkRkaXWfjkj2lNKpnCz3iGnzQdBILqY6NolsKpCn0sKxhJ

点击中间区域
呼出菜单
上一章
目录
下一章
×