Логистическая регрессия: как прогнозировать вероятность события и читать odds
Введение в логистическую регрессию для аналитика: бинарный target, вероятность, порог, коэффициенты, calibration и отличие прогноза от причинного вывода.
Содержание статьи
В бинарной задаче легко свести ответ модели к 0 или 1 и потерять половину информации. Вероятность 0,51 и 0,99 окажутся одним классом, хотя решение бизнеса и риск совсем разные. Логистическая регрессия даёт понятный baseline, но требует проверки качества вероятностей, порога и дисбаланса классов. В этом материале разберём как оценить вероятность покупки, default или оттока и выбрать порог под стоимость ошибки? и соберём практический порядок действий: от определения данных до формулировки решения.
Коротко
Как оценить вероятность покупки, default или оттока и выбрать порог под стоимость ошибки?
Модель оценивает вероятность события через sigmoid от линейной комбинации признаков. Коэффициент линейной части связан с изменением log-odds, поэтому его нельзя читать как прямые процентные пункты вероятности. Для бизнеса важнее связка: ranking quality, calibration, threshold, cost of false positive и cost of false negative.
- Назови единицу наблюдения, период и правило включения до расчёта.
- Показывай оценку рядом с размером выборки, разбросом или интервалом.
- Отделяй наблюдение, гипотезу и решение: это три разных уровня уверенности.
Какой рабочий вопрос здесь решает статистика
В бинарной задаче легко свести ответ модели к 0 или 1 и потерять половину информации. Вероятность 0,51 и 0,99 окажутся одним классом, хотя решение бизнеса и риск совсем разные. Логистическая регрессия даёт понятный baseline, но требует проверки качества вероятностей, порога и дисбаланса классов.
Объяснять логистическую регрессию лучше через вероятности и ошибки, а не через log-odds. Покажи, сколько случаев попадёт в ручную проверку, сколько плохих событий удастся предотвратить и какую цену имеет пропуск. Такой разговор связывает модель с процессом и делает требования к данным прозрачными.
Если нельзя одним предложением назвать объект, окно, сравнение и действие, формула пока выбрана слишком рано.
Определение и расчёт
Раздели данные по времени, обучи baseline и получи probability, а не только class. Оцени ROC-AUC или PR-AUC в зависимости от баланса, Brier score и calibration curve. Порог выбирай на валидации по стоимости ошибок и ограничениям capacity. После запуска следи за drift и фактическими исходами.
Начни с таблицы ошибок и baseline rate. Построй calibration по decile вероятности, сравни predicted и observed rate. Затем оцени несколько порогов в терминах денег и объёма работы. Не оптимизируй порог на test. Зафиксируй, какая дата считается outcome и сколько времени нужно для созревания метки.
Мини-кейс
Модель предсказывает риск default по заявке. При пороге 0,5 она пропускает 92% заявок, но теряет много плохих клиентов. При пороге 0,3 recall растёт, однако одобрений становится меньше. Выбор порога — не техническая деталь: он зависит от стоимости просрочки, доступного ручного review и целей кредитного продукта.
После первого расчёта не переходи сразу к выводу. Проверь, не меняется ли знак или размер результата при разумной альтернативе: другой горизонт, зрелая когорта, user-level агрегация, фиксированный mix или отдельный технический слой. Именно эта проверка отделяет устойчивый сигнал от удачного среза.
Условный пример: снижение порога увеличивает recall и нагрузку на review.
Пошаговый алгоритм
Начни с таблицы ошибок и baseline rate. Построй calibration по decile вероятности, сравни predicted и observed rate. Затем оцени несколько порогов в терминах денег и объёма работы. Не оптимизируй порог на test. Зафиксируй, какая дата считается outcome и сколько времени нужно для созревания метки.
Для любого binary target составь таблицу decile: n, mean predicted, observed rate, false positives, false negatives. Затем посчитай стоимость ошибок при трёх порогах. Если порог выбирается только по AUC, добавь бизнес-ограничение. Это превращает модель из абстрактного классификатора в рабочее решение.
Если расчёт станет регулярным, вынеси его из ручной ячейки в понятный pipeline: входные данные, преобразования, проверки и результат должны быть видны отдельно. Тогда новый период можно пересчитать без копирования старого вывода и без риска незаметно поменять знаменатель.
- Зафиксируй baseline и правило сравнения до просмотра итоговой цифры.
- Проверь grain, пропуски, дубли, даты и зрелость результата.
- Разложи изменение по сегментам только после общей контрольной сверки.
- Запиши, какой факт изменит решение и кто отвечает за следующий шаг.
Где результат ломается
Высокий ROC-AUC не гарантирует хорошую calibration. Accuracy бесполезна при редком событии. Случайный split создаёт утечку времени, если поведение меняется. Коэффициент не равен причинному влиянию признака. И нельзя называть модель надёжной, если test не содержит свежие сегменты, которые появятся после запуска.
Ограничение не делает анализ бесполезным. Оно сужает область, в которой вывод можно применять. Если измерение подходит только для активных пользователей, зрелых когорт или одного типа устройства, назови это прямо и не расширяй утверждение на всю базу.
| Метрика | Вопрос | Ограничение |
|---|---|---|
| ROC-AUC | как модель ранжирует? | не говорит о calibration |
| PR-AUC | как работает на редком positive? | зависит от baseline rate |
| Brier score | насколько хороши вероятности? | нужна созревшая метка |
| Recall / precision | что происходит при пороге? | зависят от threshold |
Как интерпретировать без лишней уверенности
Рабочий вывод: «Модель хорошо ранжирует заявки, PR-AUC выше baseline, но вероятности завышены в верхнем decile. При пороге 0,28 ожидаемый loss минимален при текущей capacity review; перед rollout нужна перекалибровка и мониторинг по self-employed».
Сильный вывод начинается с факта, продолжает его диапазоном и заканчивается действием. Формулировки «связано», «совместимо с», «не удалось отличить» и «следующий шаг» точнее, чем автоматические «улучшилось» или «эффекта нет».
Сначала сообщи, что видно в данных. Затем назови, что мешает сделать более сильный вывод. В конце предложи один проверяемый следующий шаг.
Практика для аналитика
Для любого binary target составь таблицу decile: n, mean predicted, observed rate, false positives, false negatives. Затем посчитай стоимость ошибок при трёх порогах. Если порог выбирается только по AUC, добавь бизнес-ограничение. Это превращает модель из абстрактного классификатора в рабочее решение.
Сохрани не только финальную цифру, но и входной период, параметры расчёта, версию определения и контрольные сверки. Воспроизводимость особенно важна для метрик, которые попадут в статью, дашборд, A/B-тест или решение руководителя.
from sklearn.linear_model import LogisticRegression
from sklearn.calibration import calibration_curve
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
p = model.predict_proba(X_valid)[:, 1]
fraction, mean_pred = calibration_curve(y_valid, p, n_bins=10)Как связать материал с соседними задачами
Статистический метод не живёт отдельно от предметной области. Один и тот же приём может понадобиться в продуктовой метрике, SQL-запросе, pandas-пайплайне, эксперименте или бизнес-отчёте. Поэтому после базового расчёта переходи к соседнему материалу, где тот же вопрос разобран на другом уровне.
Не добавляй все возможные разрезы сразу. Выбери следующий материал по решению: проверить данные, понять поведение пользователя, оценить эффект, построить график или подготовиться к разговору с командой.
Чеклист перед публикацией результата
Перед тем как отправить число в чат или на дашборд, пройди короткий чеклист. Его можно превратить в шаблон аналитической задачи и использовать повторно для разных метрик.
Если на один пункт нет ответа, не прячь пробел в подписи графика. Запиши его как ограничение и реши, блокирует ли он действие. Иногда правильный результат — не новая формула, а исправление события или уточнение бизнес-вопроса.
- Что является единицей наблюдения и почему?
- Какой знаменатель, период и timezone используются?
- Есть ли пропуски, дубли, неполный день или незрелая когорта?
- Какие сегменты и альтернативные baseline меняют интерпретацию?
- Каков размер эффекта, диапазон неопределённости и бизнес-порог?
- Какое действие следует из результата и когда его пересмотреть?
Вывод
Рабочий вывод: «Модель хорошо ранжирует заявки, PR-AUC выше baseline, но вероятности завышены в верхнем decile. При пороге 0,28 ожидаемый loss минимален при текущей capacity review; перед rollout нужна перекалибровка и мониторинг по self-employed».
Статистика становится полезной не тогда, когда в отчёте появляется сложный термин. Она полезна, когда помогает уменьшить ошибку решения: заметить неправильный grain, не спутать календарный шум с ростом, не выдать корреляцию за причину и увидеть, что данных пока недостаточно. Держи этот порядок рядом с SQL, Python и дашбордом — и цифры будут работать как часть процесса.
Материалы по теме
Статистика для аналитика с нуля: как читать данные и не делать лишних выводов
Базовый маршрут по статистике для аналитика: выборка, распределение, среднее, медиана, интервал неопределённости и проверка гипотезы на рабочих примерах.
Читать материалСреднее, медиана и мода: какую «середину» выбрать в аналитике
Разбираем среднее арифметическое, медиану и моду на примерах выручки, времени доставки и размера заказа: когда показатели расходятся и что писать в выводе.
Читать материалДисперсия и стандартное отклонение: как измерять разброс в данных
Понятное объяснение дисперсии и стандартного отклонения для аналитика: как читать разброс, сравнивать сегменты и не путать вариативность с ошибкой данных.
Читать материал