Условие
Объясните, что означает коэффициент β в логистической регрессии. Если у признака «возраст» коэффициент 0.3, как это интерпретировать в терминах вероятности и шансов?
Решение
Подход
Логистическая регрессия моделирует логит:
log(P / (1 - P)) = β₀ + β₁ x₁ + ... + βₖ xₖ
При изменении xᵢ на единицу логит меняется на βᵢ, а шансы (odds) — умножаются на exp(βᵢ). Сама вероятность меняется нелинейно — на сколько именно, зависит от текущего значения вероятности.
Пример: β = 0.3 для «возраста»
exp(0.3) ≈ 1.35— при увеличении возраста на 1 год шансы (P/(1-P)) растут примерно на 35%.- Это не значит, что вероятность растёт на 35%. Если изначальная вероятность 0.5 (шансы 1), новые шансы 1.35 → новая вероятность ≈ 0.575. Если же изначально P = 0.1 (шансы 0.111), новые ≈ 0.15 → P ≈ 0.13.
- Около 0 и около 1 рост вероятности с единицы признака минимален; максимум — на P = 0.5.
import numpy as np
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(C=1e6) # отключаем регуляризацию для чистой интерпретации
model.fit(X, y)
for name, coef in zip(feature_names, model.coef_[0]):
print(f"{name}: β={coef:.3f}, OR={np.exp(coef):.3f}")Подводные камни
- Стандартизация меняет интерпретацию: если признаки нормированы,
βпоказывает эффект «на 1 стандартное отклонение», а не «на 1 единицу». - Регуляризация смещает коэффициенты к нулю — это улучшает обобщение, но искажает интерпретацию как «эффект чистого признака».
- Мультиколлинеарность делает оценки
βнеустойчивыми: знак и величина могут меняться при удалении одного коррелированного признака. - Логистическая регрессия предполагает аддитивность в логит-пространстве, а не в пространстве вероятностей. Эффекты не складываются «в процентах».
Эталонный ответ
β — это изменение логита log(P/(1-P)) при единичном изменении признака; exp(β) — мультипликатор шансов (odds ratio). Изменение вероятности нелинейно и зависит от текущей P. Перед интерпретацией важно понимать, стандартизирован ли признак и есть ли регуляризация.