Регрессиада. Часть 1. Первое знакомство
Я запустил свой канал по HR-аналитике и начал публиковать статьи около двух с половиной лет назад. Основной целью открытия канала было обсуждение регрессий, и вот мы наконец это делаем! Есть три причины, которые оправдывают столь затянувшуюся паузу.
Первая заключается в необходимости формирования у читателей глубокого понимания базовых концепций статистики, которым посвящена серия моих статей: [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11].
Вторая причина заключается в том, что регрессии можно конечно и в тетрадке посчитать, но хотелось бы как-то быстрее и эффективнее. Поэтому мы с вами изучили язык R через серию статей и видеороликов: [12], [13], [14], [15], [16], [17].
И наконец третья причина – я тоже не стою на месте. За эти годы я значительно расширил свои знания, изучая байесовскую статистику, другие методы и практикуясь.
Введение
Больше ста лет назад британский исследователь Френсис Гальтон ввел понятие регрессии и продемонстрировал её применение в своем исследовании о наследовании человеческих характеристик [18]. В этой связи мне нравится шутить, что, кажется, прошло достаточно времени для того, чтобы аналитики освоили регрессию, чему и будет посвящена моя серия из четырёх статей.
Как всегда, мы начнём со смыслов – что такое регрессия и зачем она нужна? Давайте обратимся к тому, как это формулирует Эндрю Гельман в своей книге про регрессии. Гельман рассматривает регрессию в контексте политической науки, но его определение вполне применимо к HR-аналитике, поскольку в обоих случаях объект изучения — человек.
Регрессия — это метод, который позволяет исследователям обобщать, как прогнозы или средние значения результата варьируются у разных людей, определяемых набором предикторов.
Вот основные причины, по которым мы используем регрессии:
- Прогноз – моделирование существующих наблюдений или прогнозирование на основе новых данных.
- Исследование взаимосвязей – обобщение того, насколько хорошо одна переменная или набор переменных предсказывают результат.
- Экстраполяция – поправка на известные различия между выборкой (т. е. наблюдаемыми данными) и популяцией, представляющая интерес.
- Причинно-следственный вывод – возможно, наиболее важным применением регрессии является оценка эффекта процедур [19].
Вы скажите: это политологи, а причем тут HR-аналитика? Принимается, обратимся к Кейту МакНалти, автору книги с говорящим названием «Справочник по регрессионному моделированию в HR-аналитике». Автор подчеркивает, что важнейшая роль регрессий в HR-аналитике заключается не в прогнозировании, а в исследовании взаимосвязей. Регрессии позволяют понять связь между зависимой переменной и другими переменными. Вот его цитата:
Во-первых, наборы данных в HR-аналитике редко бывают достаточно большими, чтобы обеспечить удовлетворительную точность прогнозов, поэтому внимание обычно переключается на вывод на основе данных. Во-вторых, в области HR-аналитики решения часто оказывают реальное влияние на людей. Таким образом, даже в тех редких ситуациях, когда точное прогнозное моделирование достижимо, стейкхолдеры вряд ли будут доверять результатам прогнозных моделей и нести ответственность за последствия прогнозных моделей без какого-то элементарного понимания того, как генерируются прогнозы. Это требует от аналитика учитывать силу вывода, а также точность прогнозирования при выборе подхода к моделированию [20].
Совсем немного математики
После того как мы озвучили основные понятия и мотивацию, мы можем двигаться дальше. Продвижение по теме невозможно без математики, поскольку регрессия — это математический метод. В случае простой линейной регрессии всё сводится к школьным функциям и линейным уравнениям. Если вы чуть подзабыли эти понятия, не беспокойтесь — мы вспомним их вместе. Также из моего утверждения становится понятно, что существуют разные регрессии – это действительно так и про это мы поговорим далее.
Разберем уравнение простой линейной регрессии:
y – зависимая переменная, которую мы прогнозируем или объясняем;
а – интерсепт модели (альфа), или, проще говоря, значение y в точке x = 0;
b1 – коэффициент бета один, который определяет направление и силу наклона функции;
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
- Ботвин А.Ю. Статистическая значимость и размер эффекта. Теория
- Ботвин А.Ю. Статистическая значимость и размер эффекта. Практика
- Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 1 - аналитический способ
- Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 2 - сеточное приближение
- Ботвин А.Ю. Байесовский фреймворк и HR задачи. Часть 3 – MCMC
- Ботвин А.Ю. Мини-сериал про переменные
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 1. Мотивационная
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 2. Установка
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 3. Основные элементы
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 4. Установка Stan и rethinking
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 5. Классическая статистика
- Ботвин А.Ю. Как перестать бояться и полюбить R. Часть 6. Байесовская статистика
- https://ru.wikipedia.org/wiki/Регрессия_(математика)
- Andrew Gelman. Regression and Other Stories
- Keith McNulty. Handbook of Regression Modeling in People Analytics
- https://github.com/alexander-botvin/h0h1_about_hr_analytics/blob/main/Regressions/example_one.csv
- https://openedu.ru/program/spbu/STATIK/
- Richard McElreath. Statistical Rethinking