レートの人口分布をシミュレーションしてみた ~①モデル構築編~
お久しぶりです!
X(旧Twitter)を見ていたら、レートの分布について考察したぴらんさん(@pyran19)の記事が流れてきました。
note.com内容を見ると、S1では割と正規分布っぽかったのに、S17では中央付近で極端に尖った分布になっているとのこと。なぜこうなるのか気になったので、レート対戦の環境をモデル化してシミュレーションすることで、考察してみることにしました。
今回は色々な要素を加味してシミュレーションモデルを構築するところまで進めて、次回以降で各パラメータの影響の確認や、最適化による実際の分布への合わせこみをしていくつもりです。
モデルの概要
前提
記事内の検証で全体に共通する前提
- ランクマ人口は100,000人でレート1500から一斉スタート
- 1か月あたりの最大対戦回数は300回
- レート更新式は下記のものを使用
参考記事:レーティングの仕組みから見る「最終日」の重要性 part1:レーティングの定義と実際に使われている計算式|ぴらん
動かしていく要素
検証の中で動かしていく分布や関数
- プレイヤーの強さの分布
- 対戦するプレイヤーの強さの差と勝率の関係
- マッチングシステム
- 順位とモチベーション(対戦回数)の関係
参考までに、プレイヤーの強さに関係なく勝敗が50%で決まって、レートが近い人と当たるようなシステムは無い完全ランダムマッチング、順位関係なく300戦のうち平均8割を消化する仮定すると、↓こんな感じでした。

割と正規分布っぽい。レート更新式の都合上、400以上のレート差で変動ゼロになることも考えると、1300~1700に収まっているのもそれっぽいですね。
シミュレーション要素のモデル化
ここから先はこれらの要素に対して分布や関数を仮定し、モデル化を進めていきます
プレイヤーの強さ分布
プレイヤーの強さは0.0~1.0の範囲で、適当な分布として与えることにしました。全員が0.5に集中するデルタ分布、平均0.5の正規分布、0.0~1.0の一様分布を連続的に繋ぐように、次の手順で各プレイヤーの強さを決めました。
,
の正規分布から値をサンプリング
- 値が0.0~1.0の範囲に収まっていればその値を強さに設定
- 収まっていなければ、0.0~1.0の一様分布から再サンプリングにより強さを設定
このやり方にすることで、標準偏差を変えるだけでデルタ分布~正規分布~一様分布を連続的に表現できました(下図)。

図からも分かるように、傾向としては↓こんな感じです。
: 全プレイヤーが強さ0.5に集中
: だいたい正規分布
: 下に下駄を履いた正規分布
: だいたい一様分布
強さと勝率の関係式
先ほど分布を定義したプレイヤーの強さを利用して、対戦するプレイヤー同士の強さの差と勝率の関係式を考えていきます。
前提条件
- お互いが同じ強さのとき、勝率は互いに50%
- 強さの差が開いても、強い側の勝率は100%にはならない
- 強さの差が0のとき勝率50%から、1のとき勝率100%まで、サチりながら滑らかにつながる
これらの条件を満たす関数として、シグモイド関数 を採用し、調整用のパラメータとして
と
を導入した下記の勝率関数を定義しました。
先ほどの強さの分布の通り であるため、強さの差は
になります。
は強さの差が開いたときの最大勝率を決定するパラメータで、
の範囲で定義されます。意味合いとしては、
が1に近いほどプレイヤーの実力が反映されるゲームになり、0.5に近いほど実力が全く関係ない運ゲーになります。
同様に は関数の傾きを制御するパラメータで、正の実数
をとります。これについても、
が大きくなるほど強さの差が勝率に強く影響するようになり、小さくなるほどちょっとの実力差では勝率に影響しない運ゲーになります。
ざっくりまとめると、 と
どちらについても、大きいほど実力ゲーになり、小さいほど運ゲーになると理解してもらえれば大丈夫です。
ちなみに勝敗判定では0.0~1.0の乱数を一様分布からサンプリングし、勝率がその値を超えていれば勝ちとします。

マッチングシステム
BW時代などはレート差マッチが当たり前のようにあったみたいですが、6世代以降は比較的近い順位同士で当たるようになっています。これを再現するためにある程度のランダム性を持ちながらも、極端にレートが離れたプレイヤーとは当たりにくいように、次の手順でマッチングシステムを定義しました。
- プレイヤー1人のレートを取り出す
,
の正規分布から値をサンプリング
- 1.で取り出したレートに2.でサンプリングした乱数を掛ける
- 1.~3.の操作を全プレイヤーに対して行う
- 乱数を掛けた後のレートに基づいて、順位をソート
- ソートした順位が隣り合うプレイヤー同士で対戦
このマッチングシステムを使用して、モデル概要のところで示した1300~1700に収まるレート分布に対して、 を変えながら、対戦レート差の分布をとると下図の通りになります。

図からも分かる通り、 が0.0の場合は絶対に順位が隣の人とマッチングしているのが、値が大きくなるにしたがってレート差が離れた相手とも当たるようになり、0.1以上*1ではほぼ完全にランダムにマッチングするようになります。
プレイヤーのモチベーション
プレイヤーの強さ、勝率、マッチングシステムのパラメータをいじっても、レートが正規分布からずれる気配がなかったので、プレイヤーのモチベーションを関数化することしました。実際の分布では1500付近のプレイヤー数が非常に多いことから、次の前提で順位とモチベーションに差を付けました。
前提条件
- 上位層:常に上位を目指しており、非常にモチベーションが高い
- 中位層:レート1500付近の中位層はマスボ級まで上げて終わるプレイヤーも多く、モチベーションは全体で見ても最も低い
- 下位層:勝ち続けるよりも自分の好きなポケモンで戦いたい、ひたすらレート下位を目指すなどの理由で、最上位勢ほどではないがモチベーションは高い
この前提で中位層付近が谷になるように、順位とモチベーションの関係性を定数関数と一次関数の組合せとして定義しました(下図)。

上位層、中位層、下位層の範囲がそれぞれ全体の何割くらいかと、各層の相対的なモチベーション(0.0~1.0)をパラメータとして調整できるようにしています(式の詳細は面倒な割にグラフ以上の情報量が無いので割愛します)。
モチベーションと対戦回数の関係として、最大対戦回数(ここでは300回)を毎回繰り返す中で、0.0~1.0の一様分布からサンプリングした乱数をモチベーションが超えていた場合対戦する、という形で実装しています。マッチングシステムやランダム性にも左右されますが、大まかには「最大対戦回数×モチベーション」がその順位での対戦回数になります。
シミュレーション結果
これまでに議論したモデルに、適当なパラメータを当てはめてレートの分布をシミュレーションしてみました。パラメータは下記の通りです。
- 強さ分布:
- 勝率関数:
,
- マッチングシステム:
- モチベーション関数:上記グラフの pattern 1
シミュレーションしたレート分布は↓こんな感じです。細かいとこは置いておいて、ざっくり形状は近づいたと思います。参考までに、最終レートと勝率の関係と、最終レートと対戦回数の関係も載せておきます。対戦回数はモチベーション関数に近い形ですが、勝率はシグモイド関数とは少し違った形になってますね。この辺のパラメータと分布の関係式は次回以降の記事で考察しようと思います。



あとがき
今回はポケモン対戦をモデル化してシミュレーションし、最終レート分布を実際の形状に近づけることができました。今のところはほとんどモチベーションの影響なのかな、と思っていますが、諸々のパラメータがどのように影響するのかは今後検証していきたいです。
最後にきっかけを作っていただき、また記事の引用を快く許可いただいたぴらんさん、ありがとうございました!
*1:*いくつの値からランダムと呼べるかはレート分布の影響も受けるので、0.1というのはこのレート分布を仮定した場合の基準になります。
ベイズ推定を使ってポケモン対戦とテラスタル環境を考えてみる③
記事が長すぎる気がしたので、分割しました。
↓前の記事
ベイズ推定の観点から見たテラスタル環境の難しさ
最後に現在のテラスタル環境について、ベイズ推定の観点を交えて見ていきます。
私に限らず、多くのプレイヤーがテラスタル環境に難しさを感じているのではないかと思います。私はポケモンだけでなくデュエマの動画も見る(見るだけのエアプ)のですが、どちらのジャンルでも超上位勢が「与えられた環境の最適解を探すのが本質であって、環境に強い拘りはない」と言うのをちょこちょこ耳にします。これだけだと誤解を招くかもしれないので補足すると、「自分たちはそこに楽しみを見出しているが、プレイヤーの大半はカジュアル勢であり、コンテンツが続いていくために環境は重要」というスタンスである場合が多いです。しかしながら、SVになってからはシーズン終了時のツイートなどを見ると、上位の方でも「勝てたけど正解は分からない」「モチベの維持が難しい」などの意見を多く見るような気がします。
そこで先ほどまでの議論も踏まえて、カジュアル勢までガチ勢まで感じている「テラスタルの難しさ」を考えていきます。
① 対戦で想定が必要な確率の複雑化
テラスタルの登場により、ポケモンの型の選択肢は理論上18倍に広がりました。もちろん実際にはポケモンごとにテラスタイプの偏りがあり、ここまでの幅はありません。しかしながら、同じ型のポケモンに数種類のテラスタイプを想定でき、またテラスタル無しでは成立しないような技構成、調整、持ち物のポケモンも生まれていることから、現実的にも型は数倍には広がっているのではないかと思います。またこれは役割理論的に考えた場合、1種類のポケモンが担える役割が増えていることを意味し、今まではタイプ相性の関係で絶対に崩せなかった役割関係をテラスタルは覆します。不意の氷テラスにカイリューやランドロスを倒されたり、不意のゴーストテラスに技を透かされた記憶がみなさんもあるはずです。
このようなテラスタルの影響をベイズ推定の枠組みで捉えると、確率の事前予測や更新が難しくなっている、と考えられます。今までは選出画面の並びを見て、「構築的にザシアン無理すぎるから、サンダーHBっぽいな」と予測することができました。しかしSVでは今までの要素に加えてテラスタイプも予測しなければならない上に、1匹のポケモンが持てる役割が多様化し、情報を選出画面で絞るのは非常に難しくなっています。これはベイズ推定において事前予測は複雑化したと捉えることができます。
加えてこれまでの環境であれば初手パオジアンとカイリューが対面した場合、カイリュー側に居座りの選択肢はほぼ無かったのに対し、今の環境ではテラスタルの選択肢が捨てきれません。また剣盾であればカイリューがザシアンに対して役割を持つことは難しいですが、SVではHBカイリュー後投げからの鋼テラス電磁波の動きが(強いかは別にして)成立します。テラスタル環境では確実に有利と呼べる対面は事実上存在せず、相手の行動や裏の選択肢を絞り込みきれないため、選択の根拠になるはずの確率の更新が曖昧かつ少しずつ収束していくなものになります。対戦の最終局面について考えてみても、SVではテラスタルを切らなかった2匹のテラスタイプは分からないままであり、相手の構築の確率を100%近くまで収束させることはまずできません。
② 固定されたように見える環境
ポケモンをメタゲームとして見た場合、タイプはポケモン同士の相性関係を支配する非常に重要な要素です。しかしながらテラスタルの登場により、全てのポケモンは本来であればありえない役割を持てるようになりました。その結果として種族値と汎用性の高いポケモンの需要が高くなり、使用率の上位には四災の解禁以来ほぼ同じポケモンが並び続け、BIG6などと呼ばれています。一見環境は固定化されたように見えますが、一部のポケモン間だけでメタゲームが成立するようになった、と捉えるのがより適切なのではないかと思います。以前であれば環境の変化はポケモンHOMEの使用率変動や、構築記事、選出画面での相手の並びなどで、把握することができました。しかし今ではポケモンの並びだけからはメタの移り変わりを捉えられなくなりました。相手の選出やテラスタルの切り方次第では、対戦が終わっても相手のパーティを完全には把握できず、環境を理解しきれないことも多いでしょう。ベイズ推定的に考えると、対戦中だけでなく環境の予想と更新についても、今までよりも不確実で更新に時間がかかるようになったと考えられます。
③ 時間リソースの要求
①と②では対戦中と環境の予想のそれぞれについて、ベイズ推定が難しくなっていることに触れましたが、より本質的には「環境を把握し構築の練度を上げるのに必要な時間がも増えたこと」こそがテラスタル環境に多くの人が感じる難しさの正体ではないかと考えています*1。
私は「ゲームの世界はなるべくその中で完結してほしい」と考えています。そのため課金のような現実世界の要素がゲームの中に強く影響するソシャゲはあまりやりません。カードゲームもやってみたくはあるのですが、1~2ヵ月おきに環境が変わってお金がかかることを考えてしまって手を出せていません。それに対して、ポケモン対戦は3年ごと数千円の出費で遊ぶことができ、仮に本体やソフトを複数購入しても数万円の範囲で遊び放題です。このように現実世界のステータスをゲーム内にあまり持ち込まない点は、私がポケモン対戦を好きな理由の1つでもありますし、そういう方は他にも多いのではないでしょうか?
しかしながら、ゲームと現実世界をどんなに切り離したとしても、ゲームに費やす時間だけは共通のリソースになってしまいます。そして先ほど述べたようなテラスタル環境でのベイズ推定の複雑化により、安定して勝つためには如何にポケモンに時間を使えるかの重要性が大幅に上がっているように感じます。このような状況では、私のような社会人であったり、その中でも特に家庭を持っている方、また対戦に興味を持ち始めた初心者などは、モチベーションを維持し続けるのは難しくなります。また超上位勢の視点でも、環境の把握にかかる時間が以前よりも増え、「環境の回答になる構築や立ち回りを考える」といったポケモン対戦本来の楽しみに使える時間は相対的に減っているのではないでしょうか?
あとがき
考えを言葉にするのが難しく、当初の想定よりも長い記事になってしまいました。
まとめると、カジュアル勢から見ても上位層から見ても、テラスタル環境は難しく時間がかかるものになってしまい、その背景にはポケモン対戦が持つベイズ推定的な側面があるのでは?というのが、この記事の主張になります。
当方、剣盾最終版にTwitterを初めて最高順位が700位台、さらにまともに対戦しなくなって約1年のもはやエアプです。「剣盾と比較して~」だの「環境の変化が~」だの「上位勢視点では~」だの偉そうなこと言ってますが、ほとんど想像の話です。なので今でも対戦を続けている方、実際に上位層で戦っている方、私と同じように今はあまり対戦をしていない方など、様々な方の意見をいただけると大変助かります。
ぜひTwitterなどでコメントください。
*1:ちなみに今回の趣旨とは関係ありませんが、個人的には育成について前作よりもやることが増えているのも大きいと思っています。剣盾ではとりあえずレイドを周回していればお金も鉱石類もレコードも集まって、孵化厳選さえすれば育成できていました。SVでは金策が確立され、王冠の入手難易度も下がって孵化が不要になったにも関わらず、テラピース回収はもちろんのこと、おとしもの回収、たまに孵化するときの操作性低下、など手数は増えているように感じます。時間もですが、やることの種類が多いこともまた精神的な負担感にはつながります。「うわ、このポケモンの使いてぇ」ってなってから育て始めるのに気合要るんですよね年齢のせいかもしれんけど。DLC第2弾以降はほぼ触っていないので、もしかしたら色々変わったかもです。
ベイズ推定を使ってポケモン対戦とテラスタル環境を考えてみる②
記事が長すぎる気がしたので、分割しました。
↓ 前の記事
↓次の記事
対戦の流れとベイズ推定
前置きがだいぶ長くなりましたが、本題に入っていきます。ここでは実例も交えながらポケモン対戦の流れを、ベイズ推定と照らし合わせながら見ていきます。
(最近の環境が分からないので例が古いのは許してください…。)
ポケモン対戦の流れとベイズ推定
- 選出
選出画面では相手のパーティを見て、型やテラスタイプ、どのポケモンが出てきそうかなど、具体的に何%という数値までは計算しなくても、確率を考えるはずです。これはベイズ推定で事前の予測確率を決めていることに相当します。先ほど述べたようにこの確率は主観的に設定してもよく、実際にプレイヤーは、ポケモンHOMEのデータ、前シーズンまでの構築記事、これまでの対戦経験、相手のTNや順位帯など、ありとあらゆる事前情報を使って相手のパーティの中身を予測し、自分の選出を決めます。
例:相手のパーティにコータスとスコヴィランと古代ポケモンが並んでいる。晴れパの可能性が高いから、初手コータスと裏のエースをケアして選出する。 - 初手対面
ここでは相手の初手ポケモンが何かと、場合によってはその特性や持ち物が分かります。プレイヤーは相手の初手を見て「初手だから起点作成型っぽいな」「これだとこっちの初手〇〇が受からないから裏に××がいるだろう」「こいつがブエナ持ちだから他のパラドックスは違う持ち物だな」などと考え、選出画面で予測した様々な確率を修正します。ベイズ推定的にはこれが1回目のデータの観測と確率の更新です。
例:初手のブエナカミを見て、電磁波撒きからのムラっけスコヴィランの可能性を選出画面よりも高めに見積もる。 - 1回目の行動
相手の初手も踏まえて自分の行動を選択し、相手も同様に行動してきます。相手の選択や互いの攻撃のダメージ量から、対面のポケモンの努力値配分が分かり、そのポケモンの型や裏のポケモンも予測が更新されます。これが2回目のデータの観測と確率の更新です。ここで注目してほしいのは初手で更新した後の確率を新しいデータでまた更新している点です。先ほどのツツミとガブの例で示したように、2回目以降の推定では、前の推定の結果を更新していきます。
例:相手のカミが電磁波を選択してきた。ムラっけの可能性をさらに高く修正する。 - 2回目以降の行動
やることは1回目の行動と同じで、以降、行動の選択→結果の観測→確率の更新→行動の選択…、の流れを繰り返します。
例:2ターン目に相手のカミは祟り目を使い、自分の攻撃で倒れた。互いのダメージ量から、最速BSで死ぬ気で上から電磁波を撒く型だったことがなんとなく分かり、案の定スコヴィランが出てくる。この時点でムラっけの確率を99%に引き上げる。実際に3ターン目にはみがわりを張ってきて、ムラっけが発動したことで確率は100%に収束。
このようにポケモン対戦では、選出画面で相手の型や選出の確率を予測し、対戦中の表示やダメージ量などから、その確率をどんどん絞り込んでいきます。実際に勝負が決まる最終ターンには、相手のポケモンの努力値配分や技構成、持ち物をほぼ把握できていると思います。先ほどの粉ガブ率の推定では事前の確率にもデータの更新にも具体的な数値を用いたのに対し、対戦においてはいずれも非常に主観的・感覚的なものにはなりますが、データを繰返し取得して確率を収束させていく、という観点で見ればポケモン対戦はベイズ推定そのものではないか、というのがこの記事で主張したい仮説です。例ではコータス入りのスコヴィラン偽装パーティを取り上げました。このような偽装構築はベイズ的には「選出画面での相手の確率予測を狂わせる」パーティだと解釈できるかもしれません。
上位勢や実況者の方が「期待値を計算して立ち回ることが大事」と言うのをよく聞きます。期待値というと技の命中率や行動できる回数など数値の話になりがちですが、より本質的には、ベイズ推定的な主観による確率も重要なのではないかと思います。技威力などの期待値については強さに関わらず、定義さえ分かっていれば計算結果は同じ値になります。しかし、相手の型や選出、選択してくる行動の確率は、非常に感覚的・主観的なものでプレイヤーの経験値に依存するものであり、これが立ち回りの強さに直結します。また将棋や囲碁であれば相手の取りうる選択肢はルールで決まっており、そこに確率的な要素は存在せず何手先まで読めるかの勝負になります*1。しかし、ポケモンでは相手の選択肢すら自分からは確率的にしか把握できず、何手先まで読むかよりも、相手の行動だけでなく選択肢をどう読むか、の色が濃くなります。私はここがポケモン対戦の特徴の1つであり、面白さだと思っています。
構築とベイズ推定
対戦中に限らず、構築を組むときの環境予想にもベイズ推定的な部分があります。新シーズンに初めてランクマに潜る前には、ポケモンHOMEの使用率、前シーズンの構築記事、さらにはそこに対するメタを考えて環境を予想するはずです。特に新ルールの初めのシーズンでは、このようなデータもほとんど無いため、前のルールの環境に対して新ポケモンの性能を追加するような形で環境を予想します。そしてこのように予想した環境で勝てるように考えた構築を手に「やっぱり俺って天才だわ」と思いながらランクマに潜って、大体負けます。そして「そんなびっくりテラス俺にしかささんねーよ、クソ環境すぎるだろ」などと文句を言いながら構築を修正し、以下月末までこのプロセスを繰り返します。
このような試行錯誤についても、環境の予想を事前の確率予測、実際に対戦して環境を把握することをデータの観測、それによって環境を考え直すことを確率の更新だと考えると、構築を組むこともベイズ推定の繰り返しに基づいていると考えられないでしょうか?対戦中との違いとしては、対戦中は相手の6匹を把握した上で、一匹一匹の型や選出を確率的に予想するのに対し、環境自体の予想では各ポケモンについて数の多さや、他のポケモンとの組合せなども合わせて予想する、という部分になります。その分だけ多くのことを考慮しなければいけませんが、対戦中の選出や立ち回りなどの想定はある程度アバウトでもよくなります。
このようにポケモンでは、対戦中は「相手の型と立ち回りの予測→行動の選択→盤面から予測を更新→…」、構築時は「環境の予測→構築の考案→対戦して予測を更新→…」という形で、確率のベイズ推定と勝率の高い選択を繰り返します。もちろん予測した確率に対する回答もセットであり、そこが1番面白い部分ではあるのですが、ポケモン対戦はベイズ推定的であると言えるのではないでしょうか?ポケモンプレイヤーの強さについても、プレイングと構築力の2点で言及されることがありますが、「対戦の流れと環境のベイズ推定のどちらがより得意か」と言い換えることもできるかもしれません。
ベイズ推定を使ってポケモン対戦とテラスタル環境を考えてみる①
まえがき
お久しぶりです!
前回の構築記事から約1年半ぶりの記事になります。笑
ポケモンSVが発売して1年以上が立ちましたが、対戦をある程度やっていたのは去年の2月くらいまでで、最近はほとんどやっていません。しかし仕事で使ったり使わなかったりするベイズ推定を勉強をしていたところ、ポケモン対戦はベイズ推定そのもので、テラスタルの難しさもそこにあるのでは?との仮説が自分の中に生まれました。「ポケモン ベイズ」等でざっと検索したところ、NPCの挙動やリザXY検定にベイズ推定を適用する記事はありましたが、ポケモン対戦そのものがベイズ推定であるという主張は見当たらず、起源主張する記録に残すため記事を書くことにしました。
記事の流れとしては、ベイズ推定とは何か、ポケモン対戦とベイズ推定の関係、テラスタル環境をベイズ的に考える、の順で進めていきます。便宜上、数式や計算も入りますが、なるべくそこを理解しなくても分かるように書いたつもりなので、計算の意味が分からなくても飛ばして読み進めてもらえればと思います。
また、統計に詳しい方で途中の計算やベイズの解釈など、怪しい部分があれば指摘いただけるとありがたいです。
2024/7/29追記
記事が長すぎる気がしたので、分割しました。
↓次の記事
ベイズ推定について
ベイズの定理
ベイズ推定はベイズの定理を利用して、事前の予測と実際に観測したデータから事象の確率を推定する手法です。ベイズさんが提唱したからベイズの定理で、次の式で表します。
ここではBが起きた時のAの確率であり、
はBが起きるかを考えないAの確率を指します*1。
ここでは式の意味や詳細にはこれ以上立ち入らない、というか私も完全には説明できないため割愛します。気になる方は詳しい本やウェブサイトをご覧ください。
計算例
とはいえ、このままではよく分からないと思うので計算例を示します。私が勉強した参考書では数Ⅰの問題で出るような赤玉白玉を取り出す問題でしたが、いまいちピンときませんでした。そこでポケモン対戦を例に説明します。必ずしも計算の中身を追う必要はなく、条件をどう変えたら結果がどう変わるか、を理解していただければ十分です。
計算の前提
- 「テツノツツミでガブリアスに向かってハイドロポンプを打ったら外した」という状況を考える
- ガブリアスの持ち物が光の粉である確率を「粉ガブ率」と呼ぶ
- ハイドロポンプの略称は「ドロポン」とする
- 事前情報としてポケモンHOMEでのガブリアスの光の粉採用率が15%であることが分かっている
- ドロポンの命中は80%、光の粉の効果で技を避ける確率は10%、粉ガブにドロポンが当たる確率は80% × 90% = 72%
- 面倒なのでガブの特性と天候は考慮しない
以上の前提のもと、「技を外した後の粉ガブ率」を推定していきます。先ほどのベイズの定理において、Aは相手が粉ガブであるかどうか、Bをドロポンが当たったかどうか、として計算します。求めていくのは、「ドロポンが外れた時に、相手が粉ガブである」確率なので、数式でいうとになります。
このように、1回技を外す、という前提が加わることで粉ガブ率は15→21%に上昇しました*2。「技を外したら相手の粉ガブ率が上がった」というのは感覚的にも理解できると思います。一方で皆さんが実際にドロポンを外したら「うーわ、こんなん99%粉ガブやん。こんなクソ環境の運ゲーやってられるかよ。」と思うことでしょうが、ベイズ推定的には6%しか上がっていません。現実を見ましょう。
ベイズ推定の重要な点
この例を中心に、私がベイズ推定で重要だと思う点を3つに分けて整理していきます。
① 事前の情報が計算結果に影響する
先ほどの計算式には、ポケモンHOMEで見た光の粉採用率が15%であることが入っています。つまり、この値が変わればデータ観測後の確率も変わります。実際に0.1%の場合も計算してみましょう。
0.1%では技を外した後の確率もあまり変わりません。実際に対戦で技を外しても粉の採用率がほぼゼロだと分かっていれば「うわ20%引いたか、やっぱツツミってクソだわ」と自分のポケモンのせいにすることでしょう。このように当たり前ですが、事前の確率が大きいほど事後の確率も大きくなります。
しかし、実際に起こって一番イライラするのは採用率が10~30%くらいで外したときではないでしょうか?ベイズ推定からは人間が理不尽な生き物であることも分かります。
② 事前の予測は推定する人の自由
結果に大きく影響する事前の予測ですが、この確率をどう設定するかは客観的なデータである必要はなく、推定する人の自由であり、これがベイズ推定の面白いところです。先ほどはポケモンHOMEの採用率というそれっぽい値を使いましたし、実際に参考にしながら対戦する人も多いでしょう。しかし「HOMEの採用率はこれくらいだけど、このランク帯だともっと多いよな」や「最終日付近やたら増えてきてるな」などと対戦中に思うことはありませんか?ベイズ推定ではそう思ったら事前の予測確率を主観で好きに設定してかまわないのです。
③ 観測を重ねて結果が更新されていく
結果は観測データの中身や観測の回数によっても変わります。ここでは3回連続でドロポンが外れたとして計算してみましょう。
このように何度も確率の更新する際には、前の試行で更新された確率を次の試行での事前の予測として使い、実際に3回連続で外した後の粉ガブ率は15→41%まで上昇します*3。3回も連続で外したら、私ならは相手が粉ガブだと200%確信し、ブチ切れて台パンしますが、ベイズ的にはまだ50%以下の確率です(もっと言うと脚注に書いている通り、41%でも過大評価です)。
ポケモン対戦では何百回もの試行を重ねることはまずありませんが、ドロポンを打ち続ければ命中率は理論値(粉ガブなら72%、そうでなければ80%)に収束していくことが期待されます。それに合わせて、ベイズ推定の結果についても事前予測の影響は小さくなり、実際に観測したデータでほぼ決まるようになります。
以上をまとめると、推定する人が自由に予測した事前の確率とデータの観測結果や回数によって事後の確率が変わるのがベイズ推定です。
以降の記事では、ここで簡単に説明したベイズ推定の考え方を使って、ポケモン対戦について考察をより進めていきます。
*1:厳密には全てのBの可能性を考慮したAの確率、と言うのが適切ですが、分かりにくくなるのでBを無視した確率として、以下の計算でもその前提のもと近似して行います。
*2:正確には分母のは事前確率を加味して28%×15%+20%×85%=21.2%を用いるのが適切ですが、今回は分かりやすさを重視して、事前確率をある程度小さい値に抑えた上で通常のドロポンが外れる確率をそのまま使っています。ちなみに21.2%で計算した場合の事後確率は19.8%になります。私も当初は20%のままずっと計算していたのですが、事前確率90%のときに事後確率が126%になって間違っていることに気が付きました。ただ実際に粉ガブが90%いる環境でドロポンが外れたら120%くらいの確信度になるので、感情論的には正しい気もします。
*3:先ほどと同様に本来は分母の数値を事前確率に合わせて変えるべきです。分母の数値を変えながら計算した場合の最終的な粉ガブ率は36%になります。もはや事前確率が小さくもないし、結果が5%も乖離していて無視できない領域ですが、今回はは常に20%という前提を貫きます。
【剣盾S33/最終727位/R1819】ゲロゲバドザシ
初めまして!
初最終3桁&R1800↑を達成したので、前から書いてみたかった構築記事を書くことにしました!
テンプレ寄りの構築で、順位もそんなには高くないですが、初3桁の至りだと思って許してください。


【構築経緯】
コンセプト
・バドザシでサイクルする → ゲロゲの初手ダイマで制圧する。
・ゲロゲだと重いナット、トドン、貯水ゲロゲは他の5匹の圧で選出させない。
前期は(というよりもダイマ無しルールのころから割とずっと)、アスビ/鬼火/みがわり/宿木の残飯黒バドを使っており、ランドガエンと組み合わせた威嚇宿木サイクルを楽しんでいた。ただ鬼火宿木の命中不安が常につきまとうため、せっかく命中威力安定の高火力技があるのになんだかなぁと思い、今期はオーソドックスなスカーフ黒バドを使うことに決めた。スカーフ黒バドの調整が分からなかったため、前期4位の方の構築を勝手に参考にして(ありがとうございました)、ミラー意識でザシアンと黒バドのSを露骨に1だけ上げるなど、調整や技構成を少し変えて使用した。
一般枠では、ガエンとゲロゲは皆勤賞。本来は貯水ゲロゲでサイクルを回すつもりだったが、なんとなく入れてみた特殊珠ゲロゲがあまりに強いため、いつの間にか初手ダイマ構築になっていた。残り2枠は水ウーラやランドから始まり、襷サンダー、残飯ガラルサンダー+最速眼鏡レジエレキ(雷採用)などの迷走を経て、悪ウーラとHBサンダーに落ち着いた。それぞれラキヌオーとホウオウに強く出れるのと、ゲロゲの苦手なナット等に選出画面で圧力をかける意味も込めて採用。
【個体紹介】
ザシアン

持ち物 :くちたけん
性格 :いじっぱり
特性 :ふとうのけん
実数値 :197(236)-231(156+)-138(20)-×-136(4)-180(92)
H:ほぼ最大、6n-1
A:11n
B:メタモンの巨獣、A特化ザシアンの巨獣石化を意識してあまりB振り
S:110族抜き抜き、遅いザシアン大体抜き、自分の黒バド抜かれ
技構成 :きょじゅうざん / じゃれつく / インファイト / でんこうせっか
文句なしの最強ポケモン。雑に強いし、鋼とフェアリーの枠を自然に埋められるのもよい。
少しAを落としてSに割き、あまりはメタモンと遅いザシアンを意識したのと、メタモンを黒バドで倒せる確率が少しでも上がれば、とBに振った。実際にメタモンの巨獣を耐えたことが何度かあったので意味はあったと思う。
バドレックス(こくばじょうのすがた)

持ち物 :こだわりスカーフ
性格 :ひかえめ
特性 :じんばいったい
実数値 :185(76)-81-129(228)-220(116+)-121(4)-181(84)
A:最低(個体値0~3)
HB:A242ザシアンの+1巨獣15/16耐え
C:11n
S:自分のザシアン抜き
技構成 :アストラルビット / ワイドフォース / ちょうはつ / トリック
構築の本来のコンセプト。ザシアンと同様、雑に強かった。
エスパー技にはダイサイコから高火力で殴り続けられるワイドフォースを採用したが、ゲロゲと合わせて選出するとチョッキ持ちの高耐久伝説が重くなってしまった。せっかくトリック+挑発でラッキーにも強く出れるので普通にショックでよかった。トリックはあまり積極的には打たなかったが、今考えるともっと上手く使えればもっと勝てたと思う。

持ち物 :たべのこし
性格 :のんき
特性 :いかく
実数値 :201(244)-135-139(132+)-×-127(132)-72
S27で育てた流用個体(調整意図は忘れた)
バークアウトを採用していた名残でS下降の6V個体
技構成 :フレアドライブ / DDラリアット / とんぼがえり / ほえる
始めは捨て台詞を採用していたが、相手の挑発で対面操作ができなかったり、襷の可能性を潰しておきたかったことが何度かあり、蜻蛉に変更。また身代わりゼルネやジガルデにサイクル不利をとることが多かったため、挑発の枠を色々と誤魔化せる吠えるに変更。この技構成になった。
実際に吠えた回数は少なかったが、ガエン後出しで吠えればいいや、とジガルデ入りにも初手ゲロゲを安心して投げられるようになったのはとてもよかった。

持ち物 :いのちのたま
性格 :ひかえめ
特性 :すいすい
実数値 :179-90-95-150(252+)-96(4)-126(252)
CSぶっぱ
H:10n-1(個体値28 or 29)
A:一応最低(個体値0~3)
D:申し訳程度のDL意識
技構成 :ハイドロポンプ / だいちのちから / こごえるかぜ / ステルスロック
現蛙神。自分だけが使える3体目の伝説枠。
あらゆる伝説やサンダー、ランドとダイマの打ち合いで勝てる化け物。途中まではナットを選出されると辛かったが、ウーラオスとサンダーを採用してからは1回も出てこなかった。トリトドンや貯水ゲロゲもほぼ選出されなかった。
初めはサブウエポンにくさむすび採用していたが、役割対象の水無効組は選出されにくいのと、オーガはダイアースで殴りあえばよいと考え、すばやさ操作のできるこごかぜに変更。死に出しのイベルに対して、ウォール→こごかぜで素早さを上げさせないで裏のザシアンで倒すなど、立ち回りの幅が広がった。S27終了後に今日ポケchでバンビーさんが言っていた意味が半年かけてようやく分かった。
ついでにジガルデもダイアイスでワンパンできるようになった。「雨ストリーム1回は耐えるから睨むで~(^^)」みたいな顔で出てきたジガルデを吹き飛ばすときが1番気持ちいい。相手のガエン→ジガルデ→ザシアンを3タテしたときはさすがに笑った。
電磁波も鬼火も効かないので、初手ミミッキュに不利をとりにくいのもよかった。相手の行動次第ではこごかぜ→ダイストリームで起点にもできる。途中からよく見かけるようになった初手の襷ガブも同じやり方で起点にできたりする。
元々Hは10n-1にしていたが、ポリ2等のイカサマを被弾することが多かったのでA0で厳選しなおした。たぶんそこまでしなくていい。
ウーラオス(いちげきのかた)

持ち物 :きあいのたすき
性格 :いじっぱり
特性 :ふかしのこぶし
実数値 :175-200(252+)-121-×-80-149
ASぶっぱ
技構成 :あんこくきょうだ / インファイト / ちょうはつ / ふいうち
受け対策、特にラキヌオー意識で採用した。
受け相手だけでなく、初手を決めきれないときに雑に投げられたのもよかった。
黒バド+ラキヌオーのような選出をされると役割過多になってしまい、ゴツメダメなどでゴリゴリHPが削れていく。場持ちのよくなるオボンor防護パッドの採用も割と真面目に考えた。
カウンターが欲しいこともあったが、相手が勝手に警戒してくれることも多く、強打orインファ+不意のリーチが結構長いので、個人的には無くてもいいと思う。
サンダー

持ち物 :アッキのみ
性格 :ずぶとい
特性 :せいでんき
実数値 :197(252)-×-150(252+)-145-110(4)-120
HBぶっぱ
技構成 :ぼうふう / ほうでん / みがわり / はねやすめ
主にホウオウがキモい重いため採用。運ゲーの申し子。
ホウオウ入りにはしっかり仕事をしてくれたし、ついでにザシアンにも強く出れるのがよかった。珠以外のホウオウは完全に受けきることができ、珠でもジェットに後出しすればダイマターンを枯らしつつ1回の放電チャンスくらいは狙える。役割対象が引っ込んだ後に出てくるポケモンに放電バグを狙いにいけるみがわりも偉い。
どれだけ効果があったか分からないが、選出画面で特殊珠ゲロゲから意識を逸らす狙いもあり。
【あとがき】
去年伝説ルールが始まり、相手のゲロゲに何度もボコボコにされて「このクソキモドブガエルポケモンがぁ!!」とブチ切れていた頃が懐かしい。まさかそのゲロゲが初3桁に導いてくれるとは思わなかった。今では好きなポケモンの1匹になったので、来シーズンも(内定してたら)9世代もたぶん使います。
相手していてキツかったのは断トツでチョッキレシラム。ダイマされたら対面で勝てるポケモンが1匹もいない。勝った試合は、初手ゲロゲvsレシラム → ガエンでダイソウゲンを受ける → ザシアンでダイドラグーンを透かす → ガエン切り → 死に出しゲロゲダイマ、で無理やり押し切った。ソラビ+大地だと受けようが無いが、珠ダメが入らなかった時点できっとチョッキだしシャドボ採用だろう、と割り切るしかなかった。
ちなみに草技持ち珠ゲロゲもかなり重い。初手に出される相手のゲロゲは去年と変わらないクソキモドブガエルポケモンのままだった。