きつねたてにっき

るる鯖で人狼をプレーしているつるつるの考察。コメントで意見とか残してくれると喜びます。最新トリ:Jet◆SgN.usdTyF

人狼とベイズ統計

この記事では、人狼ゲームをプレーする上で知っておくと役立つベイズ統計を使った欠けの確率の計算方法について解説します。

問題設定・結論


例題として、12A猫でCO状況が占1-霊1であった場合に、占いが偽である確率がどの程度あるか考えます。

この記事を書こうと思ったきっかけは、るる鯖で行われた12A猫の村 で、この村で参加者から、

12A猫では占いが欠ける確率は1/8なので、占1-霊1でも占い欠けはほとんど見なくていい

という趣旨の発言がありました。

結論から言うと、上記の発言は事前確率と事後確率を混同しており間違いです。

正しくは以下のようになります。

12A猫では占いが欠ける確率は1/8だが、占1-霊1だった場合には占い欠けは50%以上の可能性がある

大雑把な説明としては12A猫で人外が何も騙らない確率が小さいので、1-1の場合には人外が全潜伏している可能性より、占いが欠けるている可能性の方が高いからです。

 

ベイズの定理を用いた確率の計算方法


以下で、ベイズの定理を用いて、占1-霊1だった場合に占いが欠けている確率を計算する方法を解説します。
この記事ではベイズ統計自体の解説は行いません。

 

何も情報が得られていない場合の占い欠けの確率(事前確率)と、CO状況が分かっていた場合の占い欠けの確率(事後確率)は異なります。

今回計算したいのは、CO状況が占1-霊1だった場合の占い欠けの確率で、それをP(占い欠け|占1-霊1)と書くことにします。Pが確率(probability)を表し、P(A|B)はBという事象が起こった条件の元で事象Aが起こる確率を表しています(条件付き確率)。


ベイズの定理より、事後確率は以下のように書き換えられます。

P(占い欠け|占1-霊1) = P(占1-霊1|占い欠け) * P(占い欠け) / P(占1-霊1)

ここで、

P(占1-霊1|占い欠け)は占い欠けの場合に占1-霊1になる確率

P(占い欠け)は占いが欠ける確率

P(占1-霊1)はCO状況が占1-霊1になる確率

を表しています。

 

例として12A猫(村4・占・霊・狩・猫・狼3・狂 という配役)を考えると、占い欠けの確率は、狼3・猫以外から第一犠牲者が選ばれるので、

P(占い欠け) = 1/8

となります。

 

P(占1-霊1|占い欠け)、p(占1-霊1)は人外陣営がどういった戦略を取るかで変わるので、厳密な確率は参加したプレーヤーの嗜好性に影響されます。ここでは、私が過去に参加 or GMをした12A猫のログを元に見積もることにします。当然、私が関わっている村というバイアスがかかっています。

私が記録していた12A猫の村は全部で94村でした。その内、占1-霊1であった村は9なので、

P(占1-霊1) = 9/94

になります。

 

P(占1-霊1|占い欠け)は、占い欠けの村のうち、占1-霊1だった村の数を数えることで、

P(占1-霊1|占い欠け) = 6/16 = 0.375

になります。

これだとサンプル数が少なすぎるので、別の計算方法でも確認します。るる鯖は役職者のCO速度に厳しいため、人外のCO状況が欠けに影響されにくいです。*1
したがって、

P(占1-霊1|占い欠け) = P(人外陣営が騙りを占1-霊0出す)

と近似することができます。

私が関わった94村の内、狼と狂人の騙りの状況は以下の通りでした*2

(占い騙り数, 霊騙り数): 村数

(0, 0): 4
(1, 0): 38
(0, 1): 1
(2, 0): 33
(1, 1): 9
(2, 1): 9
(1, 2): 1
(3, 0): 1

(1,0)になっているのは38村なので、

P(人外陣営が騙りを占1-霊0出す) = 38/96 = 0.396

となります。上の直接計算したp(占1-霊1|占い欠け) = 0.375と近い値であることが確認できました。

 

以上でベイズの定理の右辺はすべて計算できたので、に代入すると

P(占い欠け|占1-霊1) = P(占1-霊1|占い欠け) * P(占い欠け) / P(占1-霊1) = 38/96 * 1/8 * 94/9 = 0.517

と50%以上に確率になることが分かりました。

つまり、事前確率ではP(占い欠け)=1/8だった占い欠けの確率が、事後確率ではp(占い欠け|1-1) = 0.517と大きな値になるのです。
人狼をプレーする上で、事前確率と事後確率を区別して考えること(CO状況などの情報が得られる前か後かを区別する)の重要性が分かります。

 

最初の大雑把な説明を数式で考えると、欠けなしの確率はベイズの定理より

P(欠けなし|占1-霊1) = P(占1-霊1|欠けなし) * P(欠けなし) / P(占1-霊1)

となるので、占い欠けと欠けなしの条件付き確率の比は、

P(占い欠け|占1-霊1) / P(欠けなし|占1-霊1) = P(占1-霊1|占い欠け) * P(占い欠け) / P(占1-霊1|欠けなし) / P(欠けなし) ∝ P(人外陣営が騙りを占1-霊0出す) / P(人外陣営が騙りを出さない)

となり、1-1の場合に占い欠けと欠けなしの確率の比は、人外陣営が騙りを出すかどうかに依存していることが分かります。

 

最後に、私が関わった村での占1-霊1のログを参考のために貼っておきます:
黒ー真
https://ruru-jinro.net/log4/log375791.html
https://ruru-jinro.net/log4/log386994.html
https://ruru-jinro.net/log4/log391981.html
https://ruru-jinro.net/log4/log394225.html
https://ruru-jinro.net/log4/log394523.html
https://ruru-jinro.net/log5/log477193.html
真ー真
https://ruru-jinro.net/log4/log391753.html
https://ruru-jinro.net/log5/log417688.html
https://ruru-jinro.net/log5/log470262.html

サンプル数は少ないですが、このサンプルだけからP(占い欠け|占1-霊1)を計算すると、

P(占い欠け|占1-霊1) = 6/9 = 0.667

となり、先程の0.517と遠くない値になっています。*3

 

 

*1:厳密には、霊欠けっぽい時に人外が乗っ取ろうとしたり、狂人が様子見してから占いCOするかどうか決める場合もあるため、厳密には独立ではありません

*2:村の総数が94でなく96になってしまっているのは数え間違えです。数え直すのがめんどうなので、許して。

*3:少ないサンプルで直接計算した0.667より0.517の方が正確な値だと思われます