ガイド

この計算は正しいの?

このサイトは「実力推定」「運の指標」「トップ確率」などの数字を出しています。でも、計算の手順がもっともらしく見えても、プログラムの誤りや思い込みがあれば、数字は信用できません。このページでは、それらの数字が本当に正しく働いているかを確かめた結果を、できるだけ専門用語を使わずに説明します。

確かめ方は、統計学の論文で使われている方法を借りています(最後に一覧を載せています)。合格ラインは結果を見る前に決め、不合格だったものも、見つかった弱点も、そのまま書きます。計算の手順そのものは計算方法の詳しい解説にあります。

検証の結果のまとめ(2018-19〜2025-26の完了したシーズン)
確かめたこと確かめ方結果
実力推定と90%区間答えを決めた架空のシーズンで答え合わせ✓ 合格
実力推定の予測力シーズン前半の成績から後半を当てる✓ 合格
運の指標に実力が混ざっていないかデータの持ち主をかき混ぜて比べる✓ 合格
トップ確率・ラス確率「30%」と言った局面の3割で本当にそうなったか✓ 合格

1. 答えが分からない問題を、どう確かめるか

検証でいちばん困るのは、選手の「本当の実力」は誰にも分からないことです。答案はたくさんあるのに、模範解答がないテストのようなものです。「この推定は正しいか」を、正解と見比べて確かめることができません。

そこで、正解が分からなくても確かめられる方法を4つ使いました。

方法たとえると
架空のシーズンで答え合わせ(2章)答えを知っている練習問題を解かせて、採点する
前半で後半を当てる(3章)天気予報を、次の日の天気で答え合わせする
データをかき混ぜて比べる(4章)名札をはがしてシャッフルし、貼り直しても同じ結果になるかを見る
予報の当たり具合を見る(5章)「降水確率30%」の日に、本当に10回中3回くらい雨が降ったかを見る

2. 架空のシーズンで答え合わせをする

本物のデータでは答えが分からないので、答えをこちらで決めた架空のシーズンを作ります。その架空のシーズンにサイトと同じ計算をして、決めておいた答えを当てられるかを見ます。

手順(架空のシーズン1回分)

  1. 実際の対戦表(誰と誰が同じ卓に座ったか)を、そのまま使う。
  2. 各選手に、こちらで決めた「本当の実力」を割り当てる。
  3. 1試合ごとに、過去の本物の試合の点数を1つ選ぶ。それを、実力が高い人ほど上の順位を引きやすいくじで4人に配る。
  4. できた架空のシーズンに、サイトと同じ計算をして、実力推定と90%区間を出す。
  5. 「本当の実力」が90%区間の中に入った選手の割合を数える。

これを、選手の実力差の大きさを6通りに変えて、それぞれ1,000回くり返しました。

90%区間は、「本当の値はこの範囲に入っているはず」という幅です。正しく作れていれば、どんな世界でも9割以上の選手で、本当の値が区間に入るはずです。結果は次のとおりでした。

架空の世界の実力差平均着順ポイント以前の区間(平均着順)
実力差なし100%100%100%
実データの推定の半分99%99%98%
実データの推定と同じ91%92%94%
実データの推定の1.5倍90%90%88%
実データの推定の2倍93%92%87%
実データの推定の3倍94%94%89%

※ 数字は、本当の値が90%区間に入った選手の割合。90%以上なら合格です。「実データの推定」は、本物のデータから推定した選手の実力差の大きさです。

この検証で見つかった弱点と、その直し方

表の右の列は、このサイトが以前使っていた区間の結果です。実力差が大きい世界では、本当の値が区間に入った選手が87%しかなく、区間が狭すぎることが分かりました。

原因は、実力推定が「リーグ平均に引き戻した値」であることです。本当に強い選手ほど、推定値は本当の実力より平均寄り(控えめ)に出ます。弓矢でたとえると、的の中心から少しずれた所を狙っているようなものです。以前の区間は、このずれを計算に入れずに幅を決めていました。

そこで、経済学の論文(Armstrong ほか, 2022)の方法に切り替えました。この方法は、ずれがいちばん大きくなる場合でも9割を守れるように、区間を少しだけ広げます。切り替えた後は、表のとおりどの世界でも9割以上に入るようになりました。

※ その代わり、平均着順やポイントの区間は以前より広くなりました(1シーズン分で、平均着順なら±0.08着から±0.13着ほど)。副露率のように選手の違いがはっきりしている指標は、引き戻しがほとんどないので、区間はほぼ変わりません。

同じ架空のシーズンで、区間の土台になる「選手の実力差の大きさ」の推定も確かめました。実データと同じくらいの実力差の世界で、推定は平均着順で5.8%、ポイントで8.3%しか偏っておらず、推定の幅(90%区間)は、平均着順で87%、ポイントで91%の回で本当の値を含みました。

3. 前半の成績から後半を当てる

実力推定が本当に「実力」を表しているなら、まだ見ていない試合の成績をよく当てるはずです。そこで、各シーズンを前半と後半に分け、前半のデータだけで後半の成績を予測しました(のべ223人)。予測に使う設定も、予測するシーズン以外のデータだけで決めています(答えを見ながら予測しないため)。

予測のしかた平均着順の外れ幅ポイントの外れ幅
前半の実績をそのまま使う0.406着16.1pt
全員リーグ平均と予測する0.299着12.2pt
実力推定(このサイト)0.300着12.2pt
運を除いた実力推定(このサイト)—12.2pt

※ 外れ幅は、予測と後半の実際の成績(1半荘あたり)の差を平均したもの(二乗平均平方根)。小さいほど良い予測です。後半の成績にも運が入るので、完璧な予測でも0にはなりません。

前半の成績をそのまま信じると、外れ幅がはっきり大きくなります。前半に好調だった選手は、後半は平均に近づくのが普通だからです。このサイトの実力推定は、「全員リーグ平均」と予測した場合とほぼ同じ精度でした。半シーズン分のデータでは、実力推定がほとんどリーグ平均と同じ値になるためです。

これは一見がっかりする結果ですが、実は大事な裏づけです。「実力推定がいつも平均に近いのは、計算が慎重すぎるからでは?」という疑問に対して、平均に大きく引き戻すほうが、実際に先の成績をよく当てるという答えになっているからです。

4. 運の指標に実力が混ざっていないか

4.1 名札をシャッフルして比べる

「ツモの良さ」などの運の指標は、どの選手でも平均0になるように作っています。ところが、もし測り方を間違えて実力が混ざっていたら、たとえば牌効率の上手な選手がいつも「ツモが良かった」ことになってしまいます。そうなっていないかを、次の方法で確かめました。

手順

  1. 選手ごとのシーズン平均を比べ、「偶然では説明できない選手の差」がどれくらいあるかを計算する。
  2. 同じシーズンの中で、データから選手の名札をはがし、シャッフルして貼り直す。貼り直した後で、同じ計算をする。
  3. これを999回くり返し、貼り直した方が差が大きくなった回数を数える。

名札をシャッフルすれば、選手と運の結びつきは完全に切れます。それでも本物と同じくらいの差が出るなら、本物の差も偶然の範囲ということです。逆に、本物の差がシャッフルした999回のほとんどより大きければ、その指標には選手ごとの差(=実力や打ち方)が混ざっています。この「シャッフルの方が大きかった割合」がp値で、小さいほど「選手の差が本当にある」ことを示します。

運の指標p値選手の差
配牌の良さ(向聴数)0.174見つからない
配牌のドラ・赤1.000見つからない
ツモの良さ1.000見つからない
裏ドラ運(枚/リーチ和了)1.000見つからない
一発率(/リーチ)1.000見つからない
運による獲得ポイント(/半荘)1.000見つからない

※ p値が0.05より小さければ「選手の差あり」と判定します。6つの指標をまとめて調べているので、偶然どれかが引っかかる分を補正しています(Holm法)。

「差が見つからない」ことが、検定のしかたが甘いせいではないことも確かめました。選手ごとに違いがあると分かっている打ち方の指標に、同じ検定をかけています。

比較用の指標(打ち方)p値選手の差
放銃率0.003あり
副露率0.001あり
立直率0.001あり

打ち方の指標でははっきり差が見つかり、運の指標では見つかりませんでした。この検定には差を見つける力があり、そのうえで運の指標には実力が混ざっていない、ということです。

※ 事前に決めた合格ラインでは、比較用の指標は「999回すべてのシャッフルより差が大きいこと(p = 0.001)」でした。放銃率はp = 0.003で、差ははっきり見つかっていますが、このラインには届かなかったので「不合格」と記録しています。ラインが厳しすぎました。

4.2 運の補正は本物か

「運を除いたポイント」は、運の指標を使って、1試合ごとのポイントのばらつきを20%減らしています。でも、ばらつきが減ったのは運の情報のおかげではなく、計算のしくみ自体のせいかもしれません(どんなデータを入れても、少しは減ってしまう、など)。

そこで、運の指標をでたらめに入れ替えてから同じ計算をしました。199回試して、ばらつきの減り方は平均-0.0%で、ほぼ0でした。ばらつきが減るのは、運の指標が本当に運を捉えているからです。

5. トップ確率は当たっているか

5.1 「30%」と言った局面の3割でトップになったか

試合ページのトップ確率は、天気予報の降水確率に似ています。「降水確率30%」は、そういう予報が出た日を集めると、10日のうち3日くらい雨が降る、という意味です。同じように、トップ確率30%と出た局面を全部集めて、そのうち本当にトップになった割合が30%くらいかを調べました。

0%25%50%75%100%0%25%50%75%100%予測した確率予測 0% → 実際 0%(90%の範囲 0%〜0%)予測 10% → 実際 10%(90%の範囲 9%〜11%)予測 20% → 実際 20%(90%の範囲 20%〜22%)予測 30% → 実際 30%(90%の範囲 28%〜32%)予測 40% → 実際 39%(90%の範囲 37%〜41%)予測 50% → 実際 46%(90%の範囲 44%〜49%)予測 60% → 実際 57%(90%の範囲 54%〜60%)予測 70% → 実際 69%(90%の範囲 66%〜74%)予測 80% → 実際 78%(90%の範囲 74%〜82%)予測 90% → 実際 88%(90%の範囲 86%〜91%)予測 100% → 実際 100%(90%の範囲 100%〜100%)
トップ確率。横軸が予測した確率、縦軸が実際にそうなった割合。青線が斜めの点線に重なっていれば、予測どおりの頻度で起きています。網掛けは、データの偶然のぶれを考えた範囲。
0%25%50%75%100%0%25%50%75%100%予測した確率予測 0% → 実際 0%(90%の範囲 0%〜0%)予測 10% → 実際 11%(90%の範囲 9%〜12%)予測 20% → 実際 21%(90%の範囲 19%〜22%)予測 30% → 実際 31%(90%の範囲 29%〜32%)予測 40% → 実際 39%(90%の範囲 37%〜41%)予測 50% → 実際 49%(90%の範囲 46%〜51%)予測 60% → 実際 60%(90%の範囲 57%〜62%)予測 70% → 実際 67%(90%の範囲 64%〜70%)予測 80% → 実際 77%(90%の範囲 74%〜79%)予測 90% → 実際 86%(90%の範囲 84%〜90%)予測 100% → 実際 100%(90%の範囲 100%〜100%)
ラス確率。見方はトップ確率と同じです。

どちらも、青線はほぼ斜めの線に沿っています。予測の外れのうち、「予測を直せば減らせるずれ」の分は、トップで0.2%、ラスで0.2%しかありませんでした。残りの外れは、麻雀の結果そのものの偶然によるもので、どんなに良い予測でも避けられません。

※ 曲線は、確率を10%ずつの区切りに分けて数える代わりに、「予測が高いほど実際も高い」という形を保ったまま最もよく当てはまる線を引く方法(CORP)で描いています。区切り方で見た目が変わらないのが長所です。

5.2 データが多く見えても、情報は多くない

この検証には94,200件のデータ(各局の開始時点 × 4人)を使いました。ずいぶん多く見えますが、同じ試合の局はすべて、「最後に誰がトップになったか」という同じ答えを共有しています。 1試合から約49件のデータが取れても、答えは1つです。計算してみると、独立なデータに直した情報量は、1試合あたり約9件分しかありませんでした。

これを無視すると、「こんなにデータがあるのだから、ぶれは小さい」と思い込んでしまいます。図の網掛けの範囲は、局ではなく試合を単位にくじ引きし直して計算しています。

5.3 まだ残っている気になる点

さらに厳しく、「予測が正しいとしたら、この程度のずれは偶然で起こるか」を検定しました。 1試合から1局だけを選んで独立なデータにし、予測した確率どおりに結果を999回作り直して、本物のずれと比べます。

ラスはp = 0.546で合格でした。トップはp = 0.095で、合格ライン(0.05より大きいこと)に届きませんでした。予測が30〜40%あたりの局面で、実際のトップ率がやや低めに出ています。

ただし、この結果は1試合からどの局を選ぶかで大きく変わります。局の選び方を変えた別の20通りでは、p値が0.05を下回ったのは1通りでした。ずれがあるとしても小さいので、今のところ予測は直さず、記録を続けています。

6. この検証で分からないこと

検証にも限界があります。数字を読むときに、頭の片隅に置いてください。

限界内容
架空のシーズンは仮定で作っている2章の架空のシーズンは、「実力はシーズン中一定」「強さは上の順位の引きやすさに表れる」という仮定で作っています。本物の麻雀がこの仮定から大きく外れていれば、検証も的外れになります。
「差が見つからない」は「差がゼロ」ではない4章で運の指標に選手の差が見つからなかったのは、「今のデータで見つかるほどの差はない」という意味です。ごく小さな実力の混ざりは見逃している可能性があります。
たくさんの基準を同時に見ている合格ラインは全部で29個あります。これだけ多いと、本当は問題がなくても、偶然1つくらい不合格が出るのは自然なことです。
過去のシーズンだけで確かめている検証に使ったのは2018-19〜2025-26です。ルールや選手の顔ぶれが大きく変われば、結果も変わりえます。
順位確率(シーズンの予想)は未検証1シーズンにつき結果は1回しかないため、過去の8シーズン程度では、当たり具合を確かめる材料が足りません。
トップ確率は全体の当たり具合だけ5章は、全局面をまとめた当たり具合です。「オーラスで大きくリードしている」など、特定の場面ごとの精度までは確かめていません。

※ 検証は毎朝のデータ更新のたびにやり直しています。新しい試合が加わると、数字や判定が変わることがあります。

コラム:なぜ結果を見る前に合格ラインを決めるのか

「どんな結果なら合格か」を、このサイトでは検証を実行する前に文書で決めています。理由は2つあります。

  1. 後から決めると、どんな結果でも「合格」にできてしまう。壁に矢を放ってから、刺さった所を囲むように的を描けば、必ず真ん中に当たったことになります。結果を見てから基準を選ぶと、知らず知らずのうちに、これと同じことをしてしまいます。
  2. 不合格を隠さない約束になる。先に基準を公開しておけば、都合の悪い結果が出ても、基準を黙って動かすことができません。このページで不合格の項目をそのまま載せているのも、そのためです。

正直な例外

とはいえ、このサイトでも一度、結果を見た後で基準を変えました。2章の架空のシーズンの検証です。最初に決めた基準の1つは、「区間の中で本当の値がどこに来たか」の散らばり方を見るものでした。ところが、この基準は理屈の上で、このサイトのような計算には当てはまらないことが後から分かりました(正しい計算でも不合格になりうる基準でした)。

そこでこの基準を外し、代わりに「実力差の大きさを変えたすべての架空の世界で、本当の値が区間に入る割合が87%以上」という基準を置きました。新しい基準は、以前の区間には厳しい方向の変更です。以前の区間は、新しい基準でも不合格(最低87%)になります。変更の前後の基準と結果は、公開している検証データにも残しています。

いま合格ラインに届いていない項目

  • 放銃率(陽性対照): p:0.003(合格ライン:0.001(全並べ替えを上回る))
すべての合格ラインと判定の一覧(29項目)
項目値合格ライン判定
平均着順: 90%区間の被覆率(τ=τ̂)0.9130.87〜0.93✓ 合格
平均着順: 被覆率の最小(τ=0.5〜3τ̂)0.9020.87以上✓ 合格
平均着順: 被覆率(τ=0)10.90以上✓ 合格
平均着順: 真の分散の推定の偏り(中央値、τ=τ̂)-0.058±15%以内✓ 合格
平均着順: kの90%区間が真のkを含む割合(τ=τ̂)0.8650.80以上✓ 合格
ポイント: 90%区間の被覆率(τ=τ̂)0.9200.87〜0.93✓ 合格
ポイント: 被覆率の最小(τ=0.5〜3τ̂)0.9020.87以上✓ 合格
ポイント: 被覆率(τ=0)10.90以上✓ 合格
ポイント: 真の分散の推定の偏り(中央値、τ=τ̂)0.083±15%以内✓ 合格
ポイント: kの90%区間が真のkを含む割合(τ=τ̂)0.9100.80以上✓ 合格
ポイント: 縮小の相対TSE(90%区間の上限)0.1441未満✓ 合格
ポイント: 縮小−全体平均(相対TSEの差の90%区間)-0.013〜0.0090を含むか、上限が0未満✓ 合格
平均着順: 縮小の相対TSE(90%区間の上限)0.1321未満✓ 合格
平均着順: 縮小−全体平均(相対TSEの差の90%区間)-0.001〜0.0170を含むか、上限が0未満✓ 合格
配牌の良さ(向聴数): 選手差の検定(Holm補正後p)0.1740.05より大✓ 合格
配牌のドラ・赤: 選手差の検定(Holm補正後p)10.05より大✓ 合格
ツモの良さ: 選手差の検定(Holm補正後p)10.05より大✓ 合格
裏ドラ運(枚/リーチ和了): 選手差の検定(Holm補正後p)10.05より大✓ 合格
一発率(/リーチ): 選手差の検定(Holm補正後p)10.05より大✓ 合格
運による獲得ポイント(/半荘): 選手差の検定(Holm補正後p)10.05より大✓ 合格
放銃率(陽性対照): p0.0030.001(全並べ替えを上回る)✗ 不合格
副露率(陽性対照): p0.0010.001(全並べ替えを上回る)✓ 合格
立直率(陽性対照): p0.0010.001(全並べ替えを上回る)✓ 合格
分散の減少率の検定: p0.0050.005(全並べ替えを上回る)✓ 合格
並べ替え後の減少率(平均)-0.000±1%以内✓ 合格
トップ: 較正の検定 p0.0950.05より大✓ 合格
トップ: MCB / Brier0.0022%未満✓ 合格
ラス: 較正の検定 p0.5460.05より大✓ 合格
ラス: MCB / Brier0.0022%未満✓ 合格

参考にした論文

  • Talts, Betancourt, Simpson, Vehtari, Gelman. "Validating Bayesian Inference Algorithms with Simulation-Based Calibration." arXiv:1804.06788, 2018. — 答えを決めた架空のデータで計算を確かめる方法(2章)
  • Armstrong, Kolesár, Plagborg-Møller. "Robust Empirical Bayes Confidence Intervals." Econometrica 90(6), 2022. — 平均に引き戻した推定値の90%区間の作り方(2章)
  • Morris. "Parametric Empirical Bayes Inference: Theory and Applications." Journal of the American Statistical Association 78(381), 1983. — 以前使っていた区間の考え方(2章)
  • Laird, Louis. "Empirical Bayes Confidence Intervals Based on Bootstrap Samples." Journal of the American Statistical Association 82(399), 1987. — 試したが採用しなかった区間の作り方(2章)
  • Brown. "In-season prediction of batting averages: A field test of empirical Bayes and Bayes methodologies." Annals of Applied Statistics 2(1), 2008. — シーズン前半から後半を当てる検証(3章)
  • Burch, Schmid, Moravčík, Bowling. "AIVAT: A New Variance Reduction Technique for Agent Evaluation in Imperfect Information Games." AAAI, 2018. — 運を差し引いてばらつきを減らす考え方と、その前提(4章)
  • Phipson, Smyth. "Permutation P-values Should Never Be Zero." Statistical Applications in Genetics and Molecular Biology 9(1), 2010. — シャッフルによる検定のp値の出し方(4・5章)
  • Holm. "A Simple Sequentially Rejective Multiple Test Procedure." Scandinavian Journal of Statistics 6(2), 1979. — 複数の検定をまとめて行うときの補正(4章)
  • Dimitriadis, Gneiting, Jordan. "Stable reliability diagrams for probabilistic classifiers." PNAS 118(8), 2021. — 予測確率の当たり具合の図(CORP)とずれの測り方(5章)
  • Brill, Yurko, Wyner. "Exploring the Difficulty of Estimating Win Probability: A Simulation Study." arXiv:2406.16171, 2025. — 同じ試合のデータは独立ではなく、見た目ほど情報がないこと(5章)
  • Field, Welsh. "Bootstrapping clustered data." Journal of the Royal Statistical Society: Series B 69(3), 2007. — まとまりのあるデータは、まとまりごとにくじ引きし直すこと(5章)

本ページの内容は統計的な検証の解説であり、計算結果はMリーグ機構の公式発表ではありません。数字は毎朝の自動更新で最新のデータに置き換わります。