Опасности его использования и способы улучшения анализа.

Вступление

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

Эта статья во многом навеяна Dr. Конспект лекций Космы Шализи . Я намерен преобразовать некоторые из трудных для понимания статистических аргументов в более наглядные и простые объяснения.

Управляющее резюме

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

Хорошая причина использовать R²:

  1. Я хочу увидеть, насколько мои данные зашумлены.

Плохие причины использовать R²:

  1. Я хочу знать, насколько хорошо моя модель предсказывает. (Плохо, используйте вместо этого среднеквадратичную ошибку)
  2. Я хочу знать, значима ли моя независимая переменная. (Плохо, используйте p-значения)
  3. Я хочу знать, является ли моя линейная модель статистически значимой (Плохо, используйте F-тест, но не забудьте также проверить свои предположения)
  4. Я хочу знать, какая часть моей зависимой переменной объясняется моей независимой переменной (Плохо…. Вроде…)

Все еще заинтересован? Отлично, читайте дальше!

Фон

Очень краткое описание R²

R² - это показатель, обычно используемый для оценки моделей линейной регрессии. На графике выше мы можем видеть, как наши красные точки (прогнозы) отличаются от черных точек (фактические значения). Черная линия между этими двумя цветами называется остатком. Но что, если мы хотим попытаться придумать способ увидеть, насколько велики наши остатки? Вставьте R².

R² называется пропорцией дисперсии зависимой переменной, которая объясняется нашей независимой переменной. Говоря менее формально, это значение от 0 до 1, которое, как говорят, описывает, насколько хорошо наша модель соответствует данным. Во многих кругах аналитиков данных R² также играет роль метрики для сравнения и оценки моделей, где 0 - очень плохая модель, а значения, близкие к 1, - хорошая. Мы находим его, складывая сумму квадратов остатков (RSS), делим ее на общую сумму квадратов (TSS), а затем вычитая эту дробь из 1.

Сигнал и шум

Сигнал и шум - это инь и янь мира данных. Сигнал относится к некоторой правде в данных, которые мы пытаемся обнаружить, а шум - это бессмысленная информация, которая затемняет наш сигнал. Чтобы перенести эту метафору в 21-й век, вы можете думать о сигнале как о своем любимом плейлисте Spotify, который вы хотите найти, а о шуме как о тех бесполезных подкастах, которые всегда продвигаются. В этой статье я собираюсь часто использовать эти термины, чтобы упростить понимание таких понятий, как стандартное отклонение и истинные значения коэффициентов, если кто-то исходит из нестатистического опыта.

R²: мера шума

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

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

Возможно, это еще не имеет смысла, поэтому давайте визуализируем, как выглядит усиление шума при сохранении постоянного сигнала.

Управление R²

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

Наш сигнал: истинный коэффициент при X равен 1,2.

Шум: случайное сложение чисел со средним значением 0 и увеличивающимся стандартным отклонением.

Для этого мы собираемся использовать следующий код для генерации данных.

x1 <- seq(1,10,length.out = 500) 
y1 <- 2 + 1.2*x1 + rnorm(500,0,sd = 1) 

Для x1 компьютер сгенерирует 500 чисел от 1 до 10. Для y1 мы собираемся взять это число, умножить его на наш истинный коэффициент (1.2), прибавить к нему 2, а затем добавить случайное число, которое является случайным. распределено около 500 со средним значением 0 и стандартным отклонением 1.

Мы создадим 4 графика и линейную регрессию, чтобы увидеть, как наши результаты меняются с увеличением стандартного отклонения. Важно понимать, что в каждом из них наш сигнал (истинный коэффициент 1,2) будет сохраняться, но у нас будут разные уровни шума (который в конечном итоге имеет среднее значение 0).

Если R² измеряет наш сигнал или его силу, он должен оставаться примерно равным. Если он измеряет шум в наших данных, то R² должен резко упасть, поскольку мы увеличиваем шум в нашей модели (сохраняя постоянный сигнал). Так что же происходит?

Хочешь взглянуть на это. Наш сигнал для каждой регрессии был 1,2, и каждая регрессия была около 1,2. Но обратите внимание, как кажется, что R² страдает каждый раз, когда мы увеличиваем шум.

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

R² и пояснение: пояснение

Ранее я говорил вам, что R² - это доля дисперсии в зависимой переменной, которая объясняется нашей независимой переменной, но теперь, дорогой читатель, я должен признаться, что это тоже сложнее, чем кажется.

Часто, когда мы говорим слово достаточно часто, мы можем обмануть себя, думая, что понимаем его, но это заслуживает нашего внимания, чтобы действительно изучить, что здесь означает «объясняет». Я опасаюсь, что многие поймут это двусмысленное слово и решат, что оно означает «причины». В заключение, мы должны показать, что R² не может сказать нам, что X вызывает Y или имеет какую-то причинную связь между ними.

Этот простой эксперимент на самом деле сделать довольно легко. Давайте возьмем некоторый X, который действительно имеет какое-то причинное влияние на Y (тот же код, что и раньше). Затем, если R² действительно измеряет какую-то причинную связь, и мы знаем, что X является причиной Y, тогда R² для вариации X, объясняемой Y, должен быть ниже, чем R² для вариации Y, объясненной X.

Давайте проведем именно этот эксперимент и посмотрим, чем отличаются наши R².

x2 <- seq(1,10,length.out = 500)     
y2 <- 2 + 1.2*x2 + rnorm(500,0,sd = 3)
summary(lm(x2~y2))$r.squared
summary(lm(y2~x2))$r.squared

Мы знаем, что Y не имеет причинного влияния на X, и тем не менее, если мы считаем, что R² показывает нам некую причинную связь, тогда R² здесь должны быть другими, но это не так, и поэтому мы должны отвергнуть любое представление о том, что R² может доказать некую причинно-следственную связь между нашей зависимой и независимой переменной.

Я действительно думаю, что большинство аналитиков данных отказались бы сказать, что R² показывает нам, какая часть Y вызвана X, но я действительно думаю, что многие верят во что-то в этом роде. Это или многие люди, которые обычно мало заботятся о дисперсии, удивительно сильно заботятся о том, насколько она «объясняется» какой-либо переменной.

Последствия всего этого

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

По правде говоря, становится трудно придумать вескую причину, чтобы когда-либо уделять R² то внимание, которое он обычно получает. Эта статья уже слишком длинная, но я думаю, что во многих случаях одержимость R² является довольно плохой привычкой, поскольку она обычно побуждает новичков как сумасшедшие переобучаться (чем больше шума ваша модель может объяснить, тем лучше R²), игнорируйте другие более важные линейные метрики регрессионной модели и настроить их на сбой, как только они столкнутся с данными из реального мира и всей их беспорядком.

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

* Эта статья была написана идиотом-аналитиком данных, который значительно упростил упомянутую статистику. Ошибки вероятны, но главный вывод о том, что R² следует использовать более осторожно, стоит (по крайней мере, я надеюсь. Что я знаю? Я просто заявление об отказе от ответственности).