Articles
    9 min readAugust 29, 2026Mediaanalys Editorial Team

    PSI для мониторинга дрейфа модели: расчёт, пороги и ловушки

    Почему одно число PSI легко прочитать неверно

    PSI сравнивает доли пользователей в одинаковых интервалах эталонной и текущей популяций. Эталоном обычно служат обучающая выборка, период валидации или ранний стабильный продакшен; текущая популяция — окно мониторинга. Метрику считают для входных признаков, модельного скора или обоих уровней.

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

    PSI скора отвечает на другой вопрос: изменилась ли структура прогнозов — стало ли больше клиентов высокого риска, кандидатов с высокой вероятностью покупки или заявок у порога решения. Стабильный скор при сдвиге нескольких признаков иногда означает нечувствительность модели к ним. Высокий PSI скора не объясняет источник: им могут быть канал привлечения, предобработка, пропуски или бизнес-процесс.

    Поэтому «PSI выше порога — модель плохая» неверно. Индекс сообщает, что текущая популяция отличается от эталона; нужны диагностика причины и оценка риска для качества. Новая аудитория после кампании может не повредить качеству, изменение заполнения поля — исказить признак, а общий PSI способен сгладить дрейф отдельного региона.

    Формула показывает вклад каждой корзины

    Для корзины i берут эталонную долю eᵢ и долю в окне мониторинга aᵢ:

    PSIᵢ = (aᵢ − eᵢ) × ln(aᵢ / eᵢ)

    Общий индекс: PSI = Σ PSIᵢ. При равных долях вклад нулевой; чем сильнее расхождение, тем он выше. Логарифм усиливает сигнал, когда отношение долей далеко от единицы.

    Синтетический пример для модельного скора использует пять корзин, границы которых зафиксированы по эталону; он не описывает реальный портфель.

    Корзина скора Эталонная доля eᵢ Текущая доля aᵢ Вклад в PSI
    1 0,10 0,06 0,020
    2 0,20 0,14 0,021
    3 0,40 0,34 0,010
    4 0,20 0,28 0,027
    5 0,10 0,18 0,047
    Сумма 1,00 1,00 0,126

    Для первой корзины: (0,06 − 0,10) × ln(0,06 / 0,10) = 0,020. Отрицательная разность не даёт отрицательный вклад: логарифм отношения меньше единицы тоже отрицателен. Отклонения вниз и вверх дают положительный сигнал.

    0,126 не означает «распределение изменилось на 12,6%»: это безразмерный индекс расхождения. Таблица вкладов показывает его источник. Здесь основную тревогу создают верхние корзины; если в них лежат решения с высокой ценой ошибки, такой профиль важнее равномерного расхождения.

    Доли считают при одинаковой фильтрации. Если в эталоне были только прошедшие проверку личности, а в текущем окне добавили незавершённые анкеты, PSI смешает изменение населения с изменением отбора и даст неверный диагноз.

    Корзины меняют чувствительность индекса

    Число и границы корзин определяют чувствительность. Три широких интервала скрывают локальный сдвиг; десять находят его раньше, но сильнее реагируют на шум при малых выборках. Корзины нельзя выбирать после просмотра текущего периода: это меняет линейку во время измерения.

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

    На том же синтетическом распределении результат меняется при другой детализации, хотя популяция та же.

    Схема биннинга PSI в синтетическом примере Что лучше видно Цена схемы
    3 широкие корзины 0,119 Крупное смещение массы Локальные сдвиги теряются
    5 корзин 0,126 Движение между основными зонами Детали внутри зон не видны
    10 корзин 0,129 Смещение в узких диапазонах Выше чувствительность к малым долям

    Разница между 0,119 и 0,129 невелика, но у рабочего порога меняет маршрут эскалации. Документируют границы и порядок корзин, обработку выбросов и дату фиксации эталона. После выпуска новой версии модели или смены шкалы скора старый PSI нельзя механически продолжать: нужна новая базовая линия либо явное сопоставление шкал.

    Для категориального признака корзина обычно равна категории. Редкие категории можно заранее объединить в «прочее». Объединение только после тревоги опасно: из отчёта исчезнут и дрейф, и его причина.

    Нулевые доли и короткие окна искажают сигнал

    При нулевой доле в корзине ln(aᵢ / eᵢ) не определён. Произвольная замена нуля в таблице меняет PSI и может скрыть скачок; нужна единая явная политика сглаживания для эталона и мониторинга.

    Прозрачный вариант использует исходные счётчики: каждой корзине добавляют псевдосчётчик α и пересчитывают долю pᵢ = (cᵢ + α) / (N + α × k), где cᵢ — число объектов, N — размер выборки, k — число корзин. При α = 0,5 нули не ломают логарифм. Рядом с метрикой хранят α, версию правила и число корзин; на малом окне сглаживание заметно влияет на результат.

    Окно мониторинга также существенно влияет на PSI. Семидневное быстрее ловит сбой загрузки или смену трафика, но шумит; девяностодневное сглаживает колебания и может растворить короткую проблему. Сезонность — предновогодний трафик, учебный сезон, плановая акция — создаёт ложные тревоги.

    Окно мониторинга Обычный недельный шум Сезонный сдвиг Как читать сигнал
    7 дней 0,16 0,27 Быстрая тревога, нужна проверка стабильности
    28 дней 0,08 0,13 Шум слабее, сезонность ещё заметна
    90 дней 0,03 0,05 Фон сглажен, краткий сбой может пропасть

    Во всех строках синтетической иллюстрации границы одинаковы; числа не нормативы, а демонстрация чувствительности. Сезонный бизнес лучше сравнивать с тем же сезоном прошлого цикла или хранить несколько эталонов. Один «вечный» базовый период стареет и превращает ожидаемую эволюцию аудитории в постоянную тревогу. Но обновлять эталон без проверки нельзя: мониторинг начнёт считать дрейф нормой и пропустит деградацию качества.

    Порог PSI не заменяет контекст качества

    Границы 0,10 и 0,25 часто используют как повод соответственно посмотреть распределение и начать глубокую проверку. Это не физический закон и не доказательство, что после 0,25 модель надо переобучать: на индекс влияют биннинг, сглаживание, размер выборки, эталон и ценность сегмента.

    PSI 0,06 в маленькой, но доходной группе может быть критичным, если сдвиг пришёлся на отказы или ручную проверку. PSI 0,30 по потоку может объясняться плановой сменой канала и не ухудшать качество. Важны устойчивость сигнала в нескольких окнах, корзины-вкладчики, затронутые сегменты, изменения схемы данных и метрики качества.

    Мониторинг признаков и скора нужно разделять. Высокий PSI признака при стабильном скоре указывает на уязвимость переменной, но не требует немедленной замены модели. Высокий PSI скора при спокойных отдельных признаках может означать совместный сдвиг профиля клиентов или неполный набор наблюдаемых факторов. При доступных метках PSI читают рядом с качеством на свежем периоде; без меток он остаётся ранним индикатором распределения, а не оценкой качества.

    Где PSI превращают в декоративную метрику

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

    Вторая ошибка возникает после изменений конвейера. Переименование категории, новый формат даты, другая обработка пропуска или замена источника способны за ночь поднять PSI. Прежде чем искать поведение клиентов, проверяют пропуски, объём записей, ошибки парсинга и версию трансформации. До PSI данные должны пройти контроль схемы и базовых объёмов.

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

    Ещё одна ловушка — менять корзины вслед за текущими данными. Новые ежемесячные квантили снова дают близкие доли и искусственно успокаивают PSI. Фиксируют границы эталонного периода, а не номера квантилей как абстрактную идею.

    Переобучение начинается после четырёх проверок

    Один алерт не должен запускать новую версию модели.

    1. Проверить измерение. Сверьте с эталонной конфигурацией объём, фильтры популяции, порядок трансформаций, пропуски, категории и границы корзин. Расхождение здесь означает поломку измерения, а не дрейф клиентов.
    2. Найти источник вклада. Изучите корзины с максимальными PSIᵢ, затем заранее выбранные сегменты. Один резко сдвинувшийся признак требует иной реакции, чем согласованное движение десятка признаков или одного скора.
    3. Оценить устойчивость. Сравните соседние окна, сезонно сопоставимый период и более длинный горизонт. Однодневный всплеск после загрузки батча не равен дрейфу, который держится несколько циклов.
    4. Связать дрейф с риском решения. При свежих метках проверьте качество в затронутых сегментах и зонах скора. Стойкий PSI вместе с ухудшением качества, особенно в дорогих решениях, обосновывает калибровку, пересборку признаков или переобучение. Высокий PSI без ухудшения качества требует наблюдения и проверки уязвимости, а не автоматической замены.

    После решения подготовить новую версию её эффект в продакшене оценивают отдельно: проверка ML-моделей через A/B-тесты в продакшене описывает этап, который PSI не заменяет. Даже хорошая новая модель не отменяет контроля входной популяции.

    При масштабе важнее воспроизводимость сигнала

    Для десятков моделей и сотен признаков сложнее не формула, а управление конфигурацией. Для каждого расчёта нужны версия модели, дата и источник эталона, границы корзин, сглаживание, определение популяции, размер окна и сегменты. Иначе одинаковые PSI могут означать разное, а расследование нельзя повторить.

    Храните вклад каждой корзины, а не только сумму: общая величина нужна дашборду, вклады — расследованию. Учитывайте и пропуски: их не следует молча исключать, если они связаны с решением. Отдельная корзина пропусков часто раньше показывает проблему интеграции, чем графики заполненных значений.

    При росте алертов нужны владелец, срок первичной проверки и статус причины: ожидаемая сезонность, изменение данных, смена популяции, неустановленная причина или подтверждённый риск качества. Иначе PSI станет красной лампой, на которую никто не реагирует.

    PSI ценен как начало расследования

    Настроенный PSI не отвечает одним числом, переобучать ли модель. Он фиксирует расхождение популяций, показывает создающие его корзины и направляет проверку туда, где выше риск для решения.

    Фиксированные корзины, прозрачная обработка нулей, окно с учётом сезонности и сегментная диагностика делают индекс рабочим инструментом. Связь с качеством на свежих метках отличает обычную смену аудитории от ситуации, когда модели действительно пора меняться.

    Share:XLinkedInTelegramWhatsAppEmail