私はいくつかのスポーツ データを分析しており、約 40 チームの一連の勝敗記録を持っています。対戦相手の強さで各勝利を重み付けしたランキングを考えてみたいと思います。これは、収束まで反復ごとに重みとランクが更新される反復/再帰的なものでなければなりません。この種のことを行うための既存の関数またはパッケージがあるかどうかは誰にもわかりませんか? スポーツに特化したパッケージではないと思いますが、この種のことは多くの分野で共通していると思います。
編集:
ここにいくつかの例のデータがあります。A、B、C、D の 4 つのチームがあり、それぞれが他のチームと 1 回ずつ対戦し、10 のユニークなゲームが行われます。各チームの 4 つのゲームが独自の行としてリストされるように、データは 2 倍になり、列 "a.win" は "team.a" がゲームに勝った (1 = はい) かどうかを示します。
dat<-data.frame(
team.a=c("A","A","A","A","B","B","B","B","C","C","C","C","D","D","D","D","E","E","E","E"),
team.b=c("B","C","D","E","A","C","D","E","A","B","D","E","A","B","C","E","A","B","C","D"),
a.win=c(1,1,0,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,1,0))
これらのデータから、チーム A は 3/4 で勝利し、B は 1/4 で勝利し、C、D、および E はそれぞれ 2/4 で勝利しました。しかし、チーム D は A に勝ちましたが、C と E はすべて A に敗れました。したがって、直感的には D は C と E よりもわずかに高くランク付けされるはずです。同様に、チーム C はチーム B に敗れたため (勝っただけのチーム)、直感的には D と E よりも低いランクにあるはずです。
ランクを割り当てる最善の方法 (たとえば、-1 から 1 まで、または勝つ確率や負けた回数などに基づく) を見つけようとしています。勝敗の数ではなく、倒した相手のランクです。