目前我尝试了解Ranked Pairs方法 . 从维基百科条目我不知道如何创建成对比较矩阵 . 这个explanation帮助我理解了比较两对的一种方法 - 但是,我不确定这是否与wiki中说的完全相同 . 我的第一个问题是,根据1,2中对的比较是否有效?
我设法使2中的解释适应R代码:
在下面的(不切实际的)例子中,候选人(行)比选民(列)更多,但所有选民都给每个候选人排名(完整排名)
# some random example
random.example
dimnames = list(candidates = paste("c", 1:10, sep=""),
voters = paste("v", 1:5, sep="")))
rmat
然后使用Ranked Pairs方法对秩矩阵进行排序
pm
return(apply(rmat , MARGIN=1, function(y) {
return(sum(x > y) - sum(x < y))
}))
})
sorted
return(c(like = sum(x > 0),
dislike = numberOfVoters - sum(x < 0),
ties = numberOfVoters - (sum(x == 0) - 1)))
}, numberOfVoters = ncol(rmat)))
评论 sorted :如果我理解这一点,那么我们需要先按 like ,然后 dislike ,然后按 ties 进行排序 . 我重新分配了 dislike 和 ties ( numberOfVoters )的值,以便我可以将它用作"number" . 这导致我的下一个问题:排序和确定胜利者 . 我想,但我不确定,在哪里我可以按照|候选人|的基数来排序:
scores
所以按 scores 排名(越高越好)给我们排名 . 对?
第三个问题涉及确定候选人排名的相互关系 . 按分数排名为我们提供了候选人的排名列表 . 但维基百科1告诉我们,对于真正的排名,应该通过从列表中删除获胜者来重新计算整个过程,以确定下一个获胜者 . 我不明白为什么这可能会返回不同的排名 . 有人举个简单的例子吗?
非常感谢!