「番狂わせ」の大きさをいい感じに数値化するSeed Performance Rating (SPR) とUpset Factor (UF)の紹介と感想

大会観戦中に興奮することっていっぱいありますが、一番興奮するのはやっぱり大会で番狂わせが起きたときですよね。

もう半年以上前になりますが、2020年の12月にPanda Globalのデータ分析部門的な存在であるPGstatsが、番狂わせの「大きさ」をいい感じに数値化するための指標であるSeed Performance Rating (SPR)Upset Factor (UF) に関するブログ(Introducing SPR and UF)を公開しました。今日はその紹介と、それに対する私個人の感想を書いてみたいと思います。指標自体はスマブラに限らずトーナメント形式で行われている大会ならなんでも計算可能ではありますが、番狂わせの大きさはシードに基づいて計算されるので、ある程度適切なシードが割り振られているトーナメントでしか使えないことに注意してください(例えば、甲子園のように組み合わせが抽選で決まるトーナメントでは使うことができません)。

SPRとUFの簡単な説明と、「優勝までに必要な勝数」について

正確な定義を述べる前に、それぞれの超簡単な説明をします。

Seed Performance Rating (SPR)は「あるプレイヤーが、期待された順位(シード)と比べてどの程度良い順位を取ったか」を示す整数で、プラスであれば期待よりも良い順位、マイナスであれば期待より悪い順位を取った、という意味になります。

Upset Factor (UF)は、「Upset(番狂わせ)がどの程度予想外だったか」を示す正の整数で、数値が大きければ大きいほど、より大きな、予想外の番狂わせであることを意味します。

そして、2つの数値は「ある順位から優勝までに必要な勝数」に基づいて計算されます。以下の図はスマブラの大会で主流になっているダブルエリミネーション形式における敗者側トーナメントでの「ある順にから優勝までに必要な勝数」になっています(厳密に言えば、GF2は無視しています)。もちろんシングルエリミネーションでも計算は可能です。

画像1

言葉で説明するより図を見るほうが明らかですが、例えば1位のときは優勝するまでに0勝必要なので0,2位ならあと1勝すれば優勝できるので1、3位なら2と増えていき、33位(Best 48)の時は優勝するまでにあと10勝しなければならなかったので10となります。

SPRとUFの計算方法

SPRは、「期待された順位(=シードの位置)」に対応する値から、「実際の順位」に対応する値を引くだけです。シードというのは、簡単に言えば「そのプレイヤーに期待される順位」を意味します。例えば、シード位置1のプレイヤーは1位を取る見込みが一番高いからシード位置1が与えられ、シード位置40のプレイヤーは40位を取る見込みが高いことを意味します。実際にはダブルエリミネーショントーナメントにおいて40位という順位は存在しないので、シード位置40のプレイヤーは対応表における33位(Best 48)の数値を見ます。

例えば、あなたのシード位置が49で、実際の順位が7位だったとします。この時のSPRは、「期待された順位である49位」に対応する11から、「実際の順位である7位」に対応する5を引いた「+6」となります。これは要するに、期待よりも6勝分多く勝つことができた、みたいなことを意味します。逆に、シード位置が7のときに実際の順位が49位だった場合はSPRが「-6」となり、これは「期待よりも6勝分少なかった」みたいな意味になります。

画像2

UFも同じような引き算をするだけですが、こちらは最終順位ではなく各対戦でのUpset、つまりシードが低いプレイヤーが高いプレイヤーに勝った時に使用します。例えば、シード位置30のプレイヤーが、シード位置が8のプレイヤーに勝ったとすると、シード位置30のプレイヤーの期待順位が25位、シード位置8の期待順位が7位になり、それぞれ対応表から「優勝に必要な勝数」を引っ張ってくるとそれぞれ9と5になるので、9-5で「4」というのがUFの値になります。

SPRが最終順位に対する指標なのに対して、UFは各対戦に対する指標なので、使われる機会はUFのほうが多いと思います。

画像4

(ちなみに、EVO 2019における筆者のシード位置は172、実際の順位は257位だったのでSPRは-2でした。無念)

なぜ「優勝までに必要な勝数」を使うのか

ところで、なぜわざわざ「優勝までに必要な勝数」という値を使ったのでしょうか。これは逆に言えば、なぜ順位同士をそのまま引き算してはならないのでしょうか。簡単に言えば、「優勝までに必要な勝数」を使ったほうが、プレイヤーのPerformanceや、Upsetの「驚き度合い」を直感的に表現できるからです。

例えば、シード位置1のプレイヤーがシード位置21のプレイヤーに負けた時と、シード位置380のプレイヤーがシード位置260のプレイヤーに負けたときを比較します。単純にシード位置の引き算をしてしまうと、前者が20、後者が120となりますが、どちらのUpsetがより「驚くべき」Upsetかと言えば前者のはずです。実際のところ、シード位置260も380も順当に行けばどちらも257位を獲得すると期待されているので、こちらのUFは「0」となりますが、シード位置1のプレイヤーがシード位置21のプレイヤーに負けた時のUFは「8」となります。まぁUFを知ったばかりだと「8」という値が妥当かどうかよくわからないかと思いますが、とりあえず単純なシード位置の引き算に比べるとより「驚き度合い」を表現できているというのが分かると思います。

SPRとUFの説明は以上になります。以下は私個人の感想。

感想その1:絶対的な強さの指標には使えない

なんとなくSPRやUFが高いプレイヤーを見ると強そうに見えますが、これらの値はあくまで「各プレイヤーの期待された順位」に基づく相対的な値になるので、SPRやUFが高かったプレイヤーはあくまで「思ったよりも」強かっただけで、絶対的な強さは表しません。これは例えば、シード位置1の世界最強プレイヤーのSPRとUFがどう頑張っても1以上にならないことからもわかると思います。もし複数の大会でSPRやUFが高く出た場合は、その人が強いというよりも、何らかの理由で過小評価されて低いシードを与えられていると見たほうがいいと思います(例えば、実力がどんどん伸びていて評価の上昇以上に実力が伸びている、とか)。

感想その2:そもそもシードをどこまで信用するべきか

これはSPRとかUFとか以前の問題ではあるんですが、そもそもシードをどのくらい信用すべきかという問題があります。シードというのは簡単に言えば出場プレイヤーを上から「強い順」に並べたものなので基本的にはプレイヤーランキングとほぼ同じようなものですが(実際には同地域のプレイヤー同士で当たらないようにシードを調整したりします)、プレイヤーの「強さ」をランク付けするのはスマブラ界隈に限らずめちゃくちゃ難しく、どんなランキングシステムでも「ランキング上の順位」と「本当の強さ」を常に妥当な範囲で一致させることはほぼほぼ不可能と言えます。特に、競技スマブラシーンのように大会の開催頻度も各プレイヤーの大会参加頻度も不安定な業界で、公平かつ納得感のあるランキング(≒シード順)を決める方法は確立していないのが現状です。

例えば、篝火4におけるUF を見てみると、大会中に起こったUpsetで一番UFが大きかったものは、シード位置25のプロトバナム選手がシード位置1のザクレイ選手を倒した「9」となっています。UFが9というのはざっくり言えば9勝分の番狂わせになるのでとてつもなく大きなUpsetなわけですが、スマブラの競技シーンに詳しい人から見れば、このUpsetが実はそこまでの「驚き」は無いというのが大多数の見方だと思います。プロトバナム選手もザクレイ選手も両者ともEVO2019でTop8に入る世界トッププレイヤーであることを考えると「EVO7位のプレイヤー(プロトバナム選手)がEVO5位のプレイヤー(ザクレイ選手)の勝ったのが最も大きなUpsetでした」と言われてもなかなかしっくりこないと思います(もちろん上で示したように、今のところプレイヤーの強さをいい感じに算出する方法がないので、この意見も単なる後だしジャンケンに過ぎないと言えばそれまでですが)。

実際のところ、SPRやUFの大きな値を見ても「驚き」の前に「そもそもそのシードどうなん?」と言いたくなるようなケースが多すぎると、SPRやUFが「番狂わせの大きさを測るツール」ではなく「おかしなシードを発見するツール」になってしまう可能性があるのが少し心配です。篝火4のUF一覧を見る限りだと、プロトバナム選手vsザクレイ選手のような外れ値的な場合を除けばなかなかいい具合の指標になってるんじゃないかと思いますが、そもそも高いUFが外れ値かどうかを判断するのに戦績などの前情報が必要になり、かつその判断も主観に基づくことになるので、なかなか扱いが難しいなぁというのが正直な感想です。なので、まぁあくまで単なる指標と割り切ってあまり過度な期待をせず、そういうのもあるのね、くらいのスタンスで見るのがいいんじゃないかと思います。

感想その3:実際にどう使うか

計算式はそんなに複雑じゃないのはお分かりいただけたと思いますが、いざ計算するとなるといちいちシードの値やら対応する値やらを調べないといけないので結構面倒です。実際には自分で計算しなくても、大型大会であればPGstatsのTwitterアカウントが大会中に番狂わせ情報をUpset Factor付きでツイートしてくれるので、UFの値を見てワイワイ盛り上がるのはこのアカウント経由になると思います(個人的にはUFが1か2以下のUpsetは除外してほしい気もしますが)。

画像3

これを見ると、Dabuz選手がyonni選手に負けたのがとんでもなく大きい番狂わせなんだな、というのが分かるかと思います。今はわざわざ「Upset Factor X」と書いてくれてますが、いつの日かUpset Factorが一般的になったころには「UF X」みたいな省略した形になるんじゃないかと思います。ちなみにツイートの先頭にある青い丸は勝者側トーナメントを、赤い丸は敗者側トーナメントを意味します。

おわりに

PGstats.comのサイトでは、各プレイヤーの過去のSPRとUFがグラフで見れるようになっている(例えばザクレイ選手のページプロトバナム選手のページ)ので、興味のある方はそちらから深堀りしてみてください。

おまけ

「シングルエリミネーションにおけるある順位から優勝までの勝ち数」と「ダブルエリミネーションの敗者側トーナメントにおけるある順位から優勝までの勝数」をそれぞれ表にしました。左が勝数、右が順位です。シード位置からの勝ち数は、シード位置以下で最も近い順位(シード位置150なら129位、シード位置33なら33位)から計算してください。

0 1
1 2
2 3
3 5
4 9
5 17
6 33
7 65
8 129
9 257
10 513
11 1025
12 2049
13 4097
14 8193

シングルエリミネーション

0 1
1 2
2 3
3 4
4 5
5 7
6 9
7 13
8 17
9 25
10 33
11 49
12 65
13 97
14 129
15 193
16 257
17 385
18 513
19 769
20 1025
21 1537
22 2049
23 3073
24 4097
25 6145

ダブルエリミネーション


この記事が気に入ったらサポートをしてみませんか?