Да, коэффициент детерминации (R²) МОЖЕТ принимать отрицательные значения.
Это один из самых распространенных мифов о R². Давайте разберемся, когда и почему это происходит.
Почему R² может быть отрицательным?
R² становится отрицательным, когда ваша модель предсказывает ХУЖЕ, чем простое среднее значение.
Вспомним формулу: R² = 1 - (SS_res / SS_tot)
Где:
- SS_res — сумма квадратов ошибок вашей модели
- SS_tot — сумма квадратов отклонений от среднего
R² будет отрицательным, когда: SS_res > SS_tot
То есть ошибки вашей модели больше, чем ошибки предсказания средним значением.
Подробный пример с отрицательным R²
Рассмотрим реальный пример:
| Факт (yᵢ) | Прогноз модели (ŷᵢ) | (yᵢ - ȳ)² | (yᵢ - ŷᵢ)² |
|---|---|---|---|
| 100 | 150 | (100-130)² = 900 | (100-150)² = 2500 |
| 120 | 50 | (120-130)² = 100 | (120-50)² = 4900 |
| 150 | 200 | (150-130)² = 400 | (150-200)² = 2500 |
| 150 | 100 | (150-130)² = 400 | (150-100)² = 2500 |
Среднее значение ȳ = 130
Расчет:
- SS_tot = 900 + 100 + 400 + 400 = 1800
- SS_res = 2500 + 4900 + 2500 + 2500 = 12400
- R² = 1 - (12400 / 1800) = 1 - 6.89 = -5.89
Вывод: Наша модель работает катастрофически плохо — ее ошибки почти в 7 раз хуже, чем если бы мы просто предсказывали среднее значение!
Когда возникает отрицательный R²?
1. На тестовой выборке
Чаще всего отрицательный R² возникает при оценке на тестовых данных, когда модель переобучена на тренировочных данных.
Пример:
- На train данных: R² = 0.9
- На test данных: R² = -0.5
2. При неправильной спецификации модели
Когда выбран совершенно неподходящий тип модели для данных.
Примеры:
- Использование линейной модели для явно нелинейных данных
- Подгонка тренда там, где его нет
3. При наличии выбросов
Сильные выбросы могут “испортить” модель и привести к отрицательному R².
4. Случайные прогнозы
Если модель выдает совершенно случайные прогнозы, не связанные с данными.
Графическая интерпретация
Фактические значения: ● ● ● ●
| | | |
Среднее значение: ---------------------
| | | |
Плохие прогнозы модели: ● ● ● ●
SS_tot = расстояние от точек до средней линии ✅
SS_res = расстояние от точек до прогнозов модели ❌
Когда прогнозы модели находятся дальше от фактических значений, чем среднее значение, R² становится отрицательным.
Практические сценарии с отрицательным R²
Сценарий 1: Переобученная модель
# Тренировочные данные - хорошее качество
R²_train = 0.95
# Тестовые данные - модель не обобщает знания
R²_test = -0.3 # Хуже чем предсказывать среднее!Сценарий 2: Неправильная модель
# Данные имеют экспоненциальную зависимость
# Мы пытаемся拟合 линейную модель
R² = -2.1 # Катастрофически плохоЧто делать при отрицательном R²?
Если вы получили отрицательный R²:
- Проверьте на переобучение: Разделите данные на train/test
- Упростите модель: Уменьшите число признаков, увеличьте регуляризацию
- Проверьте спецификацию: Подходит ли тип модели вашим данным?
- Анализируйте остатки: Посмотрите на графики остатков
- Проверьте данные: Нет ли выбросов или ошибок в данных
Сравнение с другими метриками
| Метрика | Диапазон | Интерпретация отрицательных значений |
|---|---|---|
| R² | (-∞, 1] | Модель хуже, чем предсказание средним |
| MSE, MAE, RMSE | [0, +∞) | Отрицательных значений быть не может |
| MAPE | [0%, +∞) | Отрицательных значений быть не может |
Резюме
✅ ПРАВДА: Коэффициент детерминации R² МОЖЕТ быть отрицательным.
❌ МИФ: R² всегда между 0 и 1.
Когда R² отрицательный: Это красный флаг, что ваша модель работает хуже, чем наивный прогноз средним значением.
Практический совет: Всегда проверяйте R² на тестовой выборке. Положительный R² на тренировочных данных ничего не значит, если на тестовых он отрицательный — это явный признак переобучения.
Отрицательный R² — это не математическая ошибка, а важный сигнал о том, что с вашей моделью что-то серьезно не так!