Коэффициент детерминации R2 регрессионной модели снижается, когда я удаляю выбросы: разве такое возможно?

Вопрос или проблема

Я анализирую, как выбросы в наборе данных размером 8×8000 влияют на регрессионные модели. У меня есть три сценария: исходный набор данных (с выбросами), усечённый набор данных (исправлено 2% выбросов) и набор данных без выбросов (строки с выбросами удалены). Я обучил как линейную регрессию, так и модели SVM. Значение R² постепенно снижается по мере уменьшения числа выбросов:

  • Исходный набор данных: R² = 0,98,
  • Усечённый набор данных: R² = 0,94,
  • Без выбросов: R² = 0,89.

С моего опыта, удаление выбросов улучшает работу модели, но на этот раз все наоборот. Может ли это быть связано с переобучением на выбросы в исходных данных? Есть ли другие метрики, которые я должен проанализировать, чтобы лучше понять это поведение? Это связано с тем, как я преобразовывал данные (логарифм + стандартное масштабирование)? Есть ли статьи в IEEE или других академических изданиях, которые обсуждают влияние выбросов на регрессионные и модели машинного обучения?

Я собираюсь привести пример, почему интуитивно снижение $R^2$ после удаления выбросов не должно вас удивлять.

Предположим, вы хотите изучить связь между весом и ростом собак. Итак, вы собираете множество данных, включающих всё от маленьких чихуахуа до больших немецких овчарок. Вес варьируется от 2 до 20 кг, а рост — от 20 до 80 см. По какой-то причине у вас в данных также находится один жираф; он весит 800 кг и имеет рост 4 метра. Это ваш выброс.

Теперь, если вы построите график всего набора данных и выполните линейную регрессию, вы обнаружите сильную корреляцию между весом и ростом. Линия пройдет через центр облака фактических данных о собаках и через одну точку жирафа. Отклонения между точками данных и линией регрессии будут небольшими, и $R^2$ будет высоким.

После построения графика данных вы замечаете выброс — жирафа, удаляете его, перестраиваете график и повторяете линейную регрессию. Вы сильно увеличиваете график, диапазон данных как по шкале веса, так и по шкале роста значительно меньше. Корреляция между ростом и весом среди собак не очень велика. Данные представляют собой просто большое облако точек. Ваш $R^2$ значительно меньше.

Обычный способ вычисления $R^2$ предполагает соотношение остаточной и общей дисперсии.

$$
R^2 = 1-\dfrac{
\text{
Остаточная дисперсия
}
}{
\text{
Общая дисперсия
}
}
$$

Если вы удаляете выброс, вы можете значительно уменьшить общую дисперсию без значительного уменьшения остаточной дисперсии. В этом случае удаление выброса приведет к снижению $R^2$.

Учитывая комментарий о том, что MSE (связанное с остаточной дисперсией) снижается в то время как $R^2$ также снижается, я нахожу это объяснение весьма вероятным.

Давайте посмотрим на моделирование.

library(MASS)
library(ggplot2)
set.seed(2024)

# Давайте смоделируем данные с слабой корреляцией, но без выбросов
#
N <- 999
XY <- MASS::mvrnorm(
  N, 
  c(0, 0),
  матрица(c(
    1, 0.3,
    0.3, 1
  ), 2, 2)
)
d1 <- data.frame(
  x = XY[, 1],
  y = XY[, 2],
  Set = "Без выбросов"
)

# Посмотрите на график
#
ggplot(d1, aes(x = x, y = y)) +
  geom_point()

# Добавим выброс, например, жирафа (взять идею из другого ответа)
#
d2 <- data.frame(
  x = c(XY[, 1], 99),
  y = c(XY[, 2], 101),
  Set = "Есть выброс"
)

# Посмотрите на график
#
ggplot(d2, aes(x = x, y = y)) +
  geom_point() 

# Построим линейные регрессии с и без выбросов
#
L1 <- lm(d1$y ~ d1$x)
L2 <- lm(d2$y ~ d2$x)

# Напечатать сводки регрессий и данных
#
# R^2
#
summary(L1)$r.squared # Я получаю R^2 = 0.09568171 без выброса
summary(L2)$r.squared # Я получаю R^2 = 0.8828702 с выбросом
#
# Общая дисперсия
#
var(d1$y) # Я получаю общую дисперсию y без выброса: 0.9963245
var(d2$y) # Я получаю общую дисперсию y с выбросом: 11.1925
#
# Остаточная дисперсия
#
var(resid(L1)) # Я получаю остаточную дисперсию без выброса: 0.9496832
var(resid(L2)) # Я получаю остаточную дисперсию с выбросом: 1.310975

Без выброса существует слабая, но существующая связь между двумя переменными.

без выбросов

С выбросом существует гораздо более сильная связь между двумя переменными.

с выбросом

Несмотря на то, что $R^2$ с выбросом значительно выше, он имеет более высокую остаточную дисперсию. Это потому что общая дисперсия намного выше, когда есть выброс. Просто посмотрите, насколько более разрежены данные, когда выброс включён.

Если удаление выбросов увеличивает RMSE, но снижает MAE, это может указывать на то, что модель слишком точно соответствовала выбросам. Вы также можете проверить распределение остатков до и после удаления выбросов. Если удаление выбросов увеличивает дисперсию остатков, возможно, выбросы содержат значимую информацию. Также, если ваши данные имеют непостоянную дисперсию, удаление выбросов могло создать дисбаланс.

Ответ или решение

Когда вы удаляете выбросы из вашего набора данных, и в результате R² снижается, это может показаться неожиданным. Однако такое явление вполне возможно и объяснимо с точки зрения статистики и поведения модели. Давайте разберемся, почему так происходит и какие шаги можно предпринять для лучшего понимания ситуации.

Теория: R² или коэффициент детерминации измеряет долю дисперсии зависимой переменной, которая объясняется независимыми переменными в модели. Когда R² приближается к 1, это говорит о сильной модели, которая хорошо описывает данные. Однако высокое значение R² не всегда указывает на качество модели, так как может обнаружить переподгонку (overfitting), когда модель слишком точно описывает существующие данные, включая выбросы, но не обобщает прогнозы на новые данные.

Удаление выбросов обычно ведет к улучшению модели, особенно если эти выбросы случайны или результат ошибки измерения. Однако в некоторых случаях выбросы могут внести значительный вклад в общую структуру данных, особенно если они находятся на пределе связи переменных, что может искусственно завышать R².

Пример: Рассмотрим случай, где в вашем наборе данных, измеряющем высоту и вес собак, также присутствует один жираф. Линейная регрессия, учитывающая все данные, включая жирафа, может показать высокое значение R², так как выброс (жираф) придает модели стабильность, даже если фактически это не отражает реальной зависимости между высотой и весом собак. После удаления жирафа из данных, вы замечаете, что оставшиеся данные образуют облако точек без ясной связи, и R² уменьшается, что отражает более реалистичную, хотя и менее "впечатляющую" картину.

Применение: В вашей ситуации снижение R² после удаления выбросов может означать несколько вещей:

  1. Переподгонка на выбросах: Выбросы могли искусственно повышать R², создавая иллюзию хорошо обученной модели. Удаление этих данных показывает, что модель не так хорошо подходит для оставшихся данных.

  2. Значение выбросов: Возможно, выбросы содержат важную информацию о структуре данных, которая важна для понимания и прогнозов. Такие выбросы могут быть свидетельством гетероскедастичности или иной специфичной характеристики данных.

  3. Депенденция на трансформации: Трансформация данных, такая как логарифмирование и стандартизация, может по-разному сказываться на наборе данных с выбросами и без. Такая трансформация, примененная без учета выбросов, может изменить динамику данных и, соответственно, результативность модели.

Рекомендации:

  1. Анализ метрик производительности: Используйте другие метрики, такие как среднеквадратическая ошибка (MSE) и средняя абсолютная ошибка (MAE), чтобы оценить производительность модели. Сравнение этих метрик до и после удаления выбросов может дать более объективное представление об изменении модели.

  2. Анализ распределения остатков: Проверьте распределение ошибок модели (остатков) до и после удаления выбросов. Это поможет выявить любую систематичность, которая могла бы указать на проблему с моделью.

  3. Идентификация и типизация выбросов: Определите, являются ли выбросы случайными аномалиями или они имеют связь с вашими признаками. Если выбросы несут значимую информацию, возможно, стоит подумать об их сохранении и моделировании с использованием методов, устойчивых к выбросам.

  4. Обзор литературы: Изучите научные статьи и исследования, посвященные анализу выбросов и их влиянию на модели машинного обучения. Литература может предложить более глубокие методы и стратегии по работе с выбросами.

Ваш случай является классическим проявлением того, как выбросы могут влиять на результаты анализа данных. Понимание природы выбросов и их влияние на статистические выводы играет ключевую роль в построении надежных и правдоподобных моделей.

Оцените материал
Добавить комментарий

Капча загружается...