Что такое slope
Линейная регрессия ищет прямую, которая наилучшим образом описывает зависимость между двумя величинами X и Y. Уравнение этой прямой:
Slope отвечает на вопрос: «На сколько изменится Y, если X увеличить ровно на 1?»
Это единственное, что нужно помнить наизусть. Всё остальное выводится из этого определения.
Визуальный смысл
Slope — это «крутизна» прямой. Чем больше абсолютное значение slope, тем круче наклон. Знак показывает направление.
Из тригонометрии: slope = tg(α), где α — угол между прямой и горизонтальной осью.
Интерпретация знака
| slope |
смысл |
пример зависимости |
| + |
X растёт → Y растёт |
рост → вес; опыт работы → зарплата |
| − |
X растёт → Y убывает |
цена → спрос; температура → потребление газа |
| ≈ 0 |
X почти не влияет на Y |
размер обуви → IQ |
Отрицательный slope там, где логика требует положительного — это красный флаг. Стоит проверить: нет ли в данных скрытой структуры, выбросов или ошибок.
Интерактивный пример
Подвигай ползунки и посмотри, как slope и intercept меняют прямую и предсказания:
Как читать в 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₁ = 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 доказывает причинность? |
Нет, только корреляцию |