6

現在、ランクペア法を理解しようとしています。ウィキペディアのエントリから、ペアワイズ比較の行列を作成する方法がよくわかりません。この説明は、ペアを比較する 1 つの方法を理解するのに役立ちました - それでも、これが wiki で言われていることとまったく同じかどうかはわかりません. 私の最初の質問は、2のペアの比較が1に従って有効かどうかです。

2の説明を R コードに適合させることができました。

次の (非現実的な) 例では、投票者 (列) よりも多くの候補者 (行) がいますが、すべての投票者が各候補者にランクを付けます (完全なランキング)。

# some random example
random.example <- matrix(rnorm(50), ncol = 5, 
                         dimnames = list(candidates = paste("c", 1:10, sep=""), 
                                         voters = paste("v", 1:5, sep="")))
rmat <- apply(random.example, MARGIN = 2, rank, ties.method = "f")

ランク行列は、ランク付けされたペア法でランク付けされます

pm <- apply(rmat , MARGIN=1, function(x) {
  return(apply(rmat , MARGIN=1, function(y) {
    return(sum(x > y) - sum(x < y))
  }))
})

sorted <- apply(pm , MARGIN=1, function(x, numberOfVoters) {
  return(c(like    = sum(x > 0), 
           dislike = numberOfVoters - sum(x < 0), 
           ties    = numberOfVoters - (sum(x == 0) - 1))) 
}, numberOfVoters = ncol(rmat)))

についてのコメントsorted: もし私がこの権利を理解しているなら、まず でlike、次にdislikeで、次に で注文する必要がありtiesます。disliketies( )の値を再割り当てしnumberOfVotersて、「数値」として使用できるようにしました。これは、私の次の質問につながります。それは、勝者を分類して決定することです。と思いますが、 |候補| の基数を使用して番号でソートできる場所はわかりません。

scores <- apply(sorted  * (ncol(sorted) ^ c(2,1,0)), MARGIN=2, sum)

そして、scores(高いほど良い)でランク付けすると、ランキングが得られます。右?

3 番目の質問は、候補のランキングを決定するための相互関係に関するものです。スコアによるランキングにより、候補のランク付けされたリストが得られます。しかし、ウィキペディア1は、真のランキングを得るには、次の勝者を決定するためにリストから勝者を削除して、手順全体を再計算する必要があると述べています。なぜこれが別のランキングを返すのか理解できません。簡単な例はありますか?

どうもありがとうございます!

4

0 に答える 0