Strasmore Research
Edukacja Matt ConnorAutor: Matt Connor

Wynik Briera: jak oceniać trafność prognoz

Wynik Briera mierzy błąd średniokwadratowy prognoz prawdopodobieństwa względem faktów. Niższa wartość oznacza wyższą precyzję, a wynik zero przecinek dwadzieścia pięć to poziom losowy.

10
Wynik Briera ocenia prognozę prawdopodobieństwa w odniesieniu do faktycznego przebiegu zdarzeń. Należy przyjąć podane prawdopodobieństwo, odjąć od niego wynik (jeden, jeśli zdarzenie wystąpiło, zero, jeśli nie wystąpiło), podnieść tę różnicę do kwadratu, a następnie wyciągnąć średnią z kwadratów dla wszystkich sporządzonych prognoz. Niższa wartość oznacza lepszy wynik: zero to wynik idealny, natomiast zero przecinek dwadzieścia pięć to wynik uzyskiwany przy przypisywaniu każdemu zdarzeniu prawdopodobieństwa na poziomie pięćdziesięciu procent.

Czym jest wynik Briera?

Prognoza jest twierdzeniem dotyczącym prawdopodobieństwa, a pojedyncze prawdopodobieństwo nigdy nie może być samo w sobie poprawne lub błędne. Jeśli oceniono prawdopodobieństwo zdarzenia na trzydzieści procent i ono wystąpiło, czy prognoza była błędna? Jeszcze nie. Glenn Brier, pisząc w tysiąc dziewięćset pięćdziesiątym roku dla meteorologów, rozwiązał ten problem, odmawiając oceny pojedynczej prognozy. Wynik ten ocenia cały rejestr zdarzeń jednocześnie.

Poniżej znajduje się przykładowy rejestr dziesięciu prognoz. Żadna z tych liczb nie pochodzi z rynku; zostały one wymyślone w celu zilustrowania obliczeń.

  • Dziewięćdziesiąt procent, zdarzenie wystąpiło. Kwadrat błędu zero przecinek zero jeden.
  • Osiemdziesiąt procent, wystąpiło. Zero przecinek zero cztery.
  • Siedemdziesiąt procent, nie wystąpiło. Zero przecinek czterdzieści dziewięć.
  • Sześćdziesiąt procent, wystąpiło. Zero przecinek szesnaście.
  • Pięćdziesiąt procent, nie wystąpiło. Zero przecinek dwadzieścia pięć.
  • Czterdzieści procent, nie wystąpiło. Zero przecinek szesnaście.
  • Trzydzieści procent, wystąpiło. Zero przecinek czterdzieści dziewięć.
  • Dwadzieścia procent, nie wystąpiło. Zero przecinek zero cztery.
  • Dziesięć procent, nie wystąpiło. Zero przecinek zero jeden.
  • Dziewięćdziesiąt pięć procent, wystąpiło. Zero przecinek zero zero dwadzieścia pięć.

Suma dziesięciu kwadratów błędów wynosi jeden przecinek sześćset pięćdziesiąt dwa tysiące pięć dziesięciotysięcznych. Po podzieleniu przez dziesięć wynik Briera wynosi zero przecinek sto sześćdziesiąt pięć tysięcznych. To całe obliczenie, które można wykonać w języku python3 dostępnym standardowo na każdym komputerze z systemem Mac lub Linux. Nie wymaga instalacji ani dodatkowych bibliotek.

  • 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)) transakcje 0.165 0.25

Dlaczego 0,25 jest wartością odniesienia

Załóżmy prawdopodobieństwo pięćdziesiąt procent dla każdego zdarzenia, przy czym każdy kwadrat błędu wynosi 0,25, niezależnie od wyniku. Ta stała wartość 0,25 stanowi punkt odniesienia dla braku informacji w przypadku dowolnego zestawu pytań typu tak lub nie, a wskaźnik umiejętności sprowadza to do jednej liczby: jeden minus wynik podzielony przez wynik punktu odniesienia. Przyjęty logarytm na poziomie 0,165 daje wskaźnik umiejętności równy 0,34.

Jedno zastrzeżenie eliminuje wiele błędnych metod oceniania. Jeśli zdarzenia, które podlegają ocenie, występują tylko w dziesięciu procentach przypadków, podawanie stałej wartości dziesięciu procent za każdym razem daje wynik 0,09, mimo braku jakiejkolwiek wiedzy na temat poszczególnych pytań. Wynik poniżej 0,25 nie stanowi dowodu na posiadanie umiejętności w przypadku jednostronnego zestawu pytań. Uczciwym punktem odniesienia jest wskaźnik bazowy pytań, na które faktycznie udzielono odpowiedzi.

Kalibracja i pewność są oceniane łącznie

Kalibracja oznacza, że spośród wszystkich zdarzeń, którym przypisano prawdopodobieństwo siedemdziesięciu procent, blisko siedemdziesiąt procent faktycznie występuje. Pewność, którą statystycy nazywają rozdzielczością, określa stopień, w jakim prognozujący jest skłonny odejść od stopy bazowej, dysponując konkretną wiedzą. Analityk przypisujący każdemu pytaniu prawdopodobieństwo pięćdziesięciu procent jest idealnie skalibrowany, lecz całkowicie bezużyteczny. Wynik Briera wycenia obie te właściwości jednocześnie: brak kalibracji go podnosi, natomiast uzasadniona pewność go obniża.

Grupowanie stworzonego dziennika według deklarowanego prawdopodobieństwa pokazuje, jak wygląda weryfikacja kalibracji. W języku Python jest to jedna linia kodu na kubełek, hits = [o for p, o in rows if p >= 0.8], a następnie średnia z hits.

  • Deklarowane od dziesięciu do trzydziestu procent, średnia dwadzieścia procent: wystąpiło jedno z trzech, trzydzieści trzy procent.
  • Deklarowane od czterdziestu do pięćdziesięciu procent, średnia czterdzieści pięć procent: wystąpiło zero z dwóch, zero procent.
  • Deklarowane od sześćdziesięciu do siedemdziesięciu procent, średnia sześćdziesiąt pięć procent: wystąpiło jedno z dwóch, pięćdziesiąt procent.
  • Deklarowane od osiemdziesięciu do dziewięćdziesięciu pięciu procent, średnia osiemdziesiąt osiem procent: wystąpiły trzy z trzech, sto procent.

Dziesięć prognoz to zdecydowanie za mało, aby wyciągnąć jakiekolwiek wnioski z tych kubełków. Kalibracja wymaga setek rozstrzygniętych pytań na każdy kubełek. Pozostała część tej strony wykorzystuje dziennik prognoz zawierający ich miliony.

Ocena prognoz rynkowych

Każda notowana opcja posiada parametr, który zachowuje się jak określone prawdopodobieństwo. Delta mierzy, o ile zmienia się cena opcji przy zmianie ceny akcji bazowej o jeden dolar. W przypadku kontraktu, który wygasa jako "in the money" (posiada wartość w momencie wygaśnięcia) lub jako bezwartościowy, wartość bezwzględna delty jest zbliżona do rynkowego implikowanego prawdopodobieństwa, że opcja zakończy się "in the money". Wartość ta pochodzi z tej samej powierzchni zmienności, która wyznacza implikowaną zmienność AAPL. Każdy kontrakt wygasa, zatem każda z tych prognoz podlega weryfikacji.

Poniższe zestawienie obejmuje wszystkie opcje na SPY obserwowane na około miesiąc przed wygaśnięciem, od stycznia dwa tysiące dwudziestego piątego roku do maja dwa tysiące dwudziestego szóstego roku. Opcje pogrupowano według wskazanej delty i obliczono, jak często kontrakty kończyły się "in the money".

ZapytanieDelty opcji na SPY w relacji do częstotliwości wygasania kontraktów w pieniądzu (ITM)
Dokładny kod SQL dla każdej liczby
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 bucket
Run this yourself

Należy porównać obie serie danych. W najniższym przedziale rynek wskazywał średnio 5.2%, a kontrakty te kończyły się "in the money" w 3.7% przypadków. W najwyższym przedziale wskazanie 94% wiązało się z wynikiem 96.5% kończącym się "in the money". We wszystkich 10 przedziałach zrealizowana częstotliwość znajduje się w zbliżonym zakresie do wartości deklarowanej. Na tym polega rola tabeli kalibracyjnej: ujawnia ona różnicę między prognozą a rzeczywistością w podziale na poszczególne przedziały, zamiast ukrywać ją w ramach jednej średniej.

Czy rynek wygrywa z rzutem monetą?

Oto wyniki. Ta sama konstrukcja, kilka znanych nazw, wynik Brier score dla każdej z nich zestawiony z bazowym poziomem pięćdziesięciu procent obliczonym dla dokładnie tych samych kontraktów.

ZapytanieWynik Brier dla deklarowanego przez rynek prawdopodobieństwa, według instrumentu bazowego
Dokładny kod SQL dla każdej liczby
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_brier
Run this yourself

NVDA osiąga wynik 0.1122 w przypadku 28.54 thousand ocenianych kontraktów, przy bazowym poziomie 0.25 dla tego samego zbioru. Najsłabsza z 6 nazw, SPY, nadal utrzymuje się na poziomie 0.1375. Opcje nie są tu magią. Kontrakty typu deep out of the money charakteryzują się deltą bliską zero przecinek zero dwa i w większości wygasają jako bezwartościowe, co jest łatwą prognozą do trafnego przewidzenia, a ta łatwość jest uwzględniona w liczbie. Jest to główny powód, dla którego wynik Brier score podany w izolacji nie mówi niemal nic.

Ten sam prognosta uzyskuje różne wyniki w zależności od pytania

Rozdzielenie identycznej metody według horyzontu czasowego rozstrzygnięcia pytania powoduje wahania uzyskiwanych wyników.

ZapytanieWynik Brier dla rynku w ujęciu horyzontów wygasania, SPY
Dokładny kod SQL dla każdej liczby
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_rank
Run this yourself

Delta rynkowa wyniosła 0.1084 dla kontraktów z terminem zapadalności 1 to 7 days oraz 0.1218 dla kontraktów z terminem 121 to 250 days. Ten sam prognosta, ta sama metoda, dwa różne zestawy pytań. Bazowy poziom pięćdziesięciu procent znajduje się na poziomie 0.25 w pierwszym wierszu oraz 0.25 w ostatnim, co czyni go jedynym stałym punktem odniesienia dla każdego horyzontu. Każde porównanie dwóch prognostów musi opierać się na tych samych pytaniach w tym samym oknie czasowym; w przeciwnym razie porównywany jest stopień trudności pytań, a nie umiejętności.

Dlaczego właściwe reguły punktacji mają znaczenie

Średni błąd bezwzględny (MAE), czyli średnia odległość między prognozowanym prawdopodobieństwem a faktycznym wynikiem, wydaje się rozsądną alternatywą, lecz jest źle skonstruowany. Załóżmy, że szczerze oceniasz prawdopodobieństwo zdarzenia na siedemdziesiąt procent. Jeśli podasz siedemdziesiąt procent, oczekiwany błąd bezwzględny wyniesie 0,7 x 0,3 + 0,3 x 0,7 = 0,42. Jeśli zamiast tego podasz sto procent, błąd spadnie do 0,7 x 0 + 0,3 x 1 = 0,30. W przypadku błędu bezwzględnego uczciwość jest kosztowna, a miernik, który premiuje zawyżanie pewności siebie, nie służy do oceny jakości prognoz.

Wynik Briera nie posiada takiej luki. Jeśli oceniasz prawdopodobieństwo na siedemdziesiąt procent i podasz siedemdziesiąt procent, oczekiwany wynik wyniesie 0,7 x 0,09 + 0,3 x 0,49 = 0,21. Jeśli podasz sto procent, wynik wzrośnie do 0,30. Jeśli podasz sześćdziesiąt procent, wzrośnie do 0,22. Minimum znajduje się dokładnie w punkcie odpowiadającym Twojemu przekonaniu. Reguła posiadająca taką właściwość nazywana jest właściwą (proper) i to właśnie dlatego wynik Briera stał się standardem w turniejach prognostycznych.

Wynik logarytmiczny (log score) to druga powszechnie stosowana właściwa reguła: należy obliczyć logarytm naturalny prawdopodobieństwa przypisanego do zdarzenia, które faktycznie wystąpiło, a następnie zmienić znak. Przypisanie jednego procenta zdarzeniu, które wystąpiło, kosztuje 4,6, a przypisanie zera procent kosztuje nieskończoność. W przypadku hipotetycznej prognozy dziesięciopunktowej wynik wynosi 0,483 w porównaniu do 0,693 dla bazowego rozkładu płaskiego. Wynik Briera mieści się w przedziale od zera do jeden, co jest bardziej intuicyjne w interpretacji. Wynik logarytmiczny nie posiada górnej granicy, co sprawdza się w ocenach, w których ryzyko koncentruje się w tzw. grubych ogonach rozkładu.

Co to oznacza dla kontraktów typu event contract

Kontrakt typu event contract, który wypłaca 1 USD w przypadku wystąpienia zdarzenia i 0 USD w przypadku jego niewystąpienia, jest notowany po cenie odzwierciedlającej prawdopodobieństwo. Sześćdziesiąt dwa centy oznaczają prognozę na poziomie 62%, przed uwzględnieniem spreadu i prowizji. Nasz przewodnik dotyczący cen kontraktów typu event contract jako prawdopodobieństw omawia tę konwersję, a sposób rozliczania kontraktów typu event contract wyjaśnia, co w języku kontraktu oznacza stwierdzenie, że „zdarzenie miało miejsce”.

Cena ta stanowi prognozę z publiczną historią wyników oraz datą rozliczenia, co czyni ją punktem odniesienia, który musi zostać pokonany przez własne zestawienie wyników. Należy oceniać własne prognozy w oparciu o te same pytania i w tym samym przedziale czasowym. Trader, którego wynik Brier score jest wyższy niż cena kontraktu, nie posiada mierzalnej przewagi w danym zestawie pytań, niezależnie od tego, jak przekonująca jest narracja towarzysząca transakcji. Ten sam test ma zastosowanie do zakładów sportowych po usunięciu marży bukmacherskiej z kursów, a także do rynków stóp procentowych, gdzie prawdopodobieństwa stóp Fed dostarczają datowanego prawdopodobieństwa dla pytania o znanym dniu rozstrzygnięcia.

Jak te panele oceniają rynek

Delta pochodzi z dziennego zapisu greckich parametrów opcyjnych dla każdego kontraktu. Uwzględniane są wyłącznie kontrakty, dla których odnotowano wolumen w dniu obserwacji oraz zbieżne rozwiązanie zmienności. Wynik odczytywany jest z ceny zamknięcia instrumentu bazowego w dniu wygaśnięcia kontraktu: opcja call jest uznawana za in the money, gdy cena zamknięcia znajduje się powyżej ceny wykonania, a opcja put – gdy znajduje się poniżej. Rzeczywiste rozliczenie następuje po decyzji o wykonaniu opcji po zamknięciu sesji, dlatego kontrakty wygasające w pobliżu ceny wykonania mogą być rozliczane w oparciu o to uproszczenie. Każdy kontrakt w tych panelach już wygasł, a koszyki o dłuższym horyzoncie czasowym siłą rzeczy bazują na wcześniejszych datach obserwacji w danym przedziale. Split akcji przypadający między datą obserwacji a wygaśnięciem spowodowałby, że cena wykonania i cena rozliczenia znajdowałyby się w różnych skalach, co stanowi kolejny powód, dla którego każdy koszyk zawiera informację o liczebności próby.

Delta stanowi przybliżenie prawdopodobieństwa neutralnego wobec ryzyka, a nie prawdopodobieństwa rzeczywistego. Obie wartości różnią się o premię za ryzyko zawartą w cenach opcji, a tabela kalibracyjna jest instrumentem, który mierzy tę różnicę, zamiast ją pomijać.

FAQ

Czy niższy wynik Brier score jest lepszy?

Tak. Wynik Brier score jest miarą błędu, zatem zero oznacza wynik idealny, a jeden to wynik najgorszy możliwy, uzyskany poprzez przypisanie stuprocentowego prawdopodobieństwa każdemu zdarzeniu, które nie wystąpiło. Każdy wynik poniżej zero przecinek dwadzieścia pięć jest lepszy od wyniku uzyskanego poprzez udzielenie odpowiedzi pięćdziesiąt procent na każde pytanie.

Jaki wynik Brier score jest uznawany za dobry?

Nie istnieje uniwersalna dobra wartość, ponieważ wynik zależy od stopnia trudności pytań. Wyniku synoptyka prognozującego opady deszczu na poziomie zero przecinek dziesięć nie można porównywać z wynikiem analityka politycznego prognozującego wyrównane wybory na poziomie zero przecinek osiemnaście. Wyniki należy porównywać wyłącznie pomiędzy prognostykami odpowiadającymi na te same pytania w tym samym przedziale czasowym.

Co oznacza wynik Brier score na poziomie zero przecinek dwadzieścia pięć?

Jest to wynik prognostyka, który na każde pytanie odpowiada pięćdziesiąt procent, ponieważ każdy podniesiony do kwadratu błąd wynosi wtedy zero przecinek dwadzieścia pięć, niezależnie od wyniku. Jest to standardowy punkt odniesienia dla braku informacji w przypadku zestawu pytań typu tak lub nie, choć w przypadku pytań o niesymetrycznym rozkładzie odpowiedzi, punktem odniesienia powinna być stopa bazowa.

Czym Brier score różni się od log score?

Obie metody są właściwymi regułami punktacji, co oznacza, że każda z nich osiąga minimum, gdy podaje się prawdopodobieństwo, w które rzeczywiście się wierzy. Brier score podnosi błąd do kwadratu i mieści się w przedziale od zera do jednego. Log score znacznie surowiej karze za błędne prognozy o wysokiej pewności, a wskazanie zera procent dla zdarzenia, które faktycznie wystąpiło, wiąże się z kosztem nieskończonym.

Czy deltę opcji można interpretować jako prawdopodobieństwo?

Wartość bezwzględna delty jest zbliżona do rynkowego implikowanego prawdopodobieństwa, że opcja wygaśnie w pieniądzu, przy czym jest to prawdopodobieństwo neutralne względem ryzyka, a nie prawdopodobieństwo rzeczywiste. Powyższe panele oceniają ją jako prognozę: na jednej osi znajduje się wskazana delta, a na drugiej odsetek kontraktów, które faktycznie wygasły w pieniądzu.


Każdy z paneli zawiera dokładne zapytanie SQL, dzięki czemu ocena jest weryfikowalna wiersz po wierszu. Aby ocenić własny log prognoz względem rynku w odniesieniu do tych samych pytań, należy poprosić o dane w języku naturalnym za pośrednictwem terminala Strasmore.

#prediction markets#forecasting#brier score#calibration#event contracts