Учебник по правильной интерпретации категориальных объясняющих переменных

Введение в регрессию с категориальными элементами

Регрессия - это основной продукт в мире науки о данных, и поэтому полезно понимать ее в простейшей форме.

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

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

Давайте начнем с EDA

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

Мы хотим видеть закономерность или взаимосвязь. При работе с двумя числовыми переменными очевидным выбором будет разброс.

В этом случае есть несколько отличных вариантов: фасеточные гистограммы и коробчатые диаграммы.

Гистограмма

Давайте начнем с фасетной гистограммы. Фасет просто означает, что вместо создания одной гистограммы у нас фактически есть гистограмма для каждого уровня данной категориальной переменной.

Будьте уверены, с ggplot это очень легко сделать.

Как вы можете видеть ниже, я делаю гистограмму, как обычно, для представления распределения цен, но я также включаю команду facet_wrap, инструктирующую программу визуализировать гистограмму для каждого значения поля, переданного в facet_wrap(~). Поскольку есть только два значения для поля береговой линии, мы увидим две смежные панели, содержащие гистограмму значений цен для любого значения береговой линии.

housing %>%
  ggplot(aes(x = price)) +
    geom_histogram(binwidth = 50000) +
    facet_wrap(~waterfront)

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

График плотности

Лучшая относительная визуализация распределения - geom_density

housing %>%
      ggplot(aes(x = price)) +
      geom_density(binwidth = 50000) +
      facet_wrap(~waterfront)

Теперь мы лучше фиксируем относительную концентрацию данной части распределения.

Boxplot

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

housing %>%
  ggplot(aes(x = as.factor(waterfront), y = price)) +
    geom_boxplot()
    facet_wrap(~waterfront)

Центральная линия прямоугольной диаграммы представлена ​​средним значением сгруппированного набора данных. Хотя оба подхода к визуализации в той или иной форме демонстрируют распределение, прелесть прямоугольной диаграммы заключается в том, что мы получаем очень точное измерение и сравнение среднего значения, IQR и т. Д.

Это может помочь облегчить немедленную интерпретацию вещей.

EDA Takeaways

Один тип визуализации лучше другого? Я бы сказал да, для разных вещей. Когда дело доходит до исследовательского анализа данных или любого типа анализа, который вы могли бы проводить как специалист по данным, легко просто начать использовать инструменты, которые есть у вас на поясе инструментов, просто потому, что вы знаете, что люди делают, но это сделает вашу работу с данный инструмент гораздо более значим, если у вас есть четкая цель и намерение использовать данный инструмент.

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

Давайте построим модель регрессии

При построении регрессионной модели важно понимать, что именно происходит под капотом.

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

Как вы теперь знаете, каждой независимой переменной, используемой в регрессионной модели, присваивается коэффициент. Этот коэффициент представляет собой наклон линии в уравнении линии, которую мы генерируем с помощью нашей регрессии.

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

fit <- lm(price ~ waterfront,
            data = housing)
fit

Как мы видели ранее, построение линейной модели включает точку пересечения оси Y, которая здесь равна 545 462, и коэффициент, наклон или бета, который здесь равен 906 159.

Итак, наша формула: Y = 545 462 + 906 159 * X.

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

Без набережной:

545,462 = 545,462 + 906,159*0

В случае отсутствия береговой линии мы передадим 0, исключив этот коэффициент, оставив нам только значение точки пересечения по оси y.

С набережной:

1,451,621 = 545,462 + 906,159*1

И наоборот, когда есть береговая линия, мы будем рассматривать X как 1 и эффективно сложить точку пересечения y и коэффициент вместе, что даст нам 1,5 миллиона долларов.

Интерпретация здесь достаточно проста. А теперь давайте заглянем под капот.

Групповые средства

Мы начнем с этого, посмотрев на среднее значение для каждого значения группы береговой линии.

housing %>% 
  group_by(waterfront) %>% 
  summarize(mean_price = mean(price))

И вот что мы получаем:

Мы видим среднюю цену 545 462 для тех, у кого нет береговой линии, и среднюю цену в 1 451 621 для тех, у кого нет.

Заметили что-нибудь знакомое в этих двух числах?

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

Итак, что именно здесь происходит…

Когда вы передаете категориальную переменную в регрессионную модель, и в данном случае переменную береговой линии, базовое групповое среднее значение 545 КБ назначается в качестве точки пересечения оси Y, а коэффициент переменной теперь определяется как береговая линия 1 обратите внимание, что 1 на самом деле является разницей между базовым групповым средним значением (где береговая линия = 0) и групповым средним значением, когда береговая линия = 1. В качестве примечания, базовая группа устанавливается в соответствии с алфавитным порядком.

Если для этой переменной было три значения, коэффициент третьего значения также был бы его относительной разницей между его средним значением по группе и средним значением по группе исходного уровня.

Вывод

Подводя итог нашим знаниям,

При проведении EDA, когда вы хотите оценить взаимосвязь между вашей зависимой переменной, которая является числовой, и независимой переменной, которая является категориальной, есть несколько отличных вариантов визуализации:

  • Гистограмма (фасетированная)
  • Диаграмма плотности (граненая)
  • Коробчатая диаграмма (граненая)

В регрессионной модели, которая принимает объясняющую / независимую переменную, которая является категориальной:

  • точка пересечения оси y равна среднему значению базовой группы
  • базовая группа устанавливается в соответствии с алфавитным порядком значений переменных
  • коэффициенты равны относительной разнице между заданным значением категориальной переменной и средним значением базовой группы (или точкой пересечения по оси Y)

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

Поздравления с наукой о данных!