Brier-Score: Wie Sie Prognosen bewerten
Der Brier-Score misst Wahrscheinlichkeitsprognosen als mittleren quadratischen Fehler. Je niedriger, desto besser: 0,25 entsteht bei durchgehend 50 %.
Der Brier-Score bewertet eine Wahrscheinlichkeitsprognose anhand des tatsächlichen Ergebnisses. Ziehen Sie vom angegebenen Wahrscheinlichkeitswert das Ergebnis ab (1, wenn das Ereignis eingetreten ist, 0, wenn nicht), quadrieren Sie die Differenz und bilden Sie anschließend den Durchschnitt der quadrierten Differenzen über alle abgegebenen Prognosen. Je niedriger der Wert, desto besser: 0 steht für eine perfekte Prognosebilanz, und 0,25 ist der Wert, den Sie erzielen, wenn Sie bei allem „50 %“ angeben.
Was ist ein Brier-Score?
Eine Prognose ist eine Wahrscheinlichkeitsaussage. Eine einzelne Wahrscheinlichkeit kann daher nie für sich genommen richtig oder falsch sein. Sie haben eine Wahrscheinlichkeit von 30 % angegeben, und das Ereignis ist eingetreten. Lagen Sie falsch? Noch nicht. Glenn Brier umging dieses Problem 1950 in einem Beitrag für Wetterprognostiker, indem er nicht einzelne Prognosen bewertete. Der Score bewertet stattdessen das gesamte Protokoll auf einmal.
Hier ist ein erfundenes Protokoll mit zehn Prognosen. Keine dieser Zahlen stammt aus einem Markt. Sie dienen nur zur Darstellung der Berechnung.
- 90 % angegeben, das Ereignis ist eingetreten. Quadrierte Abweichung: 0,01.
- 80 % angegeben, das Ereignis ist eingetreten. 0,04.
- 70 % angegeben, das Ereignis ist nicht eingetreten. 0,49.
- 60 % angegeben, das Ereignis ist eingetreten. 0,16.
- 50 % angegeben, das Ereignis ist nicht eingetreten. 0,25.
- 40 % angegeben, das Ereignis ist nicht eingetreten. 0,16.
- 30 % angegeben, das Ereignis ist eingetreten. 0,49.
- 20 % angegeben, das Ereignis ist nicht eingetreten. 0,04.
- 10 % angegeben, das Ereignis ist nicht eingetreten. 0,01.
- 95 % angegeben, das Ereignis ist eingetreten. 0,0025.
Die zehn quadrierten Abweichungen ergeben zusammen 1,6525. Teilt man diesen Wert durch zehn, beträgt der Brier-Score 0,165. Das ist die gesamte Berechnung. Sie lässt sich mit python3 ausführen, das bereits auf jedem Mac- oder Linux-Rechner installiert ist. Es muss nichts installiert werden, und es sind keine Bibliotheken erforderlich.
rows = [(0.90, 1), (0.80, 1), (0.70, 0), (0.60, 1), (0.50, 0), (0.40, 0), (0.30, 1), (0.20, 0), (0.10, 0), (0.95, 1)]brier = sum((p - o) * (p - o) for p, o in rows) / len(rows)flat = sum((0.5 - o) * (0.5 - o) for _, o in rows) / len(rows)print(round(brier, 3), round(flat, 3))ausgeführte Trades0.165 0.25
Warum 0,25 der zu übertreffende Wert ist
Wenn Sie für jedes Ereignis eine Wahrscheinlichkeit von 50 % angeben, beträgt jeder quadrierte Fehler 0,25 – unabhängig vom Ergebnis. Dieser feste Wert von 0,25 ist die Benchmark ohne Information für eine beliebige Reihe von Ja-oder-Nein-Fragen. Der Skill Score fasst die Leistung in einer Kennzahl zusammen: eins minus Ihr Score geteilt durch den Score der Benchmark. Der frei erfundene Log mit einem Wert von 0,165 entspricht einem Skill Score von 0,34.
Ein Vorbehalt verhindert viele fehlerhafte Auswertungen. Treten die bewerteten Ereignisse nur in 10 % der Fälle ein, erzielt die konstante Prognose von 10 % bei jeder Frage einen Score von 0,09 – obwohl keinerlei Wissen über die einzelnen Fragen vorliegt. Ein Score unter 0,25 ist bei einer unausgewogenen Fragengrundlage kein Beleg für Können. Die korrekte Benchmark ist die Basisrate der Fragen, die Sie tatsächlich beantwortet haben.
Kalibrierung und Konfidenz werden gemeinsam bewertet
Kalibrierung bedeutet: Von allem, was Sie mit einer Wahrscheinlichkeit von 70 % eingeschätzt haben, tritt annähernd 70 % tatsächlich ein. Konfidenz – von Statistikern auch Auflösung genannt – beschreibt, wie weit Sie sich von der Basisrate entfernen, wenn Sie über zusätzliche Informationen verfügen. Ein Prognostiker, der jede Frage mit 50 % beantwortet, ist perfekt kalibriert, aber völlig nutzlos. Der Brier-Score bewertet beide Eigenschaften gleichzeitig: Fehlkalibrierung erhöht den Wert, berechtigte Konfidenz senkt ihn.
Wenn Sie das erfundene Protokoll nach der angegebenen Wahrscheinlichkeit in Gruppen einteilen, sehen Sie, wie eine Kalibrierungsprüfung funktioniert. In Python ist das eine Zeile pro Gruppe, hits = [o for p, o in rows if p >= 0.8], gefolgt vom Durchschnitt von hits.
- Angegebene Wahrscheinlichkeit von 10 % bis 30 %, Durchschnitt 20 %: 1 von 3 trat ein, also 33 %.
- Angegebene Wahrscheinlichkeit von 40 % bis 50 %, Durchschnitt 45 %: 0 von 2 trat ein, also 0 %.
- Angegebene Wahrscheinlichkeit von 60 % bis 70 %, Durchschnitt 65 %: 1 von 2 trat ein, also 50 %.
- Angegebene Wahrscheinlichkeit von 80 % bis 95 %, Durchschnitt 88 %: 3 von 3 traten ein, also 100 %.
Zehn Prognosen reichen bei Weitem nicht aus, um aus diesen Gruppen belastbare Schlüsse zu ziehen. Für eine Kalibrierung sind pro Gruppe Hunderte abgeschlossene Fragen erforderlich. Im restlichen Teil dieser Seite wird ein Prognoseprotokoll mit Millionen solcher Fragen verwendet.
Die eigene Marktprognose bewerten
Jede börsennotierte Option trägt eine Kennzahl, die sich wie eine angegebene Wahrscheinlichkeit verhält. Das Delta misst, wie stark sich der Optionspreis bei einer Bewegung der zugrunde liegenden Aktie um einen Dollar verändert. Bei einem Kontrakt, der entweder im Geld endet (bei Fälligkeit einen Wert hat) oder wertlos verfällt, liegt der Absolutwert des Deltas nahe an der vom Markt eingepreisten Wahrscheinlichkeit, dass er im Geld endet. Das Delta stammt aus derselben Volatilitätsoberfläche wie die implizite Volatilität von AAPL. Jeder Kontrakt verfällt. Damit wird jede dieser Prognosen überprüft.
Die folgende Darstellung erfasst alle SPY-Optionen, die ungefähr einen Monat vor dem Verfall beobachtet wurden, für den Zeitraum von Januar 2025 bis Mai 2026. Sie ordnet sie nach dem angegebenen Delta und zählt, wie oft der jeweilige Kontrakt im Geld endete.
Das exakte SQL hinter jeder Zahl
WITH settle AS
(
SELECT
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY date
),
scored AS
(
SELECT
toUInt8(floor(abs(toFloat64(g.delta)) * 10)) AS bucket,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s ON s.settle_date = g.expiration_date
WHERE g.underlying_symbol = 'SPY'
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 28 AND 35
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
concat(toString(bucket * 10), ' to ', toString(bucket * 10 + 10), '%') AS stated_bucket,
round(avg(stated) * 100, 1) AS stated_pct,
round(avg(finished_itm) * 100, 1) AS finished_itm_pct,
count() AS sample_size
FROM scored
GROUP BY bucket
ORDER BY bucketVergleichen Sie die beiden Reihen. Im niedrigsten Intervall gab der Markt durchschnittlich 5.2% an. Diese Kontrakte endeten in 3.7% der Fälle im Geld. Im höchsten Intervall entsprach ein angegebenes Delta von 94% einer tatsächlichen Quote von 96.5% im Geld endender Kontrakte. Über alle 10 Intervalle hinweg liegt die realisierte Häufigkeit in derselben Größenordnung wie die angegebene. Genau das leistet eine Kalibrierungstabelle: Sie zeigt Intervall für Intervall die Differenz zwischen einer Prognose und dem tatsächlichen Ergebnis, statt sie in einem einzigen Durchschnittswert zu verbergen.
Übertrifft der Markt den Münzwurf?
Nun zum eigentlichen Ergebnis. Gleiche Konstruktion, mehrere bekannte Namen. Der Brier-Score jedes Namens steht neben der konstanten 50-%-Baseline, berechnet über exakt dieselben Kontrakte.
Das exakte SQL hinter jeder Zahl
WITH settle AS
(
SELECT
underlying_symbol AS sym,
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY sym, settle_date
),
scored AS
(
SELECT
g.underlying_symbol AS symbol,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s
ON s.sym = g.underlying_symbol AND s.settle_date = g.expiration_date
WHERE g.underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 28 AND 35
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
symbol,
round(avg((stated - finished_itm) * (stated - finished_itm)), 4) AS market_brier,
round(avg((0.5 - finished_itm) * (0.5 - finished_itm)), 4) AS coin_flip_brier,
formatReadableQuantity(count()) AS graded_contracts
FROM scored
GROUP BY symbol
ORDER BY market_brierNVDA erzielt über 28.54 thousand bewertete Kontrakte einen Score von 0.1122. Zum Vergleich: Die konstante Baseline erreicht auf derselben Menge 0.25. Der schwächste der 6 Namen, SPY, kommt noch auf 0.1375. Optionen sind hier kein magisches Instrument. Kontrakte, die weit aus dem Geld liegen, haben Deltas nahe 0,02 und verfallen meist wertlos. Das ist eine Prognose, die sich leicht richtig treffen lässt. Diese Einfachheit fließt in die Kennzahl ein. Das ist der Hauptgrund, warum ein isoliert genannter Brier-Score kaum Aussagekraft hat.
Derselbe Prognostiker erzielt je nach Frage unterschiedliche Ergebnisse
Bei identischer Methode hängt die Punktzahl davon ab, wie weit der Auflösungstermin der Frage entfernt ist. Entsprechend schwankt die Bewertung.
Das exakte SQL hinter jeder Zahl
WITH settle AS
(
SELECT
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY date
),
scored AS
(
SELECT
multiIf(g.days_to_expiry <= 7, 1,
g.days_to_expiry <= 14, 2,
g.days_to_expiry <= 30, 3,
g.days_to_expiry <= 60, 4,
g.days_to_expiry <= 120, 5,
6) AS horizon_rank,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s ON s.settle_date = g.expiration_date
WHERE g.underlying_symbol = 'SPY'
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 1 AND 250
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
multiIf(horizon_rank = 1, '1 to 7 days',
horizon_rank = 2, '8 to 14 days',
horizon_rank = 3, '15 to 30 days',
horizon_rank = 4, '31 to 60 days',
horizon_rank = 5, '61 to 120 days',
'121 to 250 days') AS horizon,
round(avg((stated - finished_itm) * (stated - finished_itm)), 4) AS market_brier,
round(avg((0.5 - finished_itm) * (0.5 - finished_itm)), 4) AS coin_flip_brier,
count() AS sample_size
FROM scored
GROUP BY horizon_rank
ORDER BY horizon_rankBei Kontrakten mit einer Restlaufzeit von 1 to 7 days erzielte der Markt einen Delta-Wert von 0.1084. Bei Kontrakten mit einer Restlaufzeit von 121 to 250 days lag der Wert bei 0.1218. Es handelt sich um denselben Prognostiker und dieselbe Methode, aber um zwei unterschiedliche Fragensätze. Die konstante 50-%-Referenz liegt in der ersten Zeile bei 0.25 und in der letzten bei 0.25. Damit ist sie über alle Zeithorizonte hinweg der einzige feste Vergleichswert. Ein Vergleich zwischen zwei Prognostikern muss auf denselben Fragen und über dasselbe Zeitfenster erfolgen. Andernfalls wird die Schwierigkeit der Fragen und nicht die Fähigkeit verglichen.
Warum proper scoring rules wichtig sind
Der mittlere absolute Fehler, also der durchschnittliche einfache Abstand zwischen Ihrer Wahrscheinlichkeit und dem Ergebnis, klingt nach einer vernünftigen Alternative und schneidet schlecht ab. Nehmen wir an, Sie halten ein Ereignis tatsächlich für 70 % wahrscheinlich. Geben Sie 70 % an, beträgt Ihr erwarteter absoluter Fehler 0.7 x 0.3 + 0.3 x 0.7 = 0.42. Geben Sie stattdessen 100 % an, sinkt er auf 0.7 x 0 + 0.3 x 1 = 0.30. Beim absoluten Fehler wird die ehrliche Angabe bestraft. Eine Kennzahl, die eine übertriebene Sicherheit belohnt, misst keine Prognosequalität.
Der Brier-Score weist diese Schwäche nicht auf. Halten Sie ein Ereignis für 70 % wahrscheinlich und geben Sie 70 % an, beträgt Ihr erwarteter Score 0.7 x 0.09 + 0.3 x 0.49 = 0.21. Geben Sie 100 % an, steigt er auf 0.30. Geben Sie 60 % an, steigt er auf 0.22. Das Minimum liegt genau bei der von Ihnen angenommenen Wahrscheinlichkeit. Eine Regel mit dieser Eigenschaft wird als proper bezeichnet. Deshalb wurde der Brier-Score zum Standard bei Prognosewettbewerben.
Der Log-Score ist die andere verbreitete proper rule. Dabei wird der natürliche Logarithmus der Wahrscheinlichkeit gebildet, die Sie dem tatsächlich eingetretenen Ergebnis zugewiesen haben. Anschließend wird das Vorzeichen umgekehrt. Eine Wahrscheinlichkeit von 1 % für ein Ereignis, das eintritt, ergibt einen Score von 4.6. Eine Angabe von 0 % ergibt unendlich. Bei den zehn frei erfundenen Prognosen beträgt der Log-Score 0.483 gegenüber 0.693 für die konstante Baseline. Der Brier-Score liegt zwischen 0 und 1. Das lässt sich natürlicher als Ergebnistabelle lesen. Der Log-Score ist nach oben unbeschränkt. Das eignet sich für Bewertungen, bei denen die Extremwerte das Risiko tragen.
Was dies für Event-Kontrakte bedeutet
Ein Event-Kontrakt, der bei Eintritt eines Ereignisses $1 und andernfalls $0 auszahlt, wird zu einem Preis gehandelt, der bereits eine Wahrscheinlichkeit ausdrückt. Ein Preis von 62 Cent entspricht einer Prognose von 62 %, bevor spread und Gebühren herausgerechnet werden. Unser Leitfaden zu Event-Kontraktpreisen als Wahrscheinlichkeiten erklärt diese Umrechnung. Wie Event-Kontrakte abgerechnet werden erläutert, was „es ist eingetreten“ im Wortlaut des jeweiligen Kontrakts bedeutet.
Dieser Preis ist eine Prognose mit öffentlich nachvollziehbarer Erfolgsbilanz und einem Abrechnungstermin. Damit ist er der Vergleichsmaßstab, den Ihr eigenes Protokoll übertreffen muss. Bewerten Sie Ihre Prognosen zu denselben Fragen über denselben Zeitraum. Liegt der Brier-Score eines Traders über dem des Preises, ist für diese Fragengruppe kein gemessener Informationsvorsprung erkennbar, unabhängig davon, wie überzeugend die mit dem Trade verbundene Erzählung ist. Derselbe Test lässt sich auf Sportquoten übertragen, sobald Sie die Marge aus Wettquoten herausrechnen, sowie auf Zinsmärkte. Dort liefern Ihnen Fed-Zinsquoten eine datierte Wahrscheinlichkeit für eine Frage mit einem bekannten Abrechnungstag.
Wie diese Auswertungen den Markt bewerten
Delta stammt aus dem täglichen Datensatz der Options-Greeks für jeden Kontrakt. Berücksichtigt werden nur Kontrakte mit Handelsvolumen am Beobachtungstag und einer konvergierten Volatilitätsberechnung. Das Ergebnis wird aus dem Schlusskurs des Basiswerts am Verfallstag des Kontrakts abgeleitet: Ein Call gilt als im Geld, wenn dieser Schlusskurs über dem Ausübungspreis liegt, ein Put, wenn er darunter liegt. Die tatsächliche Abrechnung erfolgt nach Handelsschluss über eine Ausübungsentscheidung. Daher können Kontrakte, die bis auf wenige Cent am Ausübungspreis liegen, von dieser Vereinfachung abweichend abgerechnet werden. Alle Kontrakte in diesen Auswertungen sind bereits verfallen. Die längeren Zeithorizontklassen greifen zwangsläufig auf frühere Beobachtungstage innerhalb des Zeitfensters zurück. Ein Aktiensplit zwischen Beobachtungstag und Verfall würde dazu führen, dass Ausübungspreis und Abrechnungspreis auf unterschiedlichen Skalen liegen. Das ist ein weiterer Grund dafür, dass für jede Klasse die Zahl der Beobachtungen angegeben wird.
Delta nähert eine risikoneutrale Wahrscheinlichkeit an, nicht die Wahrscheinlichkeit unter realen Bedingungen. Beide unterscheiden sich durch die in Optionspreisen enthaltene Risikoprämie. Eine Kalibrierungstabelle misst diesen Unterschied, statt ihn zu unterstellen.
FAQ
Ist ein niedrigerer Brier-Score besser?
Ja. Der Brier-Score misst Fehler. Ein Wert von 0 steht für eine perfekte Prognose, 1 für das schlechtestmögliche Ergebnis. Letzteres wird erreicht, wenn für jedes Ereignis, das nicht eingetreten ist, eine Wahrscheinlichkeit von 100 % angegeben wurde. Jeder Wert unter 0,25 ist besser als das Ergebnis, das man erzielt, wenn man jede Frage mit 50 % beantwortet.
Was ist ein guter Brier-Score?
Eine allgemein gültige gute Zahl gibt es nicht. Der Score hängt davon ab, wie schwierig die Fragen waren. Ein Wetterprognostiker mit einem Wert von 0,10 für Regen am Folgetag und ein politischer Prognostiker mit 0,18 für knappe Wahlen lassen sich nicht miteinander vergleichen. Vergleichen Sie Scores nur zwischen Prognostikern, die über denselben Zeitraum dieselben Fragen beantworten.
Was bedeutet ein Brier-Score von 0,25?
Das ist der Score eines Prognostikers, der für alles 50 % angibt. Jeder quadrierte Fehler beträgt dann unabhängig vom Ergebnis 0,25. Für eine Reihe von Ja-oder-Nein-Fragen ist das der Standard-Benchmark ohne Informationsgehalt. Bei einer unausgewogenen Fragengruppe muss stattdessen die Basisrate als Benchmark verwendet werden.
Wie unterscheidet sich der Brier-Score vom Log-Score?
Beide sind proper scoring rules. Das bedeutet, dass jeder Score minimiert wird, wenn Sie die Wahrscheinlichkeit angeben, von der Sie tatsächlich überzeugt sind. Beim Brier-Score wird der Fehler quadriert, und der Wert liegt zwischen 0 und 1. Der Log-Score bestraft selbstsichere Fehlprognosen deutlich stärker. Eine angegebene Wahrscheinlichkeit von 0 % für ein tatsächlich eintretendes Ereignis verursacht unendliche Kosten.
Kann das Delta einer Option als Wahrscheinlichkeit interpretiert werden?
Der Absolutwert des Delta liegt nahe an der vom Markt implizierten Wahrscheinlichkeit, dass die Option im Geld endet. Es handelt sich dabei um eine risikoneutrale Wahrscheinlichkeit, nicht um eine Wahrscheinlichkeit unter realen Bedingungen. Die obigen Panels bewerten das Delta als Prognose: Auf der einen Achse steht das angegebene Delta, auf der anderen der Anteil dieser Kontrakte, die tatsächlich im Geld endeten.
Jedes Panel enthält darunter die zugehörige SQL-Abfrage im exakten Wortlaut. Dadurch lässt sich die Bewertung Zeile für Zeile prüfen. Wenn Sie ein eigenes Prognoseprotokoll für dieselben Fragen mit den Marktprognosen vergleichen möchten, können Sie die Zahlen auf dem Strasmore-Terminal in einfachem Englisch anfordern.