Является продолжением предыдущих публикаций.


Неожиданно оказалось, что для одной из задач, которую пришлось решать примерно год назад, а именно оценка «надежности» большого коллектива, нынче есть весьма популярное название «HR аналитика». Актуализируя в рамках новой задачи материалы, вышел на просторах российского интернета на информативный блог по теме HR-аналитики. Собственно говоря, этот блог + обсуждение вопросов с его автором Эдуардом Бабушкиным и послужили отправной точкой для пересмотра проблематики.


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



Постановка задачи


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


Классические задачи HR аналитики делятся на два сильно различающихся класса:


  • оценка перспективности сотрудников при приеме на работу;
  • оценка существующих сотрудников на предмет потенциального увольнения.

Первый класс интересен и для рекрутинговых агентств и для HR подразделений компаний. Второй класс важен только для HR подразделений (ну и, естественно, для руководства компании).


По сути, первый класс задач сводится к оценке «хороший-плохой претендент» на фиксированный момент (встречи с ним рекрутёра) на основании исторических данных. Т.е. это классификатор, построенный на базе накопленных данных о событиях в прошлом. С технической точки зрения для решения такой задачи могут использоваться статистические методы, включая классические методы машинного обучения (случайный лес и нейронные сети). Вопрос в оптимально подобранных факторах.


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


HR и руководители подразделений, заинтересованных в сохранении текущего штата сотрудников, продолжают оперировать терминами «модель», «факторы», «точность», «обучение», «горизонт моделирования» и прочими словечками, услышанными от маркетологов. Крупные вендоры продолжают радовать красивыми картинками и публикациями, как все будет хорошо, если использовать их продукты. Но если взглянуть на иллюстрации из весьма известной публикации по HR аналитике "Watson Analytics Use Case for HR: Retaining valuable employees", то, например, на одной из картинок будет видно, что предлагается использовать простой decision tree, но в красивом фантике. Но задача то достаточно сильно изменилась!


Картинка с подтверждением про decision tree


Правомерны ли ожидания HR специалистов?


Уточним еще раз.


Упомянутые формулировки, а именно, создание модели, прогнозирующей уход сотрудников с заданной точностью (не менее 75-80%) с необходимостью её тренировки на исторических данных достаточно явно указывает на ожидание конечного результата («чёрного ящика», далее ЧЯ) в виде бинарного классификатора «уволится — не уволится». Классификатор может быть любым, начиная от простой логистической регрессии и кончая случайным лесом и нейронными сетями, суть проблемы от этого не меняется.


Проблема связана с тем, что изменения в окружении и в самом объекте анализа (сотрудник) происходят очень динамично. Построенная модель будет очень быстро терять точность. Причем, не только сама по себе с течением времени, но и с увеличением срока прогнозирования. По более богатому опыту западных HR аналитиков нынче горизонт более или менее достоверного прогнозирования для ИТ области даже для хорошо натренированной модели составляет 1-1.5 месяца, но никак не 1-2 года, как любят говорить в рекламных роликах.


Теперь вспомним, что основная цель прогнозирования заключается в возможности внесения адекватных управленческих воздействий для удержания сотрудника. Но, опять же, по данным различных психологических HR исследований на горизонте 1-2 мес. сотрудника остановить крайне сложно и дорого. Он уже смотрит по сторонам, начал ходить по собеседованиям, морально готов к выходу, свертывает внутренние активности и пакует вещи.


Даже если актуализировать бинарный классификатор ежедневно, корректируя его точность по новым историческим данным, все равно горизонт прогнозирования принципиально нельзя улучшить радикально. Внешнее окружение меняется очень быстро, но новые факторы еще не вступили в действие — не на чем учить. Более того, алгоритм должен предоставить информацию по оптимальному управленческому воздействию, а далеко не все machine learning алгоритмы могут непосредственно предоставить такую возможность.


Это тупик?


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


Речь идет о применении алгоритмов дожития (Survival analysis), который, в т.ч. является одним из самых перспективных с точки зрения ведущих западных HR аналитиков. В совокупности с моделью пропорциональных рисков (Cox proportional hazard) позволяет оперировать вероятностью увольнения, строить кривую прогноза увольнения и анализировать влияние различных факторов для конкретного сотрудника. Принципиальным является то, что переход от бинарной классификации к вероятностному описанию позволяет смотреть на эволюцию всего жизненного цикла компании и отдельных сотрудников, оперировать трендами, проводить анализ изменения вероятности увольнения в зависимости от того или иного управленческого воздействия задолго до того, как может возникнуть риск увольнения.


С помощью кривой дожития можно сравнивать разных сотрудников, считать среднее время пребывания, как для популяции, так и для отдельного сотрудника. Да и оперировать вероятностью — более зрелый подход, нежели оценивать все в категориях «чёрное — белое».


Ниже иллюстративный пример того, как выглядят разные кривые дожития (данные взяты из СКУД, фиксирующие реальное пребывание сотрудников в офисе) в зависимости от наличия переработок. «КЭП, да ведь постоянные переработки перенапрягают, Вы видите?!» Все работает и весьма неплохо, есть время провести беседы с сотрудником и подправить ситуацию.


Переработка -- это плохо!


Ссылки


Для тех, у кого есть потребность в прогнозировании ухода сотрудников, привожу ряд ссылок на полезные материалы по «Survival analysis in R». Этого вполне достаточно, чтобы разобраться в теме и сделать для себя полезный инструмент:



На просторах интернета книги наблюдались в электронной форме.


Предыдущая публикация — «Оч.умелые ручки»: делаем Tableau/Qlik из R и «синей изоленты».

Комментарии (15)


  1. WTYPMAH
    31.01.2018 12:05

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

    Так же не очень понятно, как модели дожития справляются с предложенной проблемой вначале — адаптация к изменяющимся условиям?

    Сейчас не могу уже найти, но встречал интересную интерпритацию модели дожития — предполагалось, на примере HR-кейса, что любой сотрудник в любом случае когда-то уволится с 100% вероятностью, главные вопрос — когда?, что и пытались смоделировать.


    1. i_shutov Автор
      31.01.2018 12:17

      Проблема, как я постарался написать в тексте, как раз в том, что для классификатора нельзя делать непрерывный горизонт. Его точность сильно падает при отклонении от текущей точки более 1.5-2 месяцев (касается ИТ области, слишком уж много хайпа и новшеств). Да и что он будет классифицировать? "Уволился — не уволился" на момент прогноза? Бинарное состояние, хотя у человека могут быть длительные мучения.


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


    1. kablag
      31.01.2018 13:50

      Если на уровне шутки, то модель дожития в отличии от бинарного состояния позволяет объяснить почему прогнозы HR отдела не работают: «была ведь вероятность, что и не уволится!»

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


  1. WTYPMAH
    31.01.2018 12:47

    Идею понял. Ничего против survival analysis не имею, но немного смущает противопоставление…

    Если компания определила, что реагировать на тревожный сигнал по сотруднику нужно за 4 месяца (а ей это придется делать для любой модели — врядли кто-то что-то будет делать, если модель дожития покажет вероятность увольнения через год-полтора), то ничто не мешает построить поведенческий бинарный классификатор на целевую переменную 4 месяца.

    Либо классификатор представить в виде сгруппированной шкалы с нужным горизонтом (например, целевое событие с запасом через 6 месяцев), и как только сотрудник попадет по модели в «зону риска» — начать его усиленно мотивировать :)

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

    Кстати, если Вы работаете с этой системой на практике, было бы очень интересно посмотреть результаты бэктеста, а еще лучше А\Б бэктеста, а еще лучше — сансамблировать оба подхода. Тема для меня очень актуальная, т.к. прямо сейчас я заканчиваю проработку архитектуры аналогичной модели.

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


  1. OlegUV
    31.01.2018 13:22

    Тема интересная, но изложение примерно как «Берём бумагу, берём карандаш, смотрим как рисовал Делакруа и рисуем ещё лучше». Хочется большей конретики.


    1. i_shutov Автор
      31.01.2018 13:32

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


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


      Про survival analysis люди, касающиеся темы HR даже не слышали. А применение его более оправданно, чем параметризованная классификация. Есть хороший аналитический аппарат и разработанные модели (аж с 70-х годов прошлого века, если говорить про регрессию Кокса).
      Но пока это люди это будут отрицать и требовать точности прогноза "95%", ехать дальше не представляется возможным.


      Совсем хардкорные детали есть в приведенных источниках и на блоге из первого абзаца.


      1. WTYPMAH
        31.01.2018 14:13

        Сори что постоянно лезу с одним и тем же вопросом, но почему вы опять противопоставляете survival analysis и ML? Разве ML не применим в SA?

        Вот, например, классификатор от Ping Wang:
        image


        1. i_shutov Автор
          31.01.2018 14:21

          1. Публикация дискуссионная. Нет одного универсального решения.
          2. ML применим, в пункте Ссылки есть и это. Построить аппроксиматор по точкам можно с помощью ML. Но понять и объяснить суть явления (модель) не всегда получится. Именно поэтому и появляются теперь "линейные трактователи" ответов от "черного ML ящика" наподобие LIME. Будучи физиком по образованию, предпочитаю всегда работать с моделью и аналитическим представлением, если есть такая возможность, нежели с ящиком.
          3. Картинка, увы, не видна.
          4. Противопоставляю я другое: вероятностная модель vs желание HR описать все в терминах "хороший-плохой". Это то, что наблюдаю на практике.


          1. WTYPMAH
            31.01.2018 14:39

            Что-то не получается нормально ссылку вставить. Так должна работать:
            www_image-share.com/ipng-3682-137.html

            А LIME вам чем-то не нравится? Как раз решает проблему чероного ящика, с некоторой погрешностью, конечно. Или Вы знаете какие-то подводные камни?


  1. RationalBot
    31.01.2018 14:01

    Про survival analysis люди, касающиеся темы HR даже не слышали. А применение его более оправданно, чем параметризованная классификация.

    А этому утверждению есть какое-то подтверждение?

    Чтобы я сказал по графику (на уровне гипотез):
    • 30-32 месяца назад в компании были массовые сокращения (или народ начал массово перетекать к конкурентам);
    • последние 10 месяцев в компании идут сокращения (либо все активно перетекают к конкурентам);
    • я вовсе не уверен, что при принятии решений о сокращении главным фактором являются переработки (скорее должность или специальность).


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

    Может стоит обратить внимание на подготовку данных для анализа, а не выбор модели?


    1. i_shutov Автор
      31.01.2018 19:04

      1. Для подтверждения утверждения смотрите ссылки, приведенные в публикации.
      2. Данные априори необходимо готовить правильно, из мусора каши не сваришь. Но набор требуемых данных будет определяться в т.ч. и описывающей моделью (отсылки к физике, химии).
      3. Выбор инструментов и методов всегда ограничивает набор доступных возможностей. Догонит ли Ахиллес черепаху? Без применения методов работы с бесконечно малыми величинами — не догонит.
      4. SA применим, это общий метод работы с цензурированными данными. Переработка была просто как один из факторов, для примера. Кстати, в чем специфика "этих условий" (какие именно)? У человека после операции тоже не особо много рычагов влияния на здоровье, однако SA пошел оттуда. В комментарии есть рассуждения о стране в целом, но ничего явно не указано.


      1. RationalBot
        31.01.2018 21:00

        Извиняюсь, еще раз прошелся по ссылкам и не нашел каких-то результатов использования survival analysis для предсказания увольнения сотрудников.
        Посмотрел на Watson Analytics Use Case for HR: Retaining valuable employees, там ставилась совсем другая задача — выделить драйверы аттришина:

        one of my tasks is to determine which factors keep employees at my company and which prompt others to leave

        Автор выделил 10 значимых факторов.
        У Вас же совсем другая формулировка:
        создание модели, прогнозирующей уход сотрудников с заданной точностью (не менее 75-80%)
        .
        Я просто не улавливаю связи.


        1. i_shutov Автор
          01.02.2018 10:38

          1. С точки зрения предметной области — ссылка в начале текста на блог "HR аналитика". Там Эдуард собрал массу материалов по этой теме, по SA можно стартовать с "Как использовать анализ дожития для прогноза текучести персонала от Pasha Roberts". Гугл выдает сотни тысячи результатов на запрос "Employee attrition survival analysis".
          2. Нельзя выделить факторы из ничего. Можно высказать гипотезу, построить модель на основе предположенных факторов и проверить корректность гипотезы.
          3. Это не моя формулировка, это некорректные ожидания HR, нахватавшихся токсичных рекламных слоганов.
          4. Краткая суть публикации: "В ходе практического применения было обнаружено, что… В динамичных областях для управления оттоком персонала более корректно использовать инструменты SA, нежели бинарные классификаторы. Временной горизонт применимости хорошо тренированного классификатора слишком мал, чтобы внести управленческое воздействие, остается только наблюдать".


  1. Areso
    31.01.2018 14:04

    Откуда беруться факторы и их значения по сотруднику? Кадры, после принятия сотрудника, к нему обычно интерес теряют на 99%, вспоминая лишь когда нужно оформить отпуск или больничный. Т.е. в эту систему данные должен кто вводить, непосредственный руководитель? Даже если учесть, что кто-то из двух будет спрашивать сотрудника раз в месяц «а доволен ли ты своей зарплатой?» (фактор удовл. зп и его значение), то стоит ли ожидать честного ответа? А по остальным так вообще. Тот факт, что сотрудник мечтает научиться только что вышедшей технологии, может быть только у него в голове, особенно если он не сильно болтливый.


    1. i_shutov Автор
      31.01.2018 14:11

      1. Нулевое положение — в компании есть люди, которые горят желанием получить себе HR аналитику. Почему и зачем — вопрос за рамками настоящего сайта. Хотят.
      2. Для классических цензурированных данных используются дата начала измерений, возраст и дата "терминации/исключения из числа наблюдаемых". факторы зависят от фантазии и возможностей. В первой итерации желательно использовать факторы, слабо зависящие от времени (пол, образование, семейное положение, зарплата, время работы на последней должности, количество дней в командировках....) все это HR знает.
      3. И вводить не надо, нормальное R приложение само все заберет, только дайте возможность.
      4. Разговорить сотрудника и выяснить планы — задача руководителя и HR. Речь ведь о людях, а не о роботах. Раз уж есть беспокойство про отток персонала.
      5. Да и вообще, если кто-то хочет внедрить HR аналитику (HR или руководство), должен предварительно потрудиться пособирать и предоставить данные.