以下はYouTuber兼TwitchストリーマーのDreamがマインクラフトのスピードランでチートした疑惑についてMinecraft Speedrun Teamが出した報告書とDream(と分析を委託されたPhotoexcitation)による反論(および反論に対する批判とMinecraft Speedrun Teamによる再反論)の要約です。事件の概要については1ページ目をごらんください。
報告書の概要
以下が報告書の計算の核心部である。
式9では1回の取引あたりエンダーパールが出る確率を(マインクラフト1.16のjarファイルの値から求め)p = 0.0473として、262回中42回以上出る確率を算出し1、5.65×10–12を得ている(以下、ブレイズロッドの計算は省略する)。
この確率はあまりにも低いので、Dreamのチートは明らかなように見える。しかし、この確率は以下の理由で正確ではなく、補正が必要になる。
第一に、Dreamがチートをしていることを疑った人が確率が一番極端になるところを選び出してきた(チェリーピッキングした)だけかもしれない。そこで、262回の取引を観察しながら、(エンダーパールが42回以上出る確率5.65×10–12よりも)もっと極端な確率が出たときに観察を切り上げるとしてみよう。このとき、極端な確率が出て観察を切り上げる確率は1.22×10–11になる。(8.1節と付録B)
第二に、Dreamはストリーミングで全11回プレイしたが、今回は最後の6プレイだけを分析している。これはDreamがチートをした疑いが高い(確率が低い)プレイを選び出したことになる。たとえば3回目のプレイから7回目のプレイを取り出してきたら、これほど低い確率にはならないかもしれない。そこで、これを考慮に入れて(これだけ確率が低いプレイが連続して存在する確率を算出するように)補正すると、確率は8.04×10–10になる2。(式12と8.2節)
第三に、Dream以外にもたくさんのストリーマーがいて、スピードランをしていたのだから、誰か一人はDreamと同じぐらい低い確率を出す人がいるかもしれない。宝くじに当たるのがとても低い確率だからといって、当たった人は不正をしたとは言えない。100万分の1の確率なら、100万人いれば一人当たっても何も不自然ではない。そこで、Dreamと同じようなストリーマーが1000人いたとし(これは多めの見積もりである)、誰か一人がDreamと同じぐらい低い確率をたたき出す確率を計算すると8.04×10–7になる3。(式13と8.3節)
ここまで計算したエンダーバールの確率とブレイズロッドの確率を組み合わせると(式14と式15)4、1.47×10–15となる5。
第四に、エンダーバールとブレイズロッドという組み合わせを調べたのが確率が低く出た理由かもしれない。そこで、調べる候補が10種類ぐらいあるとし、これらのうちもっとも確率が低い組み合わせをとってきたときにこれだけ低い確率が出る確率を計算すると1.33×10–13(7兆5000億分の1)になる。(式16と8.4節)
これが、1000人のストリーマーが不正をせずにプレイした中から一番確率の低い部分を拾ってきたときに、Dreamと同じぐらい極端なことが(誰か一人のどこか一部分でも)起こっている確率である。この確率はきわめて低く、Dreamが不正をしていたと結論せざるを得ない6。
反論の概要および反論への批判
以下は反論の概要と、反論への主な批判およびMinecraft Speedrun Teamによる再反論の概要である。
反論:取引で2回中2回エンダーパールが得られ、ブレイズを倒して7回中7回ブレイズロッドが得られるのは60000分の1という低確率だが、世界中にはマインクラフトのプレイヤーが多いので、世界的には毎日起こる。Dreamに起きたことは非常に稀だが、世界中のマインクラフトプレイヤーの誰かに起こる可能性はあり、たまたまそれを引き当てたDreamを攻撃するのは間違っている。(5節)
反論への批判:報告書は不正をしていない1000人のストリーマーのうち誰か一人がDreamのような稀な結果を出す確率をきちんと計算している。この確率ですら極端に低いという結論が出ているのでこの反論は的外れである。(再反論5節)
反論:エンダーパールやブレイズロッドは必要な個数だけ手に入れようとする。そのため、最後は必ず手に入れたところで終わる。つまり、コインを10回投げると決めて表の回数を数えると10回目は表も裏も等しく起こりうるが、表が5回出るまで投げると決めれば最後は表に必ずなる。そのため毎回最後の1回は除いて計算するべきである。(6節)
反論への批判:最後の試行も独立な試行とみなせるので、このような処理は必要ない(参考)。また、反論が議論しているのは負の二項分布の性質だが、しかしDreamは複数回プレイしているため、その合計は(負の二項分布に従う値の総和なので)負の二項分布に従う値とみなせる。毎回プレイの最後の結果を捨てる必要はない。(再反論2節)
反論:最後の6回のプレイだけを使ったのは恣意的。その前の5回のプレイも加えるべき。
反論への批判:報告書は11回の中から確率の低い6回分を選び出したことも考慮して補正しているから不要である。(再反論4節)7
注
- 二項分布を使う。報告書では二項分布の簡単な説明もされている。
- 式4ではあらゆる連続プレイの組み合わせについて、すべての連続プレイが独立だと仮定して計算しているが、もちろん3回目のプレイから7回目のプレイの結果と、4回目のプレイから8回目のプレイの結果とには重なりがあるので、独立ではない。結果としてこれはかなり保守的な(Dreamにとって有利な)補正である。重要なのは、Dreamにとって有利になるように計算してもDreamに不正があったと認定せざるを得ない確率が出たことである。
- 以上の補正も以下の補正も、原理的にはBonferroni補正と同じ考えに基づいている。「100万分の1で当たるくじを100本引くと、1本以上あたりが出る確率はおよそ1万分の1」という理屈である。
- p値を統合するためにFisherの方法を使っている。p値は0から1に一様分布するから、対数をとれば指数分布、すなわち自由度2のχ2分布に従うのがその原理である。
- こちらでは、エンダーパールの確率とブレイズロッドの確率を組み合わせてから8.3節の補正をした方がもう少し正確になると指摘されている。この場合、Dreamにはより不利な結論が出る。
- このほか、報告書ではドロップ確率やJavaの乱数関数で使われている線形合同法についても議論している。エンダーパールとブレイズロッドの出現はそれぞれ別の乱数生成器で決められているので、両方がともに不具合を起こすことは考えにくい。
- その他の再反論の内容は以下のとおり。反論では調べる候補が10個ではなく37個ある可能性を論じているが、この補正をしたとしても結果はほとんど変わらない(6節)。反論では報告書の頻度主義ではなくベイズ統計を採用しているが、p値の補正は頻度主義的で、一貫していない(7節)。