Статья Автор: Деникина Н.В., Деникин А.В.

slope

ЛИНЕЙНАЯ РЕГРЕССИЯ / ТЕОРИЯ

Коэффициент наклона

slope, коэффициент регрессии, β₁ — что это такое и как с этим работать

Что такое slope

Линейная регрессия ищет прямую, которая наилучшим образом описывает зависимость между двумя величинами X и Y. Уравнение этой прямой:

Ŷ = slope · X + intercept
Ŷ — предсказанное значение Y
slope (β₁) — коэффициент наклона
intercept (β₀) — свободный член, значение Ŷ при X = 0

Slope отвечает на вопрос: «На сколько изменится Y, если X увеличить ровно на 1?»

Это единственное, что нужно помнить наизусть. Всё остальное выводится из этого определения.

Визуальный смысл

Slope — это «крутизна» прямой. Чем больше абсолютное значение slope, тем круче наклон. Знак показывает направление.

 

Из тригонометрии: slope = tg(α), где α — угол между прямой и горизонтальной осью.

Интерпретация знака

slope смысл пример зависимости
+ X растёт → Y растёт рост → вес; опыт работы → зарплата
X растёт → Y убывает цена → спрос; температура → потребление газа
≈ 0 X почти не влияет на Y размер обуви → IQ
Отрицательный slope там, где логика требует положительного — это красный флаг. Стоит проверить: нет ли в данных скрытой структуры, выбросов или ошибок.

Интерактивный пример

Подвигай ползунки и посмотри, как slope и intercept меняют прямую и предсказания:

3.0
20
Ŷ = 3.0 · X + 20
 

Как читать в sklearn

from sklearn.linear_model import LinearRegression

model = LinearRegression().fit(X, y)

model.coef_[0]       # slope — первый элемент массива коэффициентов
model.intercept_     # intercept — свободный член

# Предсказание вручную (то же, что model.predict)
y_pred = model.coef_[0] * X + model.intercept_

coef_ — это массив, потому что признаков может быть несколько. При одном признаке берём нулевой элемент.

Когда признаков несколько

При множественной регрессии у каждого признака свой slope — его называют частным коэффициентом регрессии:

Ŷ = slope₁·X₁ + slope₂·X₂ + ... + slopeₙ·Xₙ + intercept
slope_i показывает влияние X_i на Y при условии, что все остальные X зафиксированы
пример: цена квартиры
slope₁ = 120 000 ₽ за м²
slope₂ = −50 000 ₽ за этаж от земли
slope₃ = 200 000 ₽ за минуту до метро
как читать
Каждый slope — независимый вклад своего признака.
«+1 м² добавляет 120 000 ₽ к цене, если район и этаж не меняются».
# Несколько признаков
X = df[['площадь', 'этаж', 'мин_до_метро']]
model.fit(X, y)

model.coef_        # массив из трёх чисел
# array([120000, -50000, 200000])

Распространённые ошибки

Ошибка 1: slope как «важность» признака
Если X измерять в сантиметрах вместо метров, slope изменится в 100 раз — но модель останется той же. Сравнивать величины slope разных признаков напрямую нельзя, если у них разные единицы измерения.
Ошибка 2: slope ≠ корреляция
Корреляция — безразмерное число от −1 до 1, не зависит от масштаба. Slope зависит от единиц X и Y. Они совпадают по знаку, но не по смыслу.
Ошибка 3: slope как причинно-следственная связь
«Slope положительный» означает лишь статистическую связь, а не то, что X вызывает изменение Y. Возможно, оба зависят от третьего фактора.
Когда slope стоит доверять
slope значим, если он велик относительно своей стандартной ошибки (p-value < 0.05), R² достаточно высок, и данные не содержат выбросов или скрытых групп.

Шпаргалка

вопрос ответ
Что показывает slope? Изменение Y при увеличении X на 1
Где взять в sklearn? model.coef_[0]
slope > 0 означает? Прямая зависимость: X↑ → Y↑
slope < 0 означает? Обратная зависимость: X↑ → Y↓
slope ≈ 0 означает? X почти не объясняет Y
Можно сравнивать slope разных признаков? Только если у них одинаковые единицы
slope доказывает причинность? Нет, только корреляцию
Печать