Прогнозы
Одна проверяемая гипотеза: мем, начавший распространяться, перейдёт в реальность — появится подтверждённая связь с новостным трендом за 7 суток. Критерии зафиксированы заранее (docs/forecast-contract.md); промахи публичны и не удаляются.
Brier score
0.2638 (0.255–0.2736)
Калибровка: предсказанная вероятность против фактической частоты
Разрешённые прогнозы разбиты на равные по размеру группы по предсказанной вероятности. У откалиброванной модели «предсказано» ≈ «сбылось» в каждой строке; интервал — 95% CI Уилсона (мало исходов → широкий, и это честно).
| Предсказано | Сбылось | Исходов | 95% CI |
|---|
| 35% | 25% | 689 | 22–28% |
| 50% | 20% | 688 | 17–23% |
Контракт №2: перелом → важность
Тренд в резком ускорении с локальной значимостью достигнет национальной (4/5) за 48 часов. Статистика — по действующей версии контракта (v1.1, с 17.07 19:51 UTC — момента фактического деплоя нового триггера). Прогнозы, порождённые прежним триггером, в табло не входят: часть аннулирована с публичной причиной, остальные исключены по признаку «создан прежней логикой». Уточнено 26.07: прежняя граница стояла на 12 часов раньше деплоя, из-за чего в табло попадали 18 прогнозов старого триггера — все с исходом «попал» (отрицательный исход за это окно наступить не мог), что завышало долю попаданий. Сами прогнозы остаются публичными.
Brier score
0.0974 (0.0923–0.1028)
⚠ Правило разметки исхода изменилось: «попал» теперь засчитывается только по свидетельству ИЗ окна прогноза (прежнее правило принимало наблюдение значимости в любой момент, включая уже после дедлайна). Brier и skill выше посчитаны только по 8410 строкам нового правила; ещё 1127 разрешённых прогнозов размечены прежним правилом и в эти числа не входят — они остаются публичными в списке. Два поколения в один ряд не сводятся: они отвечают на разные вопросы.
⚠ Открытых прогнозов больше, чем разрешённых: ранние исходы структурно смещены к «попаданиям» (значимость может вырасти досрочно, промах фиксируется только на дедлайне). Судить о калибровке честно можно после разрешения волны.
Контракт №3: security → патч за 7 дней
Для уязвимости HIGH/CRITICAL из tech-выпуска, известной OSV, но ещё без фикса, исправленная версия появится за 7 суток от публикации advisory. Резолв — по api.osv.dev (внешний источник, не наши же данные); выборка смещена к open-source экосистемам, покрытым OSV. Калибровка предварительная — база уточнится бэктестом по истории OSV.
Brier score
0.25 (0.25–0.25)
⏳ открытsecurity → патчуверенность 50% · базовая частотадедлайн 4 нояб., 03:17 UTC
⏳ открытперелом → важностьуверенность 10% · базовая частотадедлайн 4 нояб., 04:12 UTC
Уверенность — константа контракта, а не модель: одно и то же число на всех прогнозах одного типа. Для «мем → реальность» оно получено бэктестом; для «перелом → важность» исторический бэктест невозможен (правило разметки не восстановимо задним числом), там число выбрано осознанно неинформированным; для «патч за 7 дней» — интерим до бэктеста по истории OSV. Пока ставка постоянна, skill против базовой частоты не может быть положительным ни при каких данных — это свойство арифметики, а не качества конвейера. Модель публикуется, только когда побьёт базу на отложенной выборке.
Аннулированные (∅) не считаются ни попаданием, ни промахом, но означают разное: у «мем → реальность» — сбой данных (кластер скрыт модерацией); у «перелом → важность» — исчезновение тренда, то есть информативное цензурирование (пропадают не случайные строки); у «патч за 7 дней» — разрыв покрытия проверками. Смешивать их в «технический мусор» значило бы прятать смещение.