ブライアスコアとログロスの違い:0.25未満なら良い予測?
この記事の目次
ブライアスコアが0.10なら、その確率予測は優秀でしょうか。数字だけでは決められません。 同じ対象を事前に決めた単純な予測と比べると、0.10でも負けることがあります。
この記事では、仮想の10件を使い、ブライアスコア、基準との比較、ログロスを順に計算します。予測市場やスポーツ予測などで残した確率を振り返るための教材です。実際のサービスの成績や、利益の出る売買方法を示すものではありません。
ブライアスコアは「確率と結果のずれ」の二乗平均
発生したか、しなかったかで決着する二値イベントを考えます。発生確率を p、結果を発生なら y=1、非発生なら y=0 と置くと、1件の誤差は (p−y)²。ブライアスコア(BS)はその平均です。
BS = 各イベントの (p−y)² の合計 ÷ イベント数
この記事では確率を0〜1で表し、二値の1項だけを平均する0〜1の尺度を使います。小さいほど、記録した確率と実際の結果のずれが小さい評価です。式と尺度は気象庁の解説・付録B.4(冊子162ページ)でも確認できます。
たとえば70%と予測したイベントが発生すれば (0.7−1)²=0.09、発生しなければ (0.7−0)²=0.49 です。1回当たった、外れたという記録だけでは、確率としての主張の違いが消えてしまいます。
なお、全クラス分を合算する定義では0〜2の尺度も使われます。二値では、非発生側の誤差も足すと (p−y)² + [(1−p)−(1−y)]² = 2(p−y)² なので、この記事の値のちょうど2倍になります。全予測に同じ換算をすれば順位は変わりません。別の資料やソフトの数値を比べる前に、どちらの定義か確認してください。scikit-learn公式の尺度の説明
同じ10件でも、0.10は基準予測に負ける
次は説明用に作ったデータです。対象の10件は事前に固定され、結果は1件だけ発生したとします。予測Aは毎回0%、基準予測は毎回10%、予測Bは毎回50%です。
基準の10%も、結果を見る前に決めたものとします。 この例で結果の発生率が10%になったのは教材の設定です。結果から最適な基準を逆算して、将来の予測力を証明しているわけではありません。
| イベント | 結果 y | 予測A | 事前の基準予測 | 予測B |
|---|---|---|---|---|
| 1 | 1 | 0% | 10% | 50% |
| 2 | 0 | 0% | 10% | 50% |
| 3 | 0 | 0% | 10% | 50% |
| 4 | 0 | 0% | 10% | 50% |
| 5 | 0 | 0% | 10% | 50% |
| 6 | 0 | 0% | 10% | 50% |
| 7 | 0 | 0% | 10% | 50% |
| 8 | 0 | 0% | 10% | 50% |
| 9 | 0 | 0% | 10% | 50% |
| 10 | 0 | 0% | 10% | 50% |
各列のブライアスコアは次のように求められます。
- 予測A・毎回0%:
(1 + 0×9) ÷ 10 = 0.10 - 基準・毎回10%:
(0.81 + 0.01×9) ÷ 10 = 0.09 - 予測B・毎回50%:
(0.25 + 0.25×9) ÷ 10 = 0.25
0.10は0.25より小さいのに、事前に固定した10%の基準には負けています。「0.25未満」「0.10以下」といった数値だけを合格点にすると、この違いを見落とします。
そもそも0.25は、毎回50%と予測したときの値です。結果が1でも0でも二乗誤差は0.25なので、発生率が50%のデータに限った話ではありません。また、この二値尺度での上限は0.25ではなく1です。
基準との差はBrier Skill Scoreで確かめる
基準との相対比較には、Brier Skill Score(BSS)を使えます。
BSS = 1 − 評価する予測のBS ÷ 基準予測のBS
基準と同じなら0、基準より良ければ正、悪ければ負になります。対象、重み、評価期間、基準予測をそろえて比較する指標です。基準のBSが0なら、この比は定義できません。気象庁のBSSの定義
この例の基準BSは0.09なので、予測AのBSSは 1−0.10÷0.09=−1/9、約−0.111です。基準自身は0、毎回50%の予測Bは約−1.778になります。
BSSを出せば、異なる分野や期間の予測を無条件に順位付けできるわけではありません。基準が違えば比較の意味も変わります。「何に対して良いのか」を数値と一緒に残すことが大切です。
ログロスでは「0%と言ったのに起きた」をどう扱う?
ログロスも確率予測の誤差を評価しますが、二乗ではなく対数を使います。ここでは自然対数を使い、発生した場合は −ln(p)、非発生なら −ln(1−p) を計算して平均します。scikit-learn公式のログロスの定義
同じ10件を評価すると、次の結果になります。
| 予測 | BS | BSS:10%基準比 | 平均ログロス(自然対数) |
|---|---|---|---|
| 毎回0% | 0.10 | 約−0.111 | ∞ |
| 毎回10% | 0.09 | 0 | 約0.325083 |
| 毎回50% | 0.25 | 約−1.778 | 約0.693147 |
10%予測のログロスは [-ln(0.1) − 9×ln(0.9)] ÷ 10 です。50%予測では、どの結果でも −ln(0.5) となります。
一方、0%と断言したイベントが1件発生すると、数学上のログロスは無限大です。たとえば発生した1件への予測を1%にすると、その1件のBSは0.9801ですが、ログロスは約4.605になります。正反対の強い確信をどれほど重く扱うかが違います。この例では毎回10%が両指標で最良ですが、0%と50%の順位は逆転します。 BSでは0%のほうが小さく、ログロスでは50%のほうが小さくなります。どちらの指標を見るかで、強い確信を外した予測の評価も変わるのです。
なお、BSの0.10とログロスの0.325を直接比べて、前者の予測が優れているとは言えません。数値の尺度が違うためです。主に使う評価指標と補助指標は結果を見る前に決め、有利な順位になる指標だけを後から選ばないようにします。
実装では端点を避けるため、確率を小さな正数などに制限する処理があります。scikit-learnのlog_lossも入力確率をクリップします。そのため、ソフトが返す有限値と、厳密な0%に対する数学上の無限大は区別してください。たとえば下限より小さい確率をすべて同じ下限値へ置き換えると、元の確率の違いは採点値から区別できなくなります。処理後の点数だけでなく、元の予測確率も残してください。比較には対数の底、平均か合計か、端点処理もそろえる必要があります。公式APIの説明
的中率が同じでも、確率予測は同じではない
「予測確率が50%未満なら非発生と判定する」と事前に決めると、毎回0%も毎回10%も、10件すべてを非発生と判定します。どちらも9件正解なので、的中率は90%です。
しかし「起きる可能性はない」と「10%の可能性がある」は違う主張です。この違いを、BSやログロスなら評価に残せます。的中率が同じだから確率の品質も同じ、とは言えません。
ただし、10件の計算だけで安定した予測力を確認できるわけではありません。またBSは確率の校正だけを切り離して測る指標ではなく、事象を見分ける能力や対象の不確実性の影響も受けます。公式ドキュメントの注意点
実際に出た点数と、期待される点数は別
ここまでの数値は、実際に出たという設定の10件に対する点数です。将来どの結果が起きるかは分からないので、1回ごとの最良スコアと、結果が出る前の確率評価を混同しないようにします。
数式で確かめるため、真の発生確率を仮に q と置きます。予測 p の二値BSの期待値は q(1−p)²+(1−q)p² = (p−q)²+q(1−q) です。最小になるのは p=q のときで、通常は0にはなりません。ログロスも 0<q<1 なら期待値 −q ln(p)−(1−q)ln(1−p) が p=q で最小になります。
これは確率を正しく申告することを期待値で評価する性質であって、真の q を観測できたという意味ではありません。たとえば発生確率が本当に10%でも、少数件なら非発生だけが続くことがあります。その記録だけでは、0%と断言する予測のほうが低いBSになる場合もあります。実現した少数件の勝敗と、期待される予測の品質は分けて考えます。
結果が3つ以上ある場合は?
本文の10件は二値の例です。互いに重ならず、必ずどれかが起きる複数の結果を扱うときは、各結果に合計1となる確率を割り当てます。全クラス型BSは各クラスの二乗誤差を合算し、ログロスは実際に起きたクラスへ付けた確率の負の対数を使います。scikit-learnの多クラス定義
たとえば3結果への確率が (0.5, 0.3, 0.2) で、2番目が起きた場合、全クラス型BSは 0.5²+(0.3−1)²+0.2²=0.78、ログロスは −ln(0.3)≈1.204 です。二値用の0.25という目安を、そのまま持ち込むことはできません。また、同時に複数が成立するイベントを、互いに排他的なクラスとして合計1にまとめないよう注意します。
予測市場の記録を比べる前の確認項目
自分の予測と、市場で観測した確率を比べたい場合も、まず評価対象をそろえます。
- 同じイベントと、同じ決着条件を使っているか。
- 同じ決着済み事象の集合か。評価件数Nと、予測が欠けた事象の扱いを示しているか。
- 同じ時点で残した確率か。結果直前の更新を、数日前の予測と混ぜていないか。
- 1イベントの1時点を採点するのか、複数時点の更新を採点するのか。回数と重みを決めているか。
- 対象の採用・除外や重み付けを、結果を見てから有利に変えていないか。
- 予測方法の学習・調整に使った結果と、評価用の結果を分けているか。
- 無効・未決着などの扱いを事前に決めているか。
- 基準予測は、その時点で使えた情報から決めたものか。
- クリップする場合、閾値と該当件数を記録しているか。
これは比較表を作る際の実務上の整理です。市場価格を確率として使う方法にも前提があるため、価格の取得時点や換算方法を残します。BSが改善しても、取引価格、手数料、約定条件を含めた損益まで改善したことにはなりません。
まず同じ記録で基準との差を再計算する。そのうえでログロスも見て、強い確信を外したケースを確認する。単一の「良い点数」を探すより、何を比較した評価なのかを明らかにするほうが、確率予測の振り返りに役立ちます。
HypaForecastの市場を見る
市場一覧やBTCの5分・15分市場への一般的な案内です。個別の質問、結果判定ルール、サービス条件を確認してください。特定の市場の提供や、読者の利用資格を示すものではありません。
この記事を共有