Да, коэффициент детерминации (R²) МОЖЕТ принимать отрицательные значения.

Это один из самых распространенных мифов о R². Давайте разберемся, когда и почему это происходит.

Почему R² может быть отрицательным?

R² становится отрицательным, когда ваша модель предсказывает ХУЖЕ, чем простое среднее значение.

Вспомним формулу: R² = 1 - (SS_res / SS_tot)

Где:

  • SS_res — сумма квадратов ошибок вашей модели
  • SS_tot — сумма квадратов отклонений от среднего

R² будет отрицательным, когда: SS_res > SS_tot

То есть ошибки вашей модели больше, чем ошибки предсказания средним значением.


Подробный пример с отрицательным R²

Рассмотрим реальный пример:

Факт (yᵢ)Прогноз модели (ŷᵢ)(yᵢ - ȳ)²(yᵢ - ŷᵢ)²
100150(100-130)² = 900(100-150)² = 2500
12050(120-130)² = 100(120-50)² = 4900
150200(150-130)² = 400(150-200)² = 2500
150100(150-130)² = 400(150-100)² = 2500

Среднее значение ȳ = 130

Расчет:

  1. SS_tot = 900 + 100 + 400 + 400 = 1800
  2. SS_res = 2500 + 4900 + 2500 + 2500 = 12400
  3. = 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: Неправильная модель

# Данные имеют экспоненциальную зависимость
# Мы пытаемся拟合 линейную модель
= -2.1  # Катастрофически плохо

Что делать при отрицательном R²?

Если вы получили отрицательный R²:

  1. Проверьте на переобучение: Разделите данные на train/test
  2. Упростите модель: Уменьшите число признаков, увеличьте регуляризацию
  3. Проверьте спецификацию: Подходит ли тип модели вашим данным?
  4. Анализируйте остатки: Посмотрите на графики остатков
  5. Проверьте данные: Нет ли выбросов или ошибок в данных

Сравнение с другими метриками

МетрикаДиапазонИнтерпретация отрицательных значений
(-∞, 1]Модель хуже, чем предсказание средним
MSE, MAE, RMSE[0, +∞)Отрицательных значений быть не может
MAPE[0%, +∞)Отрицательных значений быть не может

Резюме

✅ ПРАВДА: Коэффициент детерминации R² МОЖЕТ быть отрицательным.

❌ МИФ: R² всегда между 0 и 1.

Когда R² отрицательный: Это красный флаг, что ваша модель работает хуже, чем наивный прогноз средним значением.

Практический совет: Всегда проверяйте R² на тестовой выборке. Положительный R² на тренировочных данных ничего не значит, если на тестовых он отрицательный — это явный признак переобучения.

Отрицательный R² — это не математическая ошибка, а важный сигнал о том, что с вашей моделью что-то серьезно не так!