Brier score ni nini na jinsi ya kupima usahihi wa utabiri
Brier score hupima usahihi wa utabiri wa uwezekano kama wastani wa makosa ya mraba. Alama ya chini ni bora, huku sifuri nukta mbili tano ikitokana na kusema asilimia hamsini.
Brier score ni kipimo kinachotathmini usahihi wa utabiri wa uwezekano dhidi ya matokeo halisi. Ili kukokotoa, chukua uwezekano ulioutabiri, toa matokeo halisi (1 ikiwa tukio lilitokea, 0 ikiwa halikutokea), kisha uweke mraba wa tofauti hiyo. Hatimaye, tafuta wastani wa viwanja hivyo kwa kila utabiri uliofanya. Alama ya chini ni bora zaidi: 0 inawakilisha rekodi kamilifu, huku 0.25 ikiwa ni alama unayopata kwa kusema "asilimia hamsini" kwa kila kitu.
Brier score ni nini?
Utabiri ni madai kuhusu uwezekano, na uwezekano mmoja hauwezi kuwa sahihi au makosa peke yake. Ulikadiria jambo kuwa na uwezekano wa asilimia thelathini na likatokea. Je, ulikosea? Bado. Glenn Brier, alipokuwa akiandikia watabiri wa hali ya hewa mwaka 1950, alitatua suala hilo kwa kukataa kupima utabiri wowote mmoja. Alama hii hupima kumbukumbu nzima ya utabiri kwa pamoja.
Hii hapa ni kumbukumbu ya kubuni ya utabiri kumi. Hakuna namba hizi zinazotoka sokoni, zimebuniwa ili kuonyesha hesabu husika.
- Asilimia 90 iliyotajwa, tukio likatokea. Hitilafu iliyopandishwa mraba ni 0.01.
- Asilimia 80 iliyotajwa, likatokea. 0.04.
- Asilimia 70 iliyotajwa, halikutokea. 0.49.
- Asilimia 60 iliyotajwa, likatokea. 0.16.
- Asilimia 50 iliyotajwa, halikutokea. 0.25.
- Asilimia 40 iliyotajwa, halikutokea. 0.16.
- Asilimia 30 iliyotajwa, likatokea. 0.49.
- Asilimia 20 iliyotajwa, halikutokea. 0.04.
- Asilimia 10 iliyotajwa, halikutokea. 0.01.
- Asilimia 95 iliyotajwa, likatokea. 0.0025.
Jumla ya hitilafu kumi zilizopandishwa mraba ni 1.6525. Gawanya kwa kumi na Brier score itakuwa 0.165. Huo ndio ukokotoaji mzima, na unafanya kazi katika python3 inayokuja ikiwa imesakinishwa kwenye kompyuta yoyote ya Mac au Linux. Hakuna cha kusakinisha, hakuna maktaba za ziada.
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))prints0.165 0.25
Kwa nini 0.25 ndiyo namba ya kuishinda
Sema asilimia hamsini kuhusu kila kitu na kila kosa la mraba ni 0.25, vyovyote itakavyokuwa. Namba hiyo isiyobadilika ya 0.25 ndiyo kigezo cha kutokuwa na taarifa kwa seti yoyote ya maswali ya ndiyo au hapana, na alama ya ustadi huigeuza kuwa takwimu moja: moja kutoa alama yako ikigawanywa na ile ya kigezo. Logi iliyotungwa katika 0.165 inaleta alama ya ustadi ya 0.34.
Tahadhari moja huondoa uwekaji alama mbaya mwingi. Ikiwa matukio unayoyapima hutokea asilimia kumi tu ya muda, kusema asilimia kumi kamili kila wakati hutoa alama 0.09 huku ukiwa hujui chochote kuhusu maswali mahususi. Alama iliyo chini ya 0.25 si ushahidi wa ustadi kwenye seti ya maswali isiyo na uwiano. Kigezo cha kweli ni kiwango cha msingi cha maswali uliyojibu kwa uhalisia.
Ulinganifu na imani hupimwa pamoja
Ulinganifu (calibration) unamaanisha kuwa katika kila kitu ulichokitabiria asilimia sabini, karibu asilimia sabini ya matukio hayo hutokea. Imani, ambayo wataalamu wa takwimu huiita resolution, ni kiwango ambacho uko tayari kuhama kutoka kwenye kiwango cha msingi (base rate) unapokuwa na ufahamu wa jambo fulani. Mtabiri anayesema asilimia hamsini kwa kila swali ana ulinganifu kamili lakini hana faida yoyote, na Brier score hupima sifa zote mbili kwa wakati mmoja: kutokuwa na ulinganifu huongeza alama hiyo, na imani inayotokana na uchambuzi sahihi huipunguza.
Kuweka kumbukumbu za utabiri katika vikundi kulingana na uwezekano uliotajwa kunaonyesha jinsi ukaguzi wa ulinganifu unavyofanyika. Katika Python, hii ni mstari mmoja kwa kila kikundi, hits = [o for p, o in rows if p >= 0.8], kisha wastani wa hits.
- Asilimia kumi hadi thelathini zilizotajwa, wastani asilimia ishirini: moja kati ya tatu ilitokea, asilimia thelathini na tatu.
- Asilimia arobaini hadi hamsini zilizotajwa, wastani asilimia arobaini na tano: sifuri kati ya mbili ilitokea, asilimia sifuri.
- Asilimia sitini hadi sabini zilizotajwa, wastani asilimia sitini na tano: moja kati ya mbili ilitokea, asilimia hamsini.
- Asilimia themanini hadi tisini na tano zilizotajwa, wastani asilimia themanini na nane: tatu kati ya tatu ilitokea, asilimia mia moja.
Utabiri kumi hautoshi hata kidogo kupata hitimisho lolote kutoka kwa vikundi hivyo. Ulinganifu unahitaji mamia ya maswali yaliyotatuliwa kwa kila kikundi. Sehemu iliyobaki ya ukurasa huu inatumia kumbukumbu ya utabiri yenye mamilioni ya maswali hayo.
Kupima utabiri wa soko lenyewe
Kila option iliyoorodheshwa ina namba inayofanya kazi kama uwezekano uliotajwa. Delta hupima kiasi ambacho bei ya option hubadilika kwa kila dola moja ya mabadiliko katika hisa husika, na kwa mkataba ambao ama unamalizia ukiwa in the money (wenye thamani wakati wa kuiva) au hauna thamani, thamani kamili ya delta hukaribia uwezekano uliotajwa na soko kwamba mkataba huo utamalizia ukiwa in the money. Hii hutokana na uso uleule unaoweka AAPL implied volatility. Kila mkataba una muda wa kuiva, kwa hivyo kila utabiri kati ya hiyo hupimwa.
Jopo hapa chini linachukua kila option ya SPY iliyoonekana takribani mwezi mmoja kabla ya kuiva, kuanzia Januari 2025 hadi Mei 2026, linazigawa katika makundi kulingana na delta iliyotajwa, na kuhesabu mara ngapi mkataba ulimalizia ukiwa in the money.
SQL halisi nyuma ya kila namba
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 bucketSoma mfululizo huu miwili kwa kulinganisha. Katika kundi la chini kabisa, soko lilitaja wastani wa 5.2% na mikataba hiyo ilimalizia ukiwa in the money kwa 3.7% ya muda. Katika kundi la juu kabisa, 94% iliyotajwa ilikuja na 96.5% iliyomalizia ukiwa in the money. Katika makundi yote 10, marudio yaliyotokea yapo katika kiwango sawa na yale yaliyotajwa. Hiyo ndiyo kazi nzima ya jedwali la ulinganifu (calibration table): linafichua pengo kati ya kile ambacho mtabiri anasema na kile kinachotokea, kundi kwa kundi, badala ya kulificha ndani ya wastani mmoja.
Je, soko linashinda kubahatisha kwa sarafu?
Sasa alama zenyewe. Muundo ni uleule, majina kadhaa yanayojulikana, kila alama ya Brier ya jina imewekwa kando ya msingi wa asilimia hamsini uliokokotolewa kwa mikataba inayofanana kabisa.
SQL halisi nyuma ya kila namba
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 alama 0.1122 katika mikataba 28.54 thousand iliyopimwa, dhidi ya msingi wa 0.25 kwenye seti inayofanana. Jina dhaifu zaidi kati ya 6, SPY, bado linapata 0.1375. Options si uchawi hapa. Mikataba ya deep out of the money ina deltas karibu na 0.02 na mingi huisha bila thamani, jambo ambalo ni utabiri rahisi kuupata kwa usahihi, na urahisi huo umejumuishwa kwenye namba hiyo. Hiyo ndiyo sababu kuu kwa nini alama ya Brier iliyotajwa peke yake haikupi taarifa yoyote ya maana.
Mtabiri yuleyule hupata alama tofauti kwenye maswali tofauti
Gawa mbinu inayofanana kulingana na muda ambao swali linachukua kutatuliwa na jinsi alama zinavyobadilika chini ya mbinu hiyo.
SQL halisi nyuma ya kila namba
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_rankDelta ya soko ilipata alama 0.1084 kwenye mikataba yenye muda wa 1 to 7 days na 0.1218 kwenye mikataba yenye muda wa 121 to 250 days. Mtabiri yuleyule, mbinu ileile, seti mbili tofauti za maswali. Msingi wa asilimia hamsini (50%) uliopo kwenye mstari wa kwanza ni 0.25 na kwenye mstari wa mwisho ni 0.25, jambo linaloufanya kuwa rejeleo moja lisilobadilika katika kila kipindi. Ulinganifu wowote kati ya watabiri wawili lazima ufanyike kwenye maswali yaleyale ndani ya kipindi kilekile, vinginevyo unalinganisha ugumu wa maswali badala ya ustadi.
Kwa nini kanuni sahihi za uwekaji alama ni muhimu
Mean absolute error, ambayo ni wastani wa umbali wa kawaida kati ya uwezekano ulioutabiri na matokeo halisi, inaonekana kama mbadala unaofaa lakini inatoa matokeo mabaya. Tuseme unaamini kwa dhati kuwa tukio lina uwezekano wa asilimia sabini. Ukisema asilimia sabini, kosa lako la wastani linalotarajiwa ni 0.7 x 0.3 + 0.3 x 0.7 = 0.42. Badala yake, ukisema asilimia mia moja, kosa hilo linashuka hadi 0.30. Chini ya mfumo wa absolute error, namba ya kweli inakugharimu, na kipimo kinachokulipa kwa kuzidisha imani yako hakipimi utabiri.
Brier score haina dosari hiyo. Ukiamini asilimia sabini na ukasema asilimia sabini, alama yako inayotarajiwa ni 0.21. Ukisema asilimia mia moja, alama hiyo inapanda hadi 0.30. Ukisema asilimia sitini, inapanda hadi 0.22. Alama ya chini kabisa inapatikana kwenye namba unayoiamini hasa. Kanuni yenye sifa hiyo huitwa proper, na ndiyo sababu Brier ikawa ndiyo kiwango cha kawaida katika mashindano ya utabiri.
Log score ndiyo kanuni nyingine ya kawaida ya aina ya proper: chukua natural log ya uwezekano ulioupa tukio lililotokea, kisha ubadilishe alama yake. Kusema asilimia moja kwa jambo linalotokea kunagharimu 4.6, na kusema asilimia sifuri kunagharimu infinity. Katika utabiri wa log uliotungwa wa kumi, matokeo ni 0.483 dhidi ya 0.693 kwa msingi wa flat baseline. Brier inabaki kati ya 0 na 1, jambo ambalo linasomeka kwa asili zaidi kama kadi ya alama. Log score haina kikomo, jambo linalofaa kwa uwekaji alama ambapo matukio ya nadra (tails) hubeba hatari.
Maana yake kwa mikataba ya matukio (event contracts)
Mkataba wa tukio unaolipa $1 ikiwa jambo fulani litatokea na $0 ikiwa halitatokea, huuzwa kwa bei inayoonyesha uwezekano tayari. Senti sitini na mbili ni utabiri wa 62%, kabla ya kuondoa spread na ada. Mwongozo wetu kuhusu bei za mikataba ya matukio kama uwezekano unaelezea ubadilishaji huo, na jinsi mikataba ya matukio inavyotatuliwa unaelezea maana ya "limetokea" kulingana na maneno ya mkataba wenyewe.
Bei hiyo ni utabiri wenye rekodi ya hadhara na tarehe ya utatuzi, jambo linaloifanya kuwa kigezo ambacho kumbukumbu zako mwenyewe lazima zikipite. Pima utabiri wako kwenye maswali yaleyale ndani ya kipindi hichohicho. Mfanyabiashara ambaye Brier score yake inazidi bei hiyo hana faida yoyote iliyopimwa kwenye seti hiyo ya maswali, hata kama maelezo yanayoambatana na biashara hiyo ni mazuri kiasi gani. Jaribio hilohilo linatumika kwenye odds za michezo pindi unapoondoa vig kutoka kwenye odds za kubashiri, na kwenye masoko ya viwango vya riba, ambapo odds za viwango vya Fed hukupa uwezekano uliopangwa kwa swali lenye siku inayojulikana ya utatuzi.
Jinsi paneli hizi zinavyokadiria soko
Delta inatokana na rekodi ya kila siku ya options greeks kwa kila mkataba. Mikataba yenye ujazo (volume) pekee katika siku ya uchunguzi na suluhisho la volatility lililokutana ndiyo inayojumuishwa. Matokeo husomwa kutoka kwenye bei ya kufunga ya underlying katika tarehe ya mwisho ya mkataba: call huhesabiwa kuwa in the money wakati bei hiyo ya kufunga iko juu ya strike, na put ikiwa iko chini yake. Utatuzi halisi hupitia uamuzi wa exercise baada ya kufungwa kwa soko, kwa hivyo mikataba iliyopo karibu sana na strike inaweza kutatuliwa kulingana na urahisi huu. Kila mkataba katika paneli hizi umekwisha muda wake, na ndoo za muda mrefu zaidi lazima zichukue data kutoka tarehe za awali za uchunguzi ndani ya kipindi hicho. Mgawanyo wa hisa (share split) unaotokea kati ya tarehe ya uchunguzi na tarehe ya mwisho ungeifanya strike na bei ya utatuzi kuwa katika mizani tofauti, hiyo ni sababu nyingine inayofanya kila ndoo kubeba idadi yake ya sampuli.
Delta hukadiria uwezekano wa kutokuwa na hatari (risk-neutral probability) badala ya ule wa ulimwengu halisi. Hizi mbili hutofautiana kwa sababu ya risk premium iliyopo kwenye bei za option, na jedwali la calibration ndilo chombo kinachopima tofauti hiyo badala ya kuichukulia kuwa haipo.
Maswali Yanayoulizwa Mara kwa Mara
Je, Brier score ya chini ni bora?
Ndiyo. Brier score ni kipimo cha makosa, kwa hivyo 0 ni rekodi kamilifu na 1 ndiyo mbaya zaidi, inayopatikana kwa kusema asilimia mia moja kwa kila jambo ambalo halikutokea. Chochote kilicho chini ya 0.25 kinashinda alama ungepata kwa kujibu asilimia hamsini kwa kila swali.
Brier score nzuri ni ipi?
Hakuna namba moja nzuri kwa kila kitu, kwa sababu alama hutegemea ugumu wa maswali. Mtabiri wa hali ya hewa mwenye 0.10 kuhusu mvua ya kesho na mtabiri wa kisiasa mwenye 0.18 kuhusu chaguzi za ushindani hawawezi kulinganishwa. Linganisha alama kati ya watabiri wanaojibu maswali yaleyale katika kipindi hichohicho pekee.
Brier score ya 0.25 inamaanisha nini?
Hiyo ni alama ya mtabiri anayesema asilimia hamsini kwa kila kitu, kwa sababu kila kosa lililopandishwa mraba huwa 0.25 bila kujali matokeo. Hicho ndicho kipimo sanifu cha kutokuwa na taarifa kwa seti ya maswali ya ndiyo au hapana, ingawa seti ya maswali isiyo na uwiano inahitaji kiwango cha msingi (base rate) kama kipimo chake badala yake.
Brier score inatofautianaje na log score?
Zote ni kanuni sahihi za utoaji alama, ikimaanisha kila moja hupungua unaposema uwezekano unaouamini kweli. Brier hupandisha mraba kosa na kubaki kati ya 0 na 1. Log score huadhibu makosa ya kujiamini kupita kiasi kwa ukali zaidi, na kusema asilimia 0 kwa kitu kinachotokea hugharimu infinity.
Je, option delta inaweza kusomwa kama uwezekano?
Thamani kamili ya delta iko karibu na uwezekano uliodokezwa na soko (implied probability) kwamba option itamaliza ikiwa in-the-money, na huo ni uwezekano wa kutokuwa na upendeleo wa hatari (risk-neutral probability) badala ya uwezekano wa ulimwengu halisi. Paneli zilizo hapo juu huikadiria kama utabiri: delta iliyotajwa kwenye mhimili mmoja, na sehemu ya mikataba hiyo iliyomaliza ikiwa in-the-money kwenye mhimili mwingine.
Kila paneli hapa inakuja na SQL kamili iliyo chini yake, kwa hivyo ukadiriaji unaweza kuhakikiwa mstari kwa mstari. Ili kupima log ya utabiri wako dhidi ya ile ya soko kwenye maswali yaleyale, omba namba hizo kwa lugha rahisi kwenye terminal ya Strasmore.