確率予測のBrier scoreとlog lossを比較する
二値確率予測のBrier scoreとlog lossを比較し、計算方法、適切なスコア、較正、予測スキルの意味を理解します
このガイドの内容的中率では予測した確率が失われる
短い要約
確率予測は、最も可能性が高い結果だけでなく、ある事象が起きる確率を示します。Brier scoreとlog lossは、その確率予測を確定した結果と照合します。どちらもproper scoring ruleですが、誤りへのペナルティは異なります。そのため、低いscoreに意味があるのは、事象、標本、scoreの定義、比較対象を先に固定した場合だけです。
的中率では予測した確率が失われる
モデルが「上昇」か「下落」かを正しく予測したかを記録するとします。的中率では、51%の正しい予測も99%の正しい予測も同じ扱いです。49%と1%の誤った予測も同じ扱いになります。これでは予測の確信度が捨てられてしまいますが、意思決定ごとに損益やリスクが異なるとき、確信度は重要です。
二値確率予測は、予測時点 \(t\) における明確に定義された事象に対して、0から1までの値 \(p_t\) を割り当てます。後に事象が起きれば \(y_t=1\)、起きなければ \(y_t=0\) とします。スコアリングルールは予測と結果を合わせて評価します。Brier scoreは確率誤差の二乗を使い、log lossは実際に起きた結果に割り当てた確率の負の対数を使います。
これらのscoreは、trading modelが出す事象の確率も含め、確率予測の比較に役立ちます。ただし、それだけでは予測が較正されているか、妥当な比較対象を上回るか、その予測でtradingすれば利益が出るかは分かりません。Mincer–Zarnowitzの解説では、数値のpoint forecastを対象にした別の線形較正回帰を説明しています。
事象を定義し、すべての予測を対応する結果にそろえる
採点の前に、一貫した方法で判定できるよう事象を定義します。「このassetは上がるか」だけでは不十分です。asset、価格の情報源、開始と終了の時刻、通貨、returnの定義、欠損または訂正された記録の扱いを指定してください。経済事象なら、結果判定に使う発表とデータのvintageを記録します。異なる事象定義や日付集合で採点した予測を比較してはいけません。
各予測は、発行時点で利用できた状態のまま保存します。時点 \(t\) に出した確率は、定めたcutoffまでに得られた情報を使い、同じhorizonの結果と組み合わせます。改訂後のデータ系列、後日の取引所終値、結果を見てから選んだ分類ルールは、気づかないうちにtargetを変えたりlook-ahead情報を持ち込んだりします。
rolling forecastでは、model version、入力データのvintage、timestamp、probability、判定ルールを保存します。modelの比較には共通のforecast originを使います。probabilityが欠けている場合は除外理由を記録し、すべての候補に同じsample ruleを適用します。こうした記録があれば、scoreは変わり続けるspreadsheetの要約ではなく、再現可能な結果になります。
確率誤差の二乗からBrier scoreを計算する
1件の二値事象について、ケース \(t\) のBrier lossは次のとおりです。
BSₜ = (pₜ − yₜ)²
\(n\)件の予測に対する平均Brier scoreは次のとおりです。
BS = (1/n) Σₜ (pₜ − yₜ)²
低いほどよく、0が完全な予測です。この単一事象の定義では0から1の範囲になります。たとえば \(p=0.70\) と予測し、事象が起きた場合、lossは \((0.70-1)^2=0.09\) です。同じ予測の後に事象が起きなければ \((0.70-0)^2=0.49\) です。強い確信を伴う誤りは、控えめな誤りより大きく評価されますが、ペナルティには上限があります。
公表値を比較するときは式を確認してください。複数カテゴリの予測では、全カテゴリの誤差二乗を合計する定義もあります。二値のcategory vector sumは、上記の単一事象lossの2倍になることがあります。同じ事象内で全scoreを2倍しても順位は変わりませんが、尺度を明記しなければ異なる定義間で数値を比べられません。
Log lossを計算し、極端な誤りが目立つ理由を理解する
二値事象のlog lossは次のとおりです。
LLₜ = −[yₜ log(pₜ) + (1 − yₜ) log(1 − pₜ)]
事象が起きたときのlossは \(-\log(p_t)\)、起きなかったときは \(-\log(1-p_t)\) です。したがって、正しい70%予測のlossは \(-\log(0.70)\approx0.357\) ですが、同じ70%予測が外れたときは \(-\log(0.30)\approx1.204\) です。平均log lossはケースごとのペナルティを平均します。実際に起きた事象にほぼゼロの確率を割り当てると、上限はありません。
\(p=0\)または\(p=1\)では、確信を持って出した誤予測のlog lossは無限大です。無限大を避けるためにsoftwareが確率を \(\varepsilon\) などの小さな下限にclipする場合、その下限を開示し、結果を見る前に一貫して適用してください。clippingは数値による評価ルールを変えるため、data cleaningの細部として隠してはいけません。
Brier scoreとlog lossはペナルティ曲線が異なるため、同じ予測を別の順に評価することがあります。log lossは、起きた事象にほぼゼロの確率を割り当てることに特に大きなコストを課します。一方、二値のBrier lossは最大1です。使うscoreは事前に選びます。極端な確率が意思決定に影響するなら、後から都合のよい結果を選ぶのではなく、両方を示す方法もあります。
<!-- learn:illustration -->

Proper scoringは期待値で正直な確率予測を促す
予測者が自分の本当の信念に合う確率を報告したとき、期待報酬を最大化する、または期待損失を最小化するscoreはproperです。その正直な確率だけが最適ならstrictly properです。通常の定義では、Brier scoreとlogarithmic scoreは二値確率予測に対してstrictly properです(Gneiting and Raftery, 2007)。これは確率を先に硬いlabelへ変換せず、確率のまま評価する理論的な理由になります。
「proper」は期待値についての性質であり、観測されたすべてのsampleで良いscoreになるという約束ではありません。正直に70%と報告しても1件では外れることがあり、有限sampleのscoreが推測した人より悪くなることもあります。平均性能を知るには、比較可能な予測を繰り返し集める必要があります。別のpayoff ruleが予測者に適用される場合、scoreだけで報告確率が本人の信念を表すとは限らず、incentiveも重要です。
どちらのscoreも較正だけを測るものではありません。集計値には、確率が観測頻度にどれだけ近いかと、結果が異なるケースをどれだけ分離できるかが混在することがあります。modelは鋭い予測を出していても一貫して較正されない場合があります。常にbase rateを出すmodelは全体では較正されても、個別ケースに関する情報は少ないことがあります。
Brier分解をreliability、resolution、uncertaintyで読む
Murphyの分解では、平均Brier scoreを3項に分けます(Murphy, 1973012%3C0595%3AANVPOT%3E2.0.CO%3B2))。
BS = reliability − resolution + uncertainty
似た確率を出した予測のgroupを \(k\) とします。\(w_k\) は各groupのsample比率、\(\bar p_k\) は平均予測確率、\(\bar y_k\) は観測された事象頻度、\(\bar y\) は全体の事象頻度です。bin単位の各成分は次のとおりです。
reliability = Σₖ wₖ(̅pₖ − ̅yₖ)² resolution = Σₖ wₖ(̅yₖ − ̅y)² uncertainty = ̅y(1 − ̅y)
reliability errorは低いほどよく、group内の予測確率がそのgroupの観測頻度に一致する必要があります。resolutionは高いほどよく、groupごとの事象頻度が全体のbase rateから異なる必要があります。uncertaintyはsample内で事象がどれだけ起きるかを表し、forecast modelの功績ではありません。この分解により、同じBrier scoreのmodelでも強みが異なる理由が分かります。
同一の発行確率を持つケースごとにgroup化すれば、経験的な分解はexactです。連続確率をbinに分ける場合、分解がexactなのは粗くまとめたforecastについてであり、各bin内で失われる元の確率の違いについてではありません。bin分けには境界の選択が必要です。10個の等幅binによるreliability diagramは、quantile binの図と異なる様相になることがあり、小標本や確率の端では特に注意が必要です。binごとの件数とuncertaintyを示し、分解は診断として扱ってください。sampling errorを消す方法ではありません。calibration plotは将来のreliabilityを独立に証明するものでもありません。
Scoreをskillと呼ぶ前に比較対象を決める
別のmodelよりraw scoreが低いことは比較ですが、有用なbaselineに対する改善を意味するとは限りません。Brier skill scoreはforecast systemを、明示したreference forecastと比較します。
BSS = 1 − BS_model / BS_reference
この定義では0はreferenceと同じ、正の値は改善、負の値は悪化を意味します。reference lossが正なら、modelのBrier lossが0のときBSSは1です。意思決定とinformation setに合うreferenceを選んでください。固定した過去のbase rate、training window内の事象頻度、既存のforecast procedureなどが課題によって候補になります。
予測時点で利用できなかった将来のevaluation outcomeをreferenceの計算に使ってはいけません。時系列では、全期間のevent rateより、expandingまたはrollingの過去頻度が運用上より適切なbaselineになる場合があります。reference scoreが0なら比率は定義されません。benchmarkの作り方を開示し、modelとreferenceのraw scoreも併記してください。
Brier skill scoreはreferenceと事象頻度に依存します。無条件base-rate forecastとのscoreは、現行production modelとのscoreとは別の問いに答えます。研究間でBSSを比べる前に、事象の定義、reference forecast、標本期間、二値か多カテゴリかの定義を確認してください。
対応したout-of-sample結果でmodelを比較する
確率を時系列順に生成し、model調整、feature選択、threshold設定に使っていないevaluation期間を確保します。すべてのmodelを同じ確定結果とforecast originで採点してください。選んだlossについて、対応差を次のように定義します。
dₜ = Lₐ,ₜ − Lᵦ,ₜ
この符号規約では、平均が正ならmodel Bの平均lossが低かったことを意味します。Diebold–Mariano frameworkは、forecast比較の仮定と分散推定が設計に合う場合に平均loss差を検定できます。予測時点で分かっていた条件に応じて相対scoreが変化するかが問いなら、Giacomini–Whiteの解説が条件付き比較を扱います。forecast originの反復、重複するevent window、model searchが差を依存させたり選択したりするため、単純な標準誤差や未調整のp-valueは証拠を過大評価するおそれがあります。
結果を見る前に、事象、horizon、sample、主要score、benchmark、比較方向を決めます。平均Brierとlog loss、sample size、modelとreferenceの定義、確率のclipping rule、依存性や探索への調整を報告してください。集計scoreと一緒にreliability plotと対応差を示すと、何が変化したか分かりやすくなります。forecast combinationの手法で予測を組み合わせる場合も、最終的な組み合わせを選択に使っていない期間で評価する必要があります。
scoreの単位は共通ではありません。Brierの0.01差はlog lossの0.01差と同じ大きさとは言えません。低いscoreも、基礎となる確率modelが正しいことの証明ではなく、指定した結果に対する予測の証拠です。
予測の質とtradingの収益性を分ける
確率がtradingの意思決定に役立つのは、それを行動に変えるruleを通じてです。判断はpayoffの大きさ、予測が外れたときの損失、execution price、spread、commission、slippage、funding、borrow、資本制約、予測が実際に取引可能になる時刻にも左右されます。proper scoreは確率予測を評価するものであり、これらのcostやposition sizeは扱いません。
平均log lossが改善しても、特定のtrading ruleが良くなるとは限りません。そのruleは特定の確率範囲だけで取引したり、別のhorizonに反応したりするからです。反対に、有用なdecision signalが少数のcaseに集中し、全体scoreへの寄与が小さいこともあります。予測を評価した後、事前指定したdecision ruleを選択に使っていない日付で別途評価し、現実的なnet returnとuncertainty estimateを使います。
十分なreportがあれば、別の研究者が事象、確率、結果、scoreの式と定義、reference、sample、evaluation timingを再現できます。確率がout-of-sampleか、結果が重複するか、欠損caseをどう扱ったか、いくつの代替modelやscoreを試したかも記載してください。この手順により、予測scoreを有益な情報に保ち、将来利益の主張にすり替えずに済みます。
よくある質問
Q1Brier scoreは低いほど常によいですか?
事象の定義、sample、scoring convention、結果の符号化が同じなら低いほどよいです。異なる事象や多カテゴリの定義によるscoreは、直接比較できないことがあります。
Q2Brier scoreが良ければ確率が較正されていると分かりますか?
いいえ。aggregate Brier scoreはreliability、resolution、事象のuncertaintyを合わせています。較正診断とsampleの不確実性も確認してください。
Q3Brier scoreとlog lossのどちらを使うべきですか?
結果を評価する前に選びます。Brier lossは上限があり、確率誤差の二乗を使います。log lossは確信を伴う誤った確率をより厳しく罰します。課題の損失と必要な感度を考えて選んでください。
Q4確率scoreが改善すればtrading strategyも利益を出しますか?
いいえ。scoreが評価するのは予測です。payoff、execution cost、funding、position sizing、model selectionを考慮した意思決定は別に評価する必要があります。 一次研究 - Brier, “Verification of Forecasts Expressed in Terms of Probability” (1950)078%3C0001%3AVOFEIT%3E2.0.CO%3B2) - Murphy, “A New Vector Partition of the Probability Score” (1973)012%3C0595%3AANVPOT%3E2.0.CO%3B2) - Gneiting and Raftery, “Strictly Proper Scoring Rules, Prediction, and Estimation” (2007) - Diebold and Mariano, “Comparing Predictive Accuracy” (1995)
出典
問題を報告
この記事のリンクを含むメールを準備します。送信すると Mark に報告が届きます
クイックチェック
記事を読み終えたら、3問で確認しましょう
問題 01
70%の予測の後に二値事象が起きました。単一事象の定義でBrier lossはいくつですか?
答えを選ぶと解説を確認できます