ななれんの戦闘勝率を区間推定(95%信頼区間)する

PPP記事のとき、「勝率がよくなるようにパーティや%を調整する」みたいなことを何回かブログに書いていると思うのですが、そもそも真の勝率というのはプレイヤーにはわかりませんよね。

勝率は試行から推定するしかなく、推定した勝率によって周回する%を判断するしかないのですが、推定勝率が間違っていたら当然判断も間違います。正確な判断をするには推定した勝率にどのくらいの信頼がおけるのかを知る必要があります。

ななれんの戦闘は途中に一切操作を挟みませんので、パーティを決めてしまえば勝敗は確率的に決まります。ですので、自分の中の整理もかねて、今回は数字をこねくり回して推定した勝率にどのくらい信頼がおけるかを計算してみたいと思います。

なお、シミュレータは優秀な勝率推定の道具ですが、統計的な推定とは別の信頼度の問題があるので今回は登場しません。実機のみで検証します。

戦闘数・勝利数集計のやり方

 \displaystyle \frac{勝利数}{戦闘数}=勝率

です。なにはともあれ勝利数と戦闘数のデータが必要でしょう。

やり方は何でもいいですが、自分はパーティと%を固定して30分周回し、前後のスクショから求めることが多いです。

以下は五連の勇兎85%を周回した時のスクショです

例①

ビスケットが381枚から24枚になって357枚消費していますので、戦闘数は357÷3=119 です。 rinは56,863,375から59,132,543に2,269,168rin増えています。85%の勝利報酬は25,786rinなので、勝利回数は2269168÷25786=88 です。 例①の勝率は88÷119=0.739496 約74%となります。

例②

戦闘数112勝利数92で、例②の勝率約82%です。

例①+②合計

表にまとめるとこうなります。

戦闘数 勝利数 勝率
例① 119 88 74%
例② 112 92 82%
例①+② 231 180 78%

この結果はいろいろ解釈ができると思います。74%が下振れだと捉えれば実は勝率80%あるかもしれませんし、82%が上振れで実は勝率70%強しかないかもしれません。正直よくわかりません。

いろいろ集計した結果特にばらつきが多かった例を選定していますので、普通はもっと安定した結果が出ると思いますが、こうなってしまうことも珍しくはないかと思います。しかし、こういう数字を見て続行したり%やパーティを変更したりしなければならない……もう少し詳しく数字を見ていきます。

二項分布の点推定

本題の前にちょっと高校数学の復習です。

コイントスのような結果が二種類しかない確率分布を二項分布といいます。コイントスの場合は表が出る確率p=0.5の二項分布です。

ななれんの勝敗も勝つか負けるかなので、勝率pの二項分布と言うことができます。*1ただし、真の勝率であるpは不明です。

上の例①では試行回数 n=119 、勝利回数 X_1=88 で、勝率は \hat{p}_1=\frac{88}{119}=0.739496 と表記できます。このように試行(標本)から勝率\hat{p}(標本比率)を求めて真の勝率p(母比率)を推定することを点推定といいます。

点推定だけを計算した時点では、求めた確率\hat{p}_1がどの程度信頼できるのかは全く分っていません。真の勝率pの性質に従う結果が出たのか、奇跡的な確率で偏った結果が出たのか知る術がないからです。

一方で、どの程度信頼がおけるデータなのかは皆さん感覚的に理解しているのではないかと思います。勝率の期待値が真の勝率と同じこと、試行回数が多ければ多いほど真の勝率に近づく大数の法則)ことを知識や経験から知っているからです。*2

ここがややこしいところで、感覚は人によって違いが生じます。この後計算しますが、たいていの人が思っているよりもずっと偏りやすいと考えてよいと思います。

二項分布の区間推定(95%信頼区間

どのようにして感覚を排除して勝率の話をしたらいいのでしょうか。一つの案として95%信頼区間を使用するというものがあります。

点推定に対して、試行結果に幅を持たせて行う推定を区間推定といい、95%信頼区間は信頼度という指標を導入した区間推定の有名な手法です。選挙の分析、テレビ視聴率、検査薬の話題などでも使用されます。

試行から得られる標本比率p正規分布に従うとみなせば、標準正規分布表から95%信頼区間を計算できます。詳しくはググるか、専門資料を見てください。 21-1. 母比率の信頼区間の求め方1 | 統計学の時間 | 統計WEB

 \displaystyle \hat{p} - 1.96 × \sqrt{ \frac{ \hat{p}(1 - \hat{p}) }{ n } } \leq p \leq \hat{p} + 1.96 × \sqrt{ \frac{ \hat{p}(1 - \hat{p}) }{ n } }

例①(n=119, \hat{p}=0.739496)で計算すると、95%信頼区間は66.0636%~81.8356%になります。

95%信頼区間は、同じ試行(112回戦闘して勝利数を集計する)を100回行ったとき95回程度は信頼区間の範囲に母比率(真の確率)が含まれるくらい信頼できる区間ですよ~という意味になります。 求めた信頼区間に95%の確率で真の確率(母比率)が含まれると解釈してはいけないらしいのですが、自分には違いがよくわかりません。おおむねそのように理解しても間違いではないかと思います。詳しくはこちらなどを参照してください。19-3. 95%信頼区間のもつ意味 | 統計学の時間 | 統計WEB

例②(112戦92勝、勝率は82.1429%)で計算すると、95%信頼区間は75.0498%~89.2360%になります。

例①+例②合計(231戦180勝、勝率77.9221%)で計算すると、95%信頼区間は72.5733%~83.2709%になります。

まとめると

戦闘数 勝利数 勝率 95%信頼区間
例① 119 88 74% 66.1 ~ 81.8%
例② 112 92 82% 75.0 ~ 89.2%
例①+② 231 180 78% 72.6 ~ 83.3%

この表を見るときに重要なのは、勝率の行はいったん忘れてください。どの程度信頼できる数字かはわからないからです。信頼区間の数字だけを見ましょう。

231回の集計を行っても、95%信頼区間の72.6~83.3%(幅8.7%)の間に真の勝率がありそうだということがわかっただけです。このくらいのブレが統計的に存在します。しかも、同じ試行を100回行ったら5回程度は幅の外に真の勝率が出てしまいます。

ただし、実際にはっきりしているのはこの程度までなのです。現在手元にあるデータからこれ以上のことを言うことはできません。そして個人の感覚が入る余地がなく、この一点が素晴らしいところです。やったことがない人は、ぜひ自分のデータで95%信頼区間を計算してみてください。

おまけ1 その他の信頼区間

95%信頼区間の95%のところは自分で決めることができ、99%信頼区間や90%信頼区間を求めることもできます。

例①+例②合計で計算すると

  • 90%信頼区間:73.4333~82.4109
  • 95%信頼区間:72.5733%~83.2709%
  • 99%信頼区間:70.8926~84.9515%

計算結果のとおり、信頼係数を高くするほど信頼区間の幅は広くなります。

おまけ2 必要データ数

信頼係数(0.95)と、欲しい信頼区間の幅を決めることで、おおよその必要試行数を知ることができます。

勝率が仮に80%程度だとして、95%信頼区間の幅を5%(±2.5%)に収めるためには、どのくらいデータを集めればいいかというと

 \displaystyle 2 × 1.96 × \sqrt{ \frac{ \hat{p}(1 - \hat{p}) }{ n } } \leq 0.05

になっていればよいですね。変形すると

 \displaystyle n \geq 4 \hat{p}(1-\hat{p}) \frac{1.96^2}{0.05^2}

となります。こちらのサイトを参考にさせていただきました。ドロップ率の検定

 \hat{p}=0.8 とすると  n \geq 983.4496

この条件では983戦闘の集計が必要ということがわかります。

勝率\hat{p}は推測値になってしまうのですが、50%のときに最も必要な試行数が多くなりますので50%に近づくように切り捨てまたは切り上げて計算するとよいです。75%くらいかなと思ったら70%や60%で、全く分からなければ50%で計算しましょう。

おまけのおまけ 転生の実のドロップ率

ドロップ率 \hat{p}=0.01(1%)、欲しい95%信頼区間の幅を0.1%(±0.05%)とします。

 \displaystyle n \geq 4 × 0.01(1-0.01) \frac{1.96^2}{0.001^2}

 \displaystyle n \geq 152127.36

15万2127ドロップの集計が必要です。ガチ勢5人くらいいたらなんとかなりませんかね。よろしくお願いします。

その他参考にしたサイト

母比率の信頼区間の推定 - 高精度計算サイト 信頼区間を計算してくれます。推定方法をWald法にすると紹介した方法と同じです

FGOにおけるドロップ率の区間推定 | antenna-three.github.io FGOにおける同じような内容の記事で、統計の解説が丁寧です

ロマサガRS SSキャラドロップ率の信頼区間 #数学 - Qiita 標本数3,200ドロップ数31(約1%)の信頼区間計算

標準正規分布表 これを使うと任意の信頼区間を計算できます

信頼区間 信頼区間の解釈についての解説が詳しくわかりやすいです

*1:確率が一定の独立事象であることが条件で、この条件を満たさないとする立場に立てばこの記事の検証は無意味になってしまうのですが、戦闘勝率については条件を満たすのかなと思っています。ドロップは特に幸運が絡むと独立の部分が怪しいかも。

*2:不偏性、一致性を満たすといいます