„Frecvența actualizării convingerilor a contat; s-a dovedit a fi cel mai puternic predictor comportamental unic al acurateței”Barbara Mellers, Philip E. Tetlock et al. · Identifying and Cultivating Superforecasters as a Method of Improving Probabilistic Predictions · 2015 · Mellers, Stone, Murray et al., «Identifying and Cultivating Superforecasters as a Method of Improving Probabilistic Predictions», Perspectives on Psychological Science 10(3), 2015, pp. 267–281, p. 277
Cota nouă este cota veche înmulțită cu raportul de verosimilitate al dovezii.
Teorema lui Bayes are o formă pe care o poți face în minte: cota de după dovadă este cota de dinainte înmulțită cu raportul de verosimilitate. Cota e p / (1 − p): 0,32 devine 0,47 la 1. Raportul de verosimilitate răspunde la o singură întrebare — de câte ori e mai probabil să văd această dovadă dacă ipoteza e adevărată decât dacă e falsă? Un raport de 2 dublează cota, unul de 0,5 o înjumătățește, iar unul de 1 nu mișcă nimic, oricât de dramatică ar fi știrea. În logaritmi, dovezile se adună: fiecare raport de 2 adaugă 0,69 la logaritmul cotei. Mellers și colegii (2015, p. 277) au găsit că frecvența actualizării a fost cel mai puternic predictor comportamental al acurateței. În primul an al turneului, superprognozatorii au dat în medie 2,77 prognoze pe întrebare, față de 1,47 în grupurile de comparație. Un studiu ulterior al lui Atanasov și colegilor (2020) a arătat că, pe aceleași date, cei care fac actualizări mici și dese sunt mai preciși decât cei care fac revizuiri rare și mari. Două capcane. Prima: aceeași informație numărată de două ori, fiindcă a apărut în trei publicații care se citează una pe alta. A doua: confuzia între cât de surprinzătoare e o știre și cât de diagnostică e ea. Analiza ipotezelor concurente din motorul olivLaw adună scoruri de la −2 la +2 și le normalizează; nu are o probabilitate inițială și nici rapoarte de verosimilitate, deci nu e bayesiană.
Exemplu aplicat. Ana reia întrebarea fictivă din lecția 7 — «Va intra în funcțiune platforma de facturare a Agenției X până la 30 iunie 2027?» — de la rata de bază de 0,32. În următoarele trei luni sosesc trei dovezi. Pentru fiecare, ea nu întreabă «e o veste bună?», ci estimează două probabilități: cât de probabilă ar fi dovada dacă platforma va porni la termen și cât dacă nu va porni.
dovada P(E|da) P(E|nu) RV cota p log-cotă
start – – – 0,471 0,320 −0,754
E1 pilotul trece testul de acceptanță 0,90 0,45 2,0 0,941 0,485 −0,061
E2 contractul furnizorului e contestat 0,20 0,40 0,5 0,471 0,320 −0,754
E3 agenția publică data lansării 0,60 0,40 1,5 0,706 0,414 −0,348Calculul pe rânduri: 0,32 / 0,68 = 0,4706; × 2 = 0,9412, adică p = 0,9412 / 1,9412 = 0,485; × 0,5 = 0,4706, înapoi la 0,32; × 1,5 = 0,7059, adică p = 0,414. În logaritmi naturali e o simplă adunare: −0,754 + 0,693 − 0,693 + 0,405 = −0,348.
Trei observații. Întâi, E1 e o veste bună spectaculoasă, dar nu e decisivă: și proiectele care întârzie trec adesea testul pilot, de aici P(E|nu) = 0,45. Apoi, ordinea nu contează — înmulțirea e comutativă —, deci Ana poate actualiza pe măsură ce vin dovezile, fără să aștepte «tabloul complet». În fine, fiecare pas mută probabilitatea cu cel mult 17 puncte. Așa arată actualizarea în pași mici: nu e timiditate, ci consecința faptului că puține dovezi au rapoarte mai mari de 3 sau mai mici de 1/3.
Ce ar strica totul: dacă E3 ar fi fost aceeași informație ca E1, repetată de comunicatul agenției, înmulțirea cu 1,5 ar număra pilotul a doua oară. Înainte de a înmulți, Ana scrie lângă fiecare dovadă sursa ei primară.
În motorul olivLaw. Ce există azi: analiza ipotezelor concurente din simulation_service, sarcina `ach_refresh` cu funcția `_shape_for_ui`, folosește o bibliotecă fixă de ipoteze; un model AI notează fiecare dovadă de la −2 la +2 față de fiecare ipoteză; scorurile se adună, se deplasează astfel încât minimul să fie zero și se normalizează, iar rezultatul e afișat ca «posterior». Nu există probabilitate inițială, iar deplasarea face ca raportul dintre două ipoteze să depindă de cea mai slabă ipoteză din listă.
Un exemplu numeric. Sume de scoruri 4, 2 și −1 pentru H1, H2, H3: deplasarea cu +1 dă 5, 3, 0, adică 0,625, 0,375 și 0 — H3 primește probabilitate zero, o certitudine pe care nimeni n-a afirmat-o. Adaug o H4 irelevantă, cu suma −4: deplasarea devine +4, rezultatul 8, 6, 3, 0, adică 0,471, 0,353, 0,176, 0. Raportul H1/H2 a coborât de la 1,67 la 1,33 doar pentru că am adăugat o ipoteză pe care n-o crede nimeni.
Propunerea: fiecare scor s devine un raport de verosimilitate 2 la puterea s (s = +2 înseamnă «dovada e de patru ori mai probabilă sub această ipoteză»), log-probabilitățile se adună peste probabilitatea inițială și se normalizează cu softmax. Raportul H1/H2 rămâne 2 la puterea 4 − 2, adică 4, indiferent ce alte ipoteze sunt în listă. Presupunerea de independență între dovezi rămâne și trebuie spusă în pagină.
from math import exp, log
def ach_posterior(prior: dict[str, float], scores: dict[str, list[int]],
base: float = 2.0) -> dict[str, float]:
# scor s de la -2 la +2 -> raport de verosimilitate base ** s
logp = {h: log(prior[h]) + sum(s * log(base) for s in scores[h]) for h in prior}
top = max(logp.values())
w = {h: exp(v - top) for h, v in logp.items()}
z = sum(w.values())
return {h: round(x / z, 3) for h, x in w.items()}
prior = {"H1": 1 / 3, "H2": 1 / 3, "H3": 1 / 3}
scores = {"H1": [2, 1, 1], "H2": [1, 1, 0], "H3": [0, -1, 0]}
print(ach_posterior(prior, scores)) # {'H1': 0.78, 'H2': 0.195, 'H3': 0.024}Baza 2 e o alegere de calibrare, nu un adevăr: după ce analizele se rezolvă în forecast_resolution, baza se poate potrivi pe scorul Brier al posterioarelor.
De ce contează Raportul de verosimilitate te obligă să întrebi cât de probabilă ar fi dovada și în lumea în care greșești — singura întrebare care separă o știre zgomotoasă de una diagnostică.