Валидация и журнал прогнозов

Страница показывает, сходится ли недельный индекс Cassandra с независимыми измерениями конфликтности: GPR, ACLED и CrisisWatch. Здесь же — журнал прогнозов с попаданиями и промахами и раздел о том, чего это сравнение не доказывает.

Все числа — производная validation.json и forecast-ledger.json; руками файлы не правятся.

Сводка

Недельный индекс Cassandra сравнивается с тремя независимыми рядами: GPR, ACLED и CrisisWatch. Ниже — пересечение по периодам, коэффициенты, совпадение направления, лаги и расхождения. Всё пересобирается из офлайн-фикстур одной командой, поэтому числа на странице воспроизводимы.

Методология: 3.0; недель в ряду: 9 (2026-08-30 — 2026-10-25); компараторов: 3; с коэффициентами: 1; без коэффициентов: 2.

Минимум пар для публикации коэффициента: 6; при 6—19 парах значение помечается «предварительно». Ниже порога коэффициент не рассчитывается: в таблице стоит «—» и причина.

Компараторы

Три независимых ряда и статус сравнения по каждому. Подробности — в разделах ниже.

РядПересечениеУровниДельтыНаправлениеЛаг
Geopolitical Risk Index (GPR)7предварительнопредварительно17 %сдвиг 0
ACLED — события политического насилия3не рассчитываетсяне рассчитывается50 %не рассчитывается
CrisisWatch (International Crisis Group)2не рассчитываетсяне рассчитываетсяне рассчитываетсяне рассчитывается

Geopolitical Risk Index (GPR)

Доля газетных публикаций о геополитических рисках (война, терроризм, давление), взвешенная по частотности публикаций; дневной индекс GPRD.

Пересечение: 7 периодов, 2026-08-30 — 2026-10-11; гранулярность: неделя.

Источник: Geopolitical Risk Index (GPR); данные: ссылка на ряд; получено 2026-10-18; по состоянию на 2026-10-13.

Условия: Caldara & Iacoviello, GPR — условия использования на странице источника (matteoiacoviello.com/gpr.htm).

Метрики

РядnПирсонСпирменp (перестановки)Статус
Уровни7-0.150.130.742предварительно
Дельты6-0.60-0.640.231предварительно

Совпадение знаков первых разностей: 17 % (1 из 6, пропущено 0). Статус: описательно.

Лаг

Кросс-корреляция первых разностей при сдвигах −2…+2; положительный сдвиг означает, что внешний ряд опережает индекс.

СдвигnПирсон
-24— пар меньше порога
-15— пар меньше порога
06-0.60
15— пар меньше порога
24— пар меньше порога

Наибольший по модулю коэффициент — при сдвиге 0 (-0.60). Статус: предварительно.

Расхождения

Периоды, где знаки первых разностей разошлись (обе дельты ненулевые).

ПериодΔ индексаΔ внешнего ряда
2026-10-11+10-26.45
2026-10-04-1+7.22
2026-09-27-9+13.49
2026-09-13+1-4.52
2026-09-06-9+22.36

ACLED — события политического насилия

Число зафиксированных событий политического насилия за месяц (все типы, глобально) и число погибших; лист Non_HRP.

Пересечение: 3 периодов, 2026-08 — 2026-10; гранулярность: месяц.

Источник: ACLED — события политического насилия; данные: ссылка на ряд; получено 2026-10-18; по состоянию на 2026-10-09.

Условия: ACLED Terms of Use (атрибуция обязательна); зеркало HDX.

Метрики

РядnПирсонСпирменp (перестановки)Статус
Уровни3— пар 3 — меньше порога 6——не рассчитывается
Дельты2— пар 2 — меньше порога 6——не рассчитывается

Совпадение знаков первых разностей: 50 % (1 из 2, пропущено 0). Статус: описательно.

Лаг

Кросс-корреляция первых разностей при сдвигах −2…+2; положительный сдвиг означает, что внешний ряд опережает индекс.

СдвигnПирсон
-20— пар меньше порога
-11— пар меньше порога
02— пар меньше порога
11— пар меньше порога
20— пар меньше порога

Наилучший сдвиг не рассчитывается: — (пар меньше порога 6).

Расхождения

Периоды, где знаки первых разностей разошлись (обе дельты ненулевые).

ПериодΔ индексаΔ внешнего ряда
2026-10+11.50-3837

Пересечение короче порога: 3 пар при минимуме 6; коэффициент не публикуется. Ряд 2026-10 неполный (as_of 2026-10-09)

Почему сравнение идёт по данным о событиях, а не по Conflict Index

Conflict Index — страновой композит, который ACLED публикует раз в полгода; машинного доступа к нему нет, а пересечения с восемью неделями методологии 3.0 (с 30 августа по 18 октября 2026 года) не возникает. Поэтому сравнение идёт по помесячным данным ACLED о событиях политического насилия: число событий за месяц против среднего индекса по неделям этого месяца. Это разные конструкты — счёт произошедших событий и сводная оценка состояния риска, — и сходимость таких рядов не подтверждает правильность индекса.

CrisisWatch (International Crisis Group)

Число стран, где ситуация ухудшилась по оценке ICG за месяц (CrisisWatch Trends); improved/resolution — для полноты картины.

Пересечение: 2 периодов, 2026-08 — 2026-09; гранулярность: месяц.

Источник: CrisisWatch (International Crisis Group); данные: ссылка на ряд; получено 2026-10-18; по состоянию на 2026-09.

Условия: International Crisis Group, CrisisWatch — условия использования на crisisgroup.org.

Метрики

РядnПирсонСпирменp (перестановки)Статус
Уровни2— пар 2 — меньше порога 6——не рассчитывается
Дельты1— пар 1 — меньше порога 6——не рассчитывается

Совпадение знаков первых разностей: — — пар меньше двух, показатель не рассчитывается (попаданий 0, пар 1, пропущено 0).

Лаг

Кросс-корреляция первых разностей при сдвигах −2…+2; положительный сдвиг означает, что внешний ряд опережает индекс.

СдвигnПирсон
-20— пар меньше порога
-10— пар меньше порога
01— пар меньше порога
10— пар меньше порога
20— пар меньше порога

Наилучший сдвиг не рассчитывается: — (пар меньше порога 6).

Расхождения

Периоды, где знаки первых разностей разошлись (обе дельты ненулевые).

ПериодΔ индексаΔ внешнего ряда
2026-09-4+1

Пересечение короче порога: 2 пар при минимуме 6; коэффициент не публикуется.

Что это не доказывает

Сходимость с внешними рядами — проверка, а не доказательство правильности индекса. Ниже три причины, почему сравнение нельзя читать как оценку точности.

Разные конструкты

Индекс Cassandra — сводная оценка уровня и направления риска по девяти драйверам. GPR считает долю газетных публикаций о геополитических рисках, ACLED — число зафиксированных событий политического насилия, CrisisWatch — экспертные страновые оценки ухудшения ситуации. Ряды измеряют разное; совпадение или расхождение не говорит, какой из них «прав».

Разные окна

Индекс недельный, GPR дневной и сводится к окну [W−6, W], ACLED и CrisisWatch месячные и сравниваются со средним индекса по неделям месяца. Полугодовой Conflict Index ACLED и страновые срезы в сравнение не входят: у них другая периодичность и другой уровень агрегации. К этому добавляется сдвиг публикации: внешний ряд за период становится известен позже, чем закрывается неделя индекса.

Ревизии данных

Внешние ряды пересматриваются задним числом: уточняются события, меняются страновые оценки, обновляются исторические значения GPR. Наши снапшоты недель не пересчитываются после публикации — это зафиксированная запись. Поэтому коэффициент, пересчитанный на новой версии внешнего ряда, может отличаться от опубликованного раньше, хотя индекс не менялся.

Журнал прогнозов

Журнал показывает, сбываются ли заявленные ожидания: ожидание, факт, попадание или промах. Промахи перечислены полностью и не спрятаны в раскрывающийся блок. Baseline — наивный benchmark, а не прогноз проекта; редакционные записи — отдельный блок.

Правило baseline: ожидание = кластер прошлой опубликованной недели и направление flat. Мёртвая зона направления: ±2 пункта индекса. Baseline: записей 8, кластер 7/8, направление 2/8. Редакционные: записей 0, ожидают факта 0. Промахов всего: 7.

Наивный benchmark (baseline)

Это не прогноз проекта: правило механически повторяет кластер прошлой опубликованной недели и ожидает направление «без изменения». Оно восстановимо из опубликованных снапшотов, поэтому задним числом его нельзя подкрутить, но записью в git до публикации недели оно не является.

Наивный benchmark по опубликованным неделям цепочки.

НеделяОжидание: кластерОжидание: направлениеФакт: индексФакт: кластерФакт: направлениеИтог
2026-09-06опасныйбез изменения42опасныйснижениекластер: попадание; направление: промах
2026-09-13опасныйбез изменения43опасныйбез изменениякластер: попадание; направление: попадание
2026-09-20опасныйбез изменения56опасныйросткластер: попадание; направление: промах
2026-09-27опасныйбез изменения47опасныйснижениекластер: попадание; направление: промах
2026-10-04опасныйбез изменения46опасныйбез изменениякластер: попадание; направление: попадание
2026-10-11опасныйбез изменения56опасныйросткластер: попадание; направление: промах
2026-10-18опасныйбез изменения64очень высокийросткластер: промах; направление: промах
2026-10-25очень высокийбез изменения68очень высокийросткластер: попадание; направление: промах

Редакционные прогнозы

Форвардные якоря редактора из calc/input/anchors/forward-<неделя>.json. Коммит добавления якоря должен быть не позже коммита добавления опубликованной недели — это проверяется по истории git; при недоступной истории так и сказано, а не выдаётся за подтверждение.

Записей нет: редакционных форвардных якорей пока не добавлено. Baseline выше показан отдельно и прогнозом проекта не является.

Промахи

Промахи показаны наравне с попаданиями: каждая запись с несовпавшим ожиданием перечислена здесь.

НеделяТип записиПолеОжиданиеФакт
2026-09-06baselineнаправлениебез измененияснижение
2026-09-20baselineнаправлениебез изменениярост
2026-09-27baselineнаправлениебез измененияснижение
2026-10-11baselineнаправлениебез изменениярост
2026-10-18baselineкластеропасныйочень высокий
2026-10-18baselineнаправлениебез изменениярост
2026-10-25baselineнаправлениебез изменениярост

Метод

Команда node calc/backtest.js --write собирает data/public/validation.json, data/public/forecast-ledger.json и эту страницу из офлайн-фикстур. Сеть не используется.

Фикстуры лежат в calc/backtest-fixtures/: gpr.json (дневной ряд), acled.json и crisiswatch.json (месячные ряды) с провенансом в каждом файле; порядок обновления описан в calc/backtest-fixtures/README.md. Пересборка повторяется байт в байт: даты генерации в файлы не пишутся.

Метрики считаются собственными функциями: Пирсон, Спирмен со средними рангами, перестановочный тест на детерминированном генераторе (2000 итераций, фиксированный seed), согласие знаков первых разностей и кросс-корреляция при сдвигах −2…+2.

Источники рядов