HR аналитика
May 4

Регрессиада. Часть 1. Первое знакомство

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

Первая заключается в необходимости формирования у читателей глубокого понимания базовых концепций статистики, которым посвящена серия моих статей: [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11].

Вторая причина заключается в том, что регрессии можно конечно и в тетрадке посчитать, но хотелось бы как-то быстрее и эффективнее. Поэтому мы с вами изучили язык R через серию статей и видеороликов: [12], [13], [14], [15], [16], [17].

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

Источник

Введение

Больше ста лет назад британский исследователь Френсис Гальтон ввел понятие регрессии и продемонстрировал её применение в своем исследовании о наследовании человеческих характеристик [18]. В этой связи мне нравится шутить, что, кажется, прошло достаточно времени для того, чтобы аналитики освоили регрессию, чему и будет посвящена моя серия из четырёх статей.

Как всегда, мы начнём со смыслов – что такое регрессия и зачем она нужна? Давайте обратимся к тому, как это формулирует Эндрю Гельман в своей книге про регрессии. Гельман рассматривает регрессию в контексте политической науки, но его определение вполне применимо к HR-аналитике, поскольку в обоих случаях объект изучения — человек.

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

Вот основные причины, по которым мы используем регрессии:

  1. Прогноз – моделирование существующих наблюдений или прогнозирование на основе новых данных.
  2. Исследование взаимосвязей – обобщение того, насколько хорошо одна переменная или набор переменных предсказывают результат.
  3. Экстраполяция – поправка на известные различия между выборкой (т. е. наблюдаемыми данными) и популяцией, представляющая интерес.
  4. Причинно-следственный вывод – возможно, наиболее важным применением регрессии является оценка эффекта процедур [19].

Вы скажите: это политологи, а причем тут HR-аналитика? Принимается, обратимся к Кейту МакНалти, автору книги с говорящим названием «Справочник по регрессионному моделированию в HR-аналитике». Автор подчеркивает, что важнейшая роль регрессий в HR-аналитике заключается не в прогнозировании, а в исследовании взаимосвязей. Регрессии позволяют понять связь между зависимой переменной и другими переменными. Вот его цитата:

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

Совсем немного математики

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

Разберем уравнение простой линейной регрессии:

y – зависимая переменная, которую мы прогнозируем или объясняем;

а – интерсепт модели (альфа), или, проще говоря, значение y в точке x = 0;

b1 – коэффициент бета один, который определяет направление и силу наклона функции;

x – независимая переменная;

e – ошибка (эпсилон), то есть та часть зависимой переменной, которая не объясняется параметрами модели a и b1.

Конечно, ничто не мешает нам добавить в модель дополнительные переменные и посчитать несколько бета-коэффициентов: b2, b3, bn, чтобы учесть влияние не одного, а нескольких факторов. Такая модель называется множественной линейной регрессией.

Самое же крутое в регрессии то, что она позволяет дать интерпретацию параметров: когда мы вычислим коэффициент b1, то сможем утверждать, что изменение переменной x на 1 единицу приведет к соответствующему изменению переменой y на b1 единиц. Если пока что это звучит сложно, не волнуйтесь — мы разберем все на конкретном примере.

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

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

Практика

Представим ситуацию, что наша задача заключается в анализе факторов текучести персонала. У нас есть данные по 30 подразделениям, в которых фиксируется уровень текучести и уровень профессионального выгорания, измеренный по шкале от 0 до 100 пунктов за некий период. Наша цель — выяснить, как выгорание влияет на текучесть кадров.

Для демонстрации этого анализа я подготовил искусственный датасет, который вы можете найти на моем GitHub [21]. Перейдем к анализу данных в R.

# Загрузим данные и передадим их в переменную data
url <- "https://raw.githubusercontent.com/alexander-botvin/h0h1_about_hr_analytics/main/Regressions/example_one.csv"
data <- read.csv(url)

Взглянем на наш дафтафрейм с помощью команды str(). Он содержит 30 наблюдений по переменным attrition (текучесть в процентах), burnout (уровень выгорания), и department (название подразделения).

str(data)

'data.frame':	30 obs. of  4 variables:
 $ X         : int  1 2 3 4 5 6 7 8 9 10 ...
 $ attrition : int  19 14 29 18 29 24 38 17 18 31 ...
 $ burnout   : int  28 21 62 69 56 33 100 44 43 55 ...
 $ department: chr  "Подразделение 1" "Подразделение 2"  ...

Простая регрессия в R строится с помощью функции lm() следующим образом: зависимая переменная ~ независимая переменная.

# Построим модель и сохраним её в переменную model
model <- lm(attrition ~ burnout, data = data)

Вызовем функцию summary(), которая покажет нам результат расчёта.

summary(model)

Call:
lm(formula = attrition ~ burnout, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.7918 -2.2796  0.4171  3.1037  8.0664 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  12.0352     2.2956   5.243 1.43e-05 ***
burnout       0.2284     0.0438   5.213 1.55e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.705 on 28 degrees of freedom
Multiple R-squared:  0.4925,	Adjusted R-squared:  0.4744 

Мы видим много информации, поэтому давайте разберемся подробнее, сфокусировавшись на главном. Начнем с того, что p-value = 1.549e-05 свидетельствует о статистической значимости нашей модели в целом.

Теперь обратим внимание на таблицу Coefficients:

  • Intercept или параметр a в уравнении регрессии равен 12. Это означает, что при нулевом уровне профессионального выгорания текучесть составляет 12%.
  • Коэффициент бета при переменной burnout равен 0.23. Это говорит о том, что каждый дополнительный балл выгорания увеличивает текучесть на 0.23%. Исходя из этого, мы можем рассчитать, что при уровне выгорания в 50 баллов, средняя текучесть составит 12 + 0.23 × 50 = 23.5.

В колонке Pr(>|t|) указан уровень статистической значимости для каждого коэффициента, и он значительно ниже традиционного порога 0.05. Это позволяет нам утверждать о значимости каждого из коэффициентов в модели отдельно. Такая возможность нам сильно пригодится, когда мы перейдем к множественной линейной регрессии.

Особое внимание следует уделить показателю Adjusted R-squared, который равен 0.4744. Этот коэффициент детерминации (или R^2, ар квадрат) он исчисляется от 0 до 1 и показывает в нашем примере, что около 47% вариативности текучести можно объяснить уровнем профессионального выгорания. Однако следует помнить, что такой высокий R^2 почти не встречается в практической HR-аналитике, поскольку мой пример является искусственным и создан для обучения.

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

library(ggplot2)
ggplot(data = data, aes(y = attrition, x = burnout)) + 
  geom_point(size = 3, colour = "#a8a8a8") +
  geom_smooth(size = 2, method = 'lm',  se = FALSE, colour = '#ffa600') +
  scale_y_continuous(breaks = seq(0, 100, by = 5)) +
  scale_x_continuous(breaks = seq(0, 100, by = 10)) +
  labs(title = "Связь между текучестью и профессиональным выгоранием",
       x = "Балл профессионального выгорания",
       y = "Текучесть (%)") +
  theme_classic()

На этом графике серые точки представляют данные по 30 подразделениям, а желтая линия — это линия регрессии. Эта линия оптимально подобрана так, чтобы минимизировать ошибки между наблюдаемыми данными и прогнозами модели. Напомним, что ошибка может быть равна 0, только если линия проходит точно через две точки, во всех остальных случаях ошибка больше.

Бонусом, для таких же зануд, как я сам – у простой линейной регрессии есть тригонометрическое объяснение: коэффициент бета в простой линейной регрессии — это тангенс угла в прямоугольном треугольнике, где линия регрессии является гипотенузой. Чтобы это проверить, возьмем точку на графике, где x=60, соответствующее значение y из модели регрессии составляет 25.7. Вычислим (y−a) / x и получим коэффициент наклона 0.2284, что соответствует результату в нашей регрессии.

Разобравшись с этим примером, вы начнете примерять простую линейную регрессию к своей практике и увидите: что не всегда зависимая переменная принадлежит множеству действительных чисел, что отношения между зависимой и независимой переменной могут быть нелинейными, что необходимо учесть индивидуальную или групповую дисперсию. Это и многое другое покажет вам, почему простая линейная регрессия может не подходить для вашего случая. Вы можете задаться вопросом: что делать дальше? Ответ прост: нужно подобрать модель, которая лучше соответствует вашим условиям, поскольку регрессии — это целая вселенная!

Чтобы вам было проще ориентироваться я составил следующее дерево принятия решений.

Заключение

Невозможно охватить всё многообразие регрессионных моделей и нюансов, связанных с ними в рамках одной или даже нескольких статей. Целые книги посвящены различным видам регрессий. В этой серии я лишь указываю путь, по которому вам предстоит идти самостоятельно. Отличный ресурс для изучения разнообразия моделей, особенно в контексте HR-аналитики, представляет книга Кейта МакНалти [20]. Также я рекомендую курс от биологов Санкт-Петербургского государственного университета «Просто о статистике», который в значительной мере посвящён регрессиям [22]. Если вам не хватает бэкграунда для понимания каких-то статистических элементов, то обратитесь к моим материалам, которые я подробно перечисляю в ссылках. Если вам хочется большей глубины, так как я, несомненно, упрощаю весь материал для формата статей, то в первую очередь стоит уделить внимание работам Эндрю Гельмана [19] и Ричарда МакЭлрита [23], чей подход мы начнем использовать в третьей части серии.

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

Ссылки

  1. Ботвин А.Ю. Нормальное распределение
  2. Ботвин А.Ю. Логарифмирование и преобразование переменных
  3. Ботвин А.Ю. Доверительные интервалы
  4. Ботвин А.Ю. Корреляция. Часть 1
  5. Ботвин А.Ю. Корреляция. Часть 2
  6. Ботвин А.Ю. Статистическая значимость и размер эффекта. Теория
  7. Ботвин А.Ю. Статистическая значимость и размер эффекта. Практика
  8. Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 1 - аналитический способ
  9. Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 2 - сеточное приближение
  10. Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 3 – MCMC
  11. Ботвин А.Ю. Мини-сериал про переменные
  12. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 1. Мотивационная
  13. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 2. Установка
  14. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 3. Основные элементы
  15. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 4. Установка Stan и rethinking
  16. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 5. Классическая статистика
  17. Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 6. Байесовская статистика
  18. https://ru.wikipedia.org/wiki/Регрессия_(математика)
  19. Andrew Gelman. Regression and Other Stories
  20. Keith McNulty. Handbook of Regression Modeling in People Analytics
  21. https://github.com/alexander-botvin/h0h1_about_hr_analytics/blob/main/Regressions/example_one.csv
  22. https://openedu.ru/program/spbu/STATIK/
  23. Richard McElreath. Statistical Rethinking