まもなくきのこたけのこ戦争がスプラトゥーンで行われる予定ですが、みなさんいかがお過ごしでしょうか。
今日は、その存在に賛否両論あるイカフェスレートの表示している情報についての話を書きます。
フェス速報さんの方が有名になりましたが、基本的には一緒の話です。(でも、フェス速報さんでは表示していない情報についての話をします)
忙しい人のためのまとめ
- イカフェスレートやフェス速報の表示を元にした「優勢/劣勢」の判断が出来るようになるまで、統計的には数時間かかります。(場合によっては最後までわかりません)
- 勝ち馬に乗る派はタイミングを見計らう必要があります。(そしてそのタイミングをイカフェスレートなら表示しています)
- イカフェスレートでは、任天堂公式データから得られる勝敗を単に集計するだけではなく、真の勝敗を推定しています。
本編
まず、イカフェスレートの表示している情報のソースですが、これは、公式サイト(フェスモード)の「Aチームの勝ち!」と表示している箇所のためのデータです。
このデータはあくまで公式サイトの表示を行うためのデータですので、次のような特性があります。
- 公式発表ではない。
- 勝率を計算するためのデータではない。(あくまで任天堂が任天堂のために用意した表示用のデータ)
- そもそも実際の勝率に合わせて出す必要すらない。(例えば半々で表示することは可能)
- 抽出元になったデータの件数はわからない。
- 実際のバトル数と連動しているようにも見えない(が、抽出が固定数ではないので実は連動しているのかもしれない)
しかし、大変ありがたいことに、現在のところ実際の勝敗に合わせて表示されているようです。
表示基準は謎ですが、データを作る直前のバトル結果を取り出しているのではないかと思っています。
そして、現在のイカフェスレートの仕組みとターゲットの概要はこんな感じになっています。
大前提として任天堂はすべてのバトルの勝敗データを持っています。図の一番上の緑の部分は、このすべての勝敗情報を表しています。
このデータは外から見ることはできませんし、何件のバトルがあるのかもわかりません。
任天堂はこのバトル結果群のうち、一部だけを抽出して、公式サイト表示用の勝敗データを外部から見える状態にしています。
ここは「Aチームの勝ち、MVPはアオリ」というデータになっています(実際データはこのへんで確認できます)が、それぞれ数え上げると大体一回あたり90件ちょっとの勝敗が入手できます。
上の図では仮に「52対42」と集計できたとしています。
イカフェスレート、フェス速報、他にも複数ありますが、そういった外部のフェス勝率集計サイトは、このデータを見て「今Aチームが55.3%だよ」と表示していることになります。
私の知る限り、イカフェスレート以外のサイトはここで計算を終わっています。
(あとは定期的に取得を繰り返して、全部合計して計算するだけです)
イカフェスレートではもう一歩進めて、(最終勝率である)「じゃあ(見えない)本当の勝率はいくつなの?」という計算をしています。
ここが図の「見えない情報を推定したい」という部分です。
上の例だと「Aチームの勝率55.3%」じゃないの?という話になりますが、私たちが知っているのはあくまで「一部のデータを元にした勝率」にすぎず、必ずしもそれらは一致するとは限りません。
次に、ここから先を説明するための適当に生成したデータを示します。(真の勝敗データが不明のまま進めても難しいので、ここで架空のデータを用意します)
一番上の緑の領域は(本当は見えないはずの)全バトルのデータを示し、「○」「●」がそれぞれどちらが勝ったかを示しています。
数えると「○」が103個、「●」が97個あります。
勝率としては「○」が51.5%勝っていることになります。(つまり、求めたい「(隠された)正解」は51.5%)
これは本来任天堂しか知らない情報です。
任天堂はここから一部(最下部の赤枠内20試合)を抽出して外部に公開するとします。
イカフェスレートやその他の類似サイトはこれを利用して『「○」が45%勝っているようです』と表示します。
ここで、私たちは今、(ズルをしているので)本当の勝率が51.5%だと知っています。
しかし、サイトは45%だと言っています。
勝率には大きな差があるように見えます。
誰かがズルをして、わざと偏って、しかも逆側が勝っているように見えるようにしたのでしょうか。
確率というのはやっかいなもので、例えばサイコロを6回投げても一回ずつ全部の目が出たりはしません。
ではサイコロがおかしいかというとそうでもありません。
たくさん投げるとだんだんそれぞれの目の出現率がぴったり1/6に近づいていきます。
無限に完璧なサイコロを投げればぴったり1/6になると思います。たぶん。
(余談ですが、一般的なサイコロは重心が偏っているため均等にならないそうです。昔トリビアの泉でやってました。でも、ここでは理想的なサイコロだと考えてください)
「ぴったり1/6で出るサイコロを6回振っても均等に出たりしない」のと同じ理由で、「一部だけを取り出したデータでは必ずしも元データとは一致しない」(特に数が少ないうちは)と言えます。
(少し詳しく言うと、ある集合から無作為に一部のデータを取り出してみた時に、必ずしも期待通りにはならないということになります)
さて、では話を先に進めます。ここで、今までズルをして見た「全バトルの結果」のことは忘れてください。
私たちが今知っているのは「○が9勝、●が11勝」という情報のみです。
ここから、「緑の中身がどういう割合だったら○が9勝、●が11勝というデータが取り出される(可能性が高い)のか」ということを考えます。
「緑」の領域のことを「母集団」、取り出された20戦のことを「標本(サンプル)」といいますが、(母集団に比べて)少数の標本から母集団を推定するということを行います。(これを推計統計学とかよぶそうです)
統計学を応用すると、「どのくらい普通に発生するのか」ということを判定することができます。
特にいわゆる理系の大学で学ばれた方なら「有意差」という言葉を聞いたことがあると思います。その辺の話です。
(ちなみにこれを書いている中の人は高卒なのでそのへん大学でどう扱うのかはよく知りません)
一般的でわかりやすい話にすると、
ある割合で赤と緑のボールが膨大な数入ったバッグがあるとします。
そこから20個取り出したら9個と11個だった状態です。
この状態で、例えばバッグの中身が「赤100個、緑100個」の状態であればそれぞれ9個、11個と取り出されても普通に起きるかな、
また、バッグの中身が「赤9個、緑1000個」の状態であれば、9個、11個なんてことはまず間違いなく起きないかな、
とわかると思います。
この「まあ、普通に起きるかなあ」という範囲を算出します。
統計学の範囲の計算の話は省略しますが、イカフェスレートのプログラムはこの条件だとこう推定します。
「○が17.5%~77.4%の勝率であれば普通に起きる」≒「○の本当の勝率は17.5%~77.4%のどこかに違いない」
ずいぶん広い答えが出てきました。確かに51.5%はこの範囲に入っていますが、投げやりとも取れる答えです。
これはサンプル数が20件と大変少ないためで、「20件くらいなら何が起きてもおかしくない」レベルになってしまうためです。
サンプル数が増えると推定の幅はどんどん小さくなっていきます。
このサンプルデータでの推計の例をまとめると大体こんな感じになります。
サンプル数が増えることによる「範囲」の移り変わりは、例えば14回フェスの時のページを見るとわかります。
この時は全部で24,498件のデータが集まったので、最終的に「オシャレチームが50.5%~52.2%」という推定をしています(表示上はプラスマイナスになっています)。
14回フェスは開催期間が長かったですが、毎回最終的には大体1~2ポイント程度の間になります。統計的にはかなり精度が出ているといえると思います。
ちなみにサンプル数が少ないとどうなるかというと、15回フェスの最初のサンプルは「4勝 vs 2勝」だったので、8.4~99.9%などというとんでもない推定になっていました。
これがサンプル数が多くなると、同じ66.6%で作成した架空の例でこうなり、どんどん「このくらいの割合ならこの状況が発生しそう」と判定される幅が狭まっていきます。
- 4 vs 2 : 8.4~99.9%
- 40 vs 20 : 49.2~82.4%
- 400 vs 200 : 61.3~71.9%
- 4000 vs 2000 : 65~68.3%
- 40000 vs 20000 : 66.2~67.1%
- 400000 vs 200000 : 66.5~66.8%
なお、実際の推定の範囲の遷移は「誤差推定」のグラフで表示されています。
ここまで説明した「サンプルを元に(見えない情報である)全バトルの勝率を推定したもの」は、イカフェスレートの各ページの勝率表示や、「誤差推定」部分に表示しています。
また、イカフェスレートでは、似たような仕組みで推定をして、信頼性によって「長期的勝率グラフ」の一部の背景色を変更する仕組みも入れています。
説明にも記載していますが、この「背景が暗い部分」(濃く表示されている部分)は、半々の勝率の時(先の図なら緑の箱の中身)と統計的に区別がつくとは言いづらいことを示しています。
よくわからないと思いますので超ざっくり言うとどちらが勝ってるとも言えない状態です。
(少し詳しくいうと、「母集団の勝率がぴったり50%である」としたときに今の標本となる可能性が棄却されるかどうかを判定しています)
よく、開始直後から数時間の間に「イカフェスレートを見て勝ってる方にした」(フェス速報その他のサイトでも同じことです)というツイートがありますが、経験上半日くらいはどちらが優勢かはっきりしないことが多いので充分注意してみてください。
(特にフェスパワー導入後はその仕組み上差が出づらくなっていますので優位差が全然でないです)
ちなみに、5回フェスでは推定と結果が入れ替わっているので「外れた」「あてにならない」とよく言われたのですが、あのフェスでは拮抗しすぎて統計的にはどちらかよくわからない状態でした(当時は統計的な表示はしていませんでしたので後出し感はありますが、そういうものです)。
まとめ
- 任天堂の提示したデータからだけ計算した勝率はあんまりアテにならない(最後のほうになるとそこそこ)
- イカフェスレート以外のいくつかの類似サイト(フェス速報他)が表示しているのはこの数字
- イカフェスレートでは「真の勝率」を推定するための追加の計算をしている
- その計算の精度は標本量に依存するので、前半に出た数字はあまりアテにならない
- ご利用の際は「有意差」があるかどうかの確認を忘れずに
上では特に触れていませんが、本来は時間帯で対戦数はきっと大きく異なるのでこれを考慮しないと正確な数字になりません。
この対戦数を補正するデータがないうえに手持ちの一般的なインターネットの活動時間を考慮させて計算すると逆に精度が落ちるのでその辺は現状では何も補正していません。
それでは、次回フェスも頑張りましょう。
Staaaay Fresh!
余談: 文章書いてるうちにめんどくさくなって適当になるのどうにかしたい。
余談2: 他のサイトをdisることを目的にした文章ではありません。
余談3: たしか、計算しているのは95%信頼区間です。