恋心は超グリーディ

普段質問されることを文章起こした場所です。ライブ配信やゲームイベントにまつわるものです。もしくは、たまに筆者の趣味の文章が交じります。

Jan 15, 2022 - esports gamerlogy tournament

大会「篝火」と波乱に関する統計的仮説検定

競技的な大会があった時、その結果は「波乱」があったと言えるでしょうか?今回は大会シリーズ「篝火」を対象に統計的仮説検定をしてみました。

導入

今回 じゃく さんの検討したこちらの議論を見て思いついたため、自分で手を動かしてみました。

[https://twitter.com/jak_ssbu/status/1481830834324000768]

つまり、ここ最近行われた “スマブラSP” の有志によるオフ大会「篝火」シリーズについて、大会結果が「波乱」であったかを統計で比較してみました。

なるべく他ゲーの方、それだけではなく競技に関わる全人類に読んで頂きたいので、註・補足を入れながらご説明します。

追記1/21

今回の検定に問題があったと考えられるため、最後に追記をしてあります。
簡単に言えば、「このサンプルで統計の仮説検定は出来ないのではないか」という指摘です。

篝火 とは

今回検証の対象とする「篝火」とは、「大乱闘スマッシュブラザーズ SPECIAL」を扱った有志開催の非公式オフライン大会です。1on1(タイマン)形式の試合で、ダブルエリミネーション形式のトーナメントで優勝者を決めます。

今回対象とする篝火#3~#6は、単純にまとめますが以下の時期に・以下の人数で開催されました:

  • 篝火#3 : 2021年3月 128名
  • 篝火#6 : 2022年1月 768名

#4, #5 はこの間の期間に間の人数で開催されました。大会をイメージ出来るPVは以下です:

篝火 / KAGARIBI #6 Opening Trailer EGS チャンネルより。大会の事前PVです。]

どの大会も過去の大会を基に、上位選手の「シード」を割り振って配置されています。シードとは、過去に実績がある選手を、腕前が高い順にトーナメント表で離して配置することです。例えばテニスのウィンブルドンの場合、本戦出場する選手128名の内、世界ランキング順に1位から32位まで大会開始前にシードを割り振ってトーナメント表に順番に配置します。残りの選手はランダムです(註1)。女子ではシード制が始まった1975年以来シードなしの選手は優勝したことが無いそうです。

ただ篝火の場合、シードの割り振り方は大会によって異なります:

  • 出場者n名のうち、何名をシードに割り振って残りの何名をランダムに配置したか
  • どういった基準でシードを計算したか(例えば直近の大会で優勝した人を高く評価し、1年前の大会を優勝した人を評価するかどうか)

具体的にどのように割り振ったのかは、実際に説明した記事がありますので御覧ください:

こうした背景を基に、大会は始まる前から一種の「下馬評」がファンの頭の中に構成されます。この人が勝つだろうなあとか、この人はこのくらいの順位だろうなあ、といったイメージが下馬評です。シードとは概ね下馬評の数値化です。大会が進行してこれに逆行する事態が起きると、「波乱」と言われます。

本文は大会:篝火#3~#6を比較して、どのくらい「波乱」の程度に差があったかを統計で検証するものです。
特に直近の大会「篝火#6」は諸事情によりDQ(失格/棄権)の選手が多く、スマブラファンの間では下馬評とは異なる結果になったとも言われています。この主張は正しいのでしょうか?

手法

まずは上のブログを書かれた じゃく さんにご相談しました。なんとデータを頂きました( データはこちら )。ありがとうございます。

じゃくさんのブログと同様に、SPR という概念を用います。
SPR は簡単に言えば「躍進した度合」です。これら用語について以下説明します。

SPR について

SPR (Seed Performance Indicator) は、スマブラ勢おなじみの Panda Global が提示している概念です。

SPR は大会後に計算する値です。SPR とは、本来シードの配置上「優勝まであとN勝」の位置/回戦で負けるべきだった選手が「優勝まであとM勝」のところで負けた場合、

$$ SPR = N-M $$

で表現されます。

“代替メッセージ”
[図1. 画像は Panda Global ウェブサイトから 。ここで言うNが11で、Mが5。]

つまり SPR が大きいほど躍進です。一方で「SPRが小さい(= 負の値で絶対値が大きい)」ほど不振と言えます。

そこで本文内では、各大会で全選手分 SPR を入れた集合を “波乱度合” と表現します。

結論

分かる方のために先に結論を書きます。分からない方はすぐに次の章へ言って下さい。

今回対象とするのは大会「篝火#3~#6」です。篝火#iと#j (3<=i<j<=6) 其々に対し「平均波乱度合 (SPR) は差がない」という帰無仮説を立てました。仮説は6つとなります (4C2)。各「篝火」の間で SPR に対しZ検定を行ったところ、

  • 篝火#3~#5同士では有意差はなし
  • 篝火#3~#5はいずれも篝火6と有意差アリ
  • 以下に述べる「補正」を行うといずれの篝火同士で有意差なし

という結果でした。
※ 1/19 追記: ご指摘を頂き 、「SPRの絶対値」で検定をするべきということになったため、改めて絶対値で検定を行いました。しかし結果は変わらなかったため、文章は据え置きます。

という訳で、篝火#3~#5同士に関しては帰無仮説は棄却されず、波乱度合 (SPR) に有意差はないと言えました。ただ篝火#6に関しては他の篝火と比較した時に帰無仮説は棄却され、篝火#6の波乱度合は大きかったと言えます。(一方で、後述の「補正」を行うといずれの篝火も帰無仮説は棄却されず、波乱度合は同じと言えました。)

グラフ

ここからは先章の統計用語が分からない方向けに説明を申し上げます。

“波乱度合” である SPR の集合を、各「篝火」大会ごとにプロットしました。そのバイオリン図は以下です。

“代替メッセージ”
[図2. 篝火#3~#6 (註2)にて波乱度合(SPR)を縦軸にプロットしたバイオリン図。]

バイオリン図は「SPR値の分布」を縦軸に表しています。横幅が広いところが、その数値だった人が多いということです。(中に入っている横線は第一四分位・中央値・第三四分位です。)
タテに伸びている篝火#4, #6はつまり「すごく躍進した人が居る」「躍進した人が多い」という意味であり、0.0 の所で横に伸びている篝火#5は「順当な結果に終わった人が多い」ということになります。

なんとなくですが、たしかに篝火#6だけ変に見えます。上下のブレがやばいです。しかし、篝火#3~#5も言われてみれば其々が少しずつ違うように見えます。

これらを「違う」と述べるための基準が統計学で提供されています。次では先人の知恵に則り、統計の仮説検定をしてみましょう。

篝火#6 は違った説

これら篝火#4~#6の SPR 値に対して統計の仮説検定を行うことにしました。
※ 1/19 追記: 上のご指摘 どおり、SPR値そのものではなく「SRPの絶対値」に対して検定を行うべきと発覚したため、改めて絶対値で検定し直しました。その結果以下のZ値は変わりましたが、結果は変わらなかったため文章は据え置いています。

統計の仮説検定とは、すごくざっくり申しますが、「集合AとBの違いは単なる偶然に依るものかどうか」を調べる手法です。例えばある学校の男子生徒と女子生徒の身長一覧を持ってきて「男女で身長差はあるか?」と述べる時に使います。

検定には様々な方法があり、「こういうサンプルに対してはこういう検定をすべき」という方針がある程度決まっています。筆者はここの判断に全然自信が無いため、 YONさん にアドバイスを請いました。その結果「Z検定」を選びました。

Z検定にすると決めたら、上のデータを .csv にエクスポートして Python で少し書けば大丈夫です。検定結果で出た各大会間での “Z値” は以下です:

▶ 篝火#3-#5間

  • 篝火#3-#4 Z値 = 1.22
  • 篝火#3-#5 Z値 = 2.32
  • 篝火#4-#5 Z値 = 2.05

▶ 篝火#6と他の間 

  • 篝火#3-#6 Z値 = -3.53
  • 篝火#4-#6 Z値 = -2.71
  • 篝火#5-#6 Z値 = -5.12

色々詳細を省きますが、検定では出た “Z値” を見て判断をします。この場合、集合AとBを検定にかけて「Z値の絶対値が 2.64 を上回っていればAとBの平均差は偶然とは考えにくい(=有意差がある)」と言えます(註3)。つまり、

  • 「篝火#3~#5は波乱度合に有意差の無い大会だった」
  • 「篝火#6だけ、篝火#3~#5のいずれとも有意差があった」

と言えます。篝火#3~#5が同じ「波乱度合」であった一方、篝火#6が「波乱度合」が異なり、更に言えば篝火#6だけ波乱が大きかったと言えます。

ただ、篝火#6 だけ異なるのは何のせいか、その理由までは分かりません。今回は事前の「シード」がいつもと一味違ったからとも考えられますし、DQ(= DisQualified, 欠席/棄権)が多かったからとも考えられます。ここはじゃくさんのブログでも指摘されています。

篝火#6 は違わなかった説

一方で、少し変えた検定も行いました。

これは上の「N」の値に 「補正」 を加えたものです(註4)。
N の「補正」というのは、欠席したシード選手を考慮するものです。例えば篝火#6にて第17シードの「Gackt」選手は本来は N : 8です。しかし篝火#6では第8, 14シードの選手がDQしたため、Gackt選手は事実上の第15シードとなり事実上の N は 7 となりました。この欠席者を反映した N に付け替えることが「補正」です。
じゃくさんにメッセージ申し上げた所、新たにこの視点を指摘され、データに全て振って頂きました。(特に篝火#6では諸事情によりDQが多かったため、こちらの補正を加えることが必要かと見込まれます。)

そして「補正後 SPR」の値を用いて、先の章同様に篝火#3~#6に関してZ検定を行いました。その結果、いずれの2大会間でも有意差が出ませんでした。
※ 1/19 追記:こちらも上同様、「補正後 SPR の絶対値」で検定を行い直しました。結果は変わりませんでした。

欠席者を反映した「補正」を行うと、「篝火#6は違うとは言えない」という結果になりました。より踏み込むと、「篝火#6でも会場に居た強い人が概ねシード順番通りに勝ち上がった」(註5)ということです。

これは何故でしょう?
先程の章では「篝火#6だけ波乱度合が違う」と言えましたが、補正を入れると何故「違わない」になってしまうのでしょうか?これは自明かもしれませんが、「補正」をしたら「ただの大会」になってしまったからだと筆者は考えます。繰り返しますが、篝火#6はDQが多かったとはいえ、ただシード順に勝ち上がっただけなのです。(註6

人間の直観に近いのは補正前のシードだと筆者は思います。例えば篝火#6で第49シードだった「Mao」選手は、欠席者を加味する「補正」を反映すると事実上の第42シードでした。しかし補正をしたからといって、みんなが感じるMao選手の腕前が急に上がったわけではありません。「第49シードのMao選手が33位を取った」と言う方が「事実上第42シードのMao選手が33位を取った」と言うよりも波乱の直観に即していると筆者は思います。

考察

つまり、上の2章をまとめると、

  • 篝火#6は下馬評以上に躍進したプレイヤーが以前より多く居た
  • 篝火#6現地に居たプレイヤーに関してはおおかたシード順の結果になった
  • DQ(欠席)の補正を入れるかどうかで検定結果は変わった

と言うことが出来るでしょう。理由が何かまでは言えませんが、直観に沿う面白い結果だったと思います。

また、篝火#3~#5はいずれも「波乱が同程度だった」と言えました。直観的に判断すれば、篝火#3~#5は毎回大会結果に実力が反映されていたと言えるでしょう。DQ(欠席)が多く発生するといった例外がなければ大会結果が安定しているという事実は、競技シーンのファンには嬉しい情報でしょう。

[篝火#6の上位結果画像。 篝火 大会Twitterより 。他の篝火#3~#5と比較して、直近の篝火#6は感覚的に「波乱が起きた」とも言えますし、結果を見ると「順当かなあ」とも言える内容でした。これは統計の分析結果からも出ているのですが、皆さんの直観にはどちらが合うでしょう?]

細かい点

以下、筆者が思った細かい点を申し上げます。

図2. から、篝火#6 だけ中央値が0より大きくなっていることが見えます。つまり、上位選手にDQ(欠席)が多かったことから、どちらかと言えば躍進した選手の方が不振だった選手より多かったと言えます。(※「補正」をかけると中央値は0になることを確認しました。)

また、データに重み付けをしても良いかもしれません。例えば篝火#3では SPR の値が6以上の選手は3名しかいませんが、篝火#4ではそれが5名もいます。今回は SPR が6を超えるような “大躍進” をしても「1個のデータ」としてしか扱いませんが、大躍進は少し扱いを大きくしても良いかもしれません。こういった検討は今後の有志の方に是非おまかせします。

今回と同様に統計的な手法を用いて、予選が「ダブルエリミ」の大会と「総当り」の大会とで比較して有意差が出るかどうかも見てみたいです。どなたかお願いします。

以上

シードって凄いですね。

統計の仮説検定だけでは果たして篝火#3~#5のシードが “良かったか” どうかは明言出来ません。しかし、今後も他の大会と SPR の数値を比較すれば「波乱度合が異なるかどうか」は判別することが出来ます。

こうしたトーナメント理論の研究は筆者がすごく興味を持っている部分です。例えば過去にYONさんがシングルエリミとダブルエリミで差があるかどうかの検討もしていましたが、

こうしたトーナメント理論を追求していくとより熱くて信頼できる競技シーンにつながると考えています。

今回じゃくさんにはデータを頂き、更に「補正」の概念まで頂いてしまいました。また、YON さんにはどの検定を使うべきかご判断頂き、それに加えて文章の統計表現しぐさを直して頂きました。本当にありがとうございます。

追記

1/21 以降に頂いた指摘を述べています。

今回集めた統計データに関して「Z検定は出来ない」という指摘です。

では「何をするべきか」「どこまでやるべきか」に関して、いま明確な回答を待っている状態です。



  1. ウィンブルドンのシード割り振りについて  ↩︎

  2. 各大会毎のサンプルサイズは 篝火3 : 129, 篝火4 : 367, 篝火5 : 488, 篝火6 : 526 ↩︎

  3. Z検定にあたり、分かる方向けに「基準値 2.64」を求めた詳細を記します。今回は同一データで比較を6回行うため、仮説の数で有意水準を割るボンフェローニ補正を行い、有意水準 α を 0.05/6 とします。あとはこの α に対応する両側検定統計量を求めます。
    α に対応する両側検定統計量をこちらの こちらの正規分布表 で確認すると、求めるZの「基準値」は 2.64 となります。 ↩︎

  4. じゃくさんはこの「N」を新たに sLRV (seed-LosersRound from Victory) という用語で表しています。意味は同じです。 ↩︎

  5. これはもしも篝火#3~#5が「強い人が概ねシード順番通りに勝ち上がった」とするなら。厳密な表現は「篝火#6の波乱度合が他の篝火#3~#5と変わらなかった」。 ↩︎

  6. 篝火#6 は、事前のファン議論で「今回のシード割り振りはこれで良いのか?」という議論が起きていました。そのため、補正前のデータで「篝火#6は波乱だった」と言えたのに補正後は「篝火#6も他と同じだった」となる場合、様々な理由が考えられます。例えば「シードはふさわしくなかったけどDQが多い結果、シード順の結果になった」とか「元々シードは正しく、SPR に着目すること自体が間違っている」などです。 ↩︎