Share |

среда, 15 февраля 2017 г.

Сравнение отзывов на Банки.ру.

Снова решила вернуться к отзывам сотрудников банков на Банки.ру. Не отпускает меня тема работы с текстовой информацией, да еще применительно к HR-сфере. Отзывы на этом сайте как раз то, что мне нужно и интересно, тем более, что я уже не в первом банке работаю. Чем мне еще интересен Служебный рейтинг - в нем помимо текста есть много информации в привычном нам числовом виде, и эту информацию тоже интересно проанализировать, и особенно в комбинации с текстом. Наверное так же интересно выглядят результаты пульс-опросов с одним открытым вопросом и несколькими закрытыми. На западе такие опросы сейчас просто процветают).
С самого начала мне было интересно только то, о чем пишут сотрудники и кандидаты, что их так цепляет (достало), что они решаются на публикацию отзыва на открытом ресурсе. И все ли они пишут об одном и том же, или между банками есть различия?  О чем начнет читать кандидат в момент принятия решения об устройстве в конкретный банк, если зайдет на этот сайт? Темы меняются со временем у всех одинаково или нет?
Для своего мини-исследования я брала все отзывы (более 8 000), но тут буду показывать результаты только 9-ти банков, чьи сотрудники были максимально активны и оставили более половины от общего количества всех отзывов. Экономлю место и ваше время)
Вот так выглядит картинка изменений тем на примере трех банков (остальные 6 тоже отличаются, но не буду захламлять пространство) - видно, что какие-то темы становились важнее, какие-то умирали со временем. При этом, в каждом банке наблюдались свои особенности:










В таблице ниже топ-слова из каждой темы, по которым можно понять, о чем идет речь:
topic #0
topic #1
topic #2
topic #3
topic #4
topic #5
topic #6
topic #7
отпуск
выходной
группа
филиал
трудовой
позвонить
заявка
народный
оклад
обед
рост
работник
работник
вакансия
смена
автор
зп
приходить
возможность
начальник
суд
звонить
начальник
рейтинг
договор
начальство
именно
жизнь
решение
звонок
андеррайтер
перенести
рубль
уходить
отличный
управлять
начальник
ждать
клерк
город
Названий банков не даю, так интереснее). На примере этих трех банков уже видно, что в каждом преобладает своя боль, особенная, но при это последние две темы для них не характерны. Это как раз хорошо видно на следующей картинке. Здесь уже нельзя проследить динамику, но проще сравнить данные между собой. Это те же темы, а точнее их доли в каждом банке.

Кто заглядывал в Служебный рейтинг, тот видел, что у отзывающихся помимо написания собственно отзыва, еще есть возможность поставить общую оценку как самому банку, так и оценить отдельно коллектив, руководство, зарплату, соц. пакет, общий комфорт. И многие этой возможностью пользуются. Ниже на графике медианы оценок по этим 5-ти категориям. Видно, что и тут существуют различия.
Понятно, что кандидаты не будут подсчитывать пятерки, четверки... двойки по каждой категории. А вот сами банки подсчитывают такой результат? Интересно было бы сравнить эти оценки с результатами опросов, проводимых в компаниях. Хотя...
И вот тут возникает вопрос -  насколько можно судить о банке по таким отзывам/оценкам? Какая доля сотрудников решается на написание отзыва на внешнем ресурсе? Может и не стоит бить тревогу, если активность не самая высокая? Ну и что, если 5 человек написали плохой отзыв, а остальные 31 995 человек нет?
Вот так выглядит количество отзывов в динамике по годам. Размах существенный - от 179 до 1384 (на момент моей выгрузки).

И что это дает? Судить только по количеству отзывов совсем не правильно. В каждом банке своя численность, и как минимум надо соотнести количество отзывов с этой величиной. Численность сотрудников банков не закрытая информация. Вооружившись терпением, ее можно найти и извлечь из финансовых отчетов самих банков, или воспользоваться готовыми обзорами других компаний, хранящихся в открытом доступе. Я как могла проделала эту работу. Но хватило меня не на все - я раздобыла данные только за 2012 - 2016 гг. Понятно, что можно придраться ко всему, например что разные банки по разному показывают в отчетности свою численность, кто-то с вакансиями, кто-то без них и т.д и т.п. Но я приняла допущение, что все считают ее одинаково. Очень хочется сравнить активность сотрудников хотя бы в первом приближении для начала. На левой картинке общее количество отзывов, но уже с 2012 года, а не за все времена, поэтому цифры на картинке меньше тех, которые были на предыдущем графике. А вот на графике справа и показана моя относительная величина, по которой я сужу об активности.
Чем кормят сотрудников второго снизу банка (у меня под номером 195706), что они такие активные?)
И несколько слов про тональность отзывов. Явную оценку проставили только около половины участников, но алгоритмы машинного обучения мне в помощь. С помощью одного из них (SVM) я классифицировала оставшиеся отзывы. Сделала в два этапа - сначала разделила на отрицательные и все остальное, а потом все остальное классифицировала на положительное и нейтральное.
Ниже очередная картинка - распределение оценок по их тональности в разрезе банков. Нейтральное отношение в моей выборке практически у всех на одном уровне, а вот доля положительных и отрицательных отзывов отличается значимо.
И снова интересный результат у банка под номером 195706 - мало того, что они самые активные, так еще среди участников больше всего тех, кто ставит положительную оценку своему банку)
Не буду делать окончательных выводов по результатам моего текущего сравнения - работа (мое обучение) в самом разгаре, просто захотелось поделиться некоторыми полученными результатами. Столько данных вокруг нас, осталось только научиться правильно их использовать)

вторник, 14 февраля 2017 г.

Потребность в отраслевых HR по регионам

Еще один результат нашего исследования Ключевые факторы эффективности и текучести персонала. Вам нужно пройти по ссылке и поучаствовать в опросе.
Название сегодняшнего поста корявое, смысл его простой: я хочу показать отраслевое распределение HR по регионам.
Или, поскольку HR обслуживает отрасли, мы можем сказать, что мы просто снимаем популярность тех или иных отраслей по регионам.

Результат

Потребность в отраслевых HR по регионам

Как читать диаграмму


  • В строках - отрасли
  • В колонках - регионы, надеюсь, вы разберетесь с названиями
  • В ячейках - доля по колонке/ Региону. Т.е. сумма по колонке равна 1

Результат ожидаем и интуитивно понятен за некоторыми исключениями.
В Москве на первом месте стоят банковские HR, но в процентном соотношении Москву обогнал Урал. Урал, у васпромышленные HR не имеют выхода в интернет? У станка застряли? Подтягивайтесь - вот ссылка на опрос, выравнивайте положение.
Самый IT регион - Санкт-Петербург, это ожидаемо, но я лично большего ожидал от Поволжья
Промышленность развита в подбрюшье Москвы и Санкт-Петербурга. И Урал, конечно, повел.
А вот Дальневосточные HR реагируют на опрос по большей части только из розницы. Явный перекос.
На этом на сегодня все, хотите следить оперативно за интересными ссылками, лайкните нашу страницу в фейсбуке Блог про HR-аналитику.

Понравился пост?

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

воскресенье, 12 февраля 2017 г.

Проблемный анализ взаимного влияния отрасли и частоты премий на текучесть HR-ов

В исследованиях Э. Бабушкина было показано:

1. Отрасль связана с текучестью среди HR;
2. Частота премий связана с текучестью персонала.

Проверяем гипотезу о связи двух факторов текучести среди HR-ов: отраслью и частотой премий.

С целью повтора и проверки исследования привожу входные данные анализа:

Для исследования использован датасет от 17.12.2016.
Установлены следующие ограничения:
1. Сфера деятельности: HR;
2. Диапазон стажа в месяцах: от 1 до 100;
3. Отрасли оптимизированы (сгруппированы) следующим образом:
- Банки;
- ИТ;
- Консалтинговые компании;
- Производство = промышленность, энергетика, добыча сырья, сельское и лесное хозяйство;
- Прочее = ВУЗ, культура и искусство, наука и образование, здравоохранение, физическая культура и социальное обеспечение, государственные органы управления, некоммерческие организации;
- Сервис и торговля = оптовая торговля, розничная торговля, отели и туризм, недвижимость, общественное питание;
- Строительство.
4. Итоговое количество наблюдений: 1489.

Проверка распределения частоты премий по отраслям выявила Хи2 = 4,45068E-16.


 Таким образом наибольшая доля отсутствия премирования пришлась на строительство, сервис и торговлю, IT. Наименьшая на банки и производство. Самые частые выплаты премий в зависимости от периодичности:

1. Ежемесячные - консалтинговые компании;
2. Ежеквартальные - банки;
3. Ежегодные - производство.

Проблемная часть анализа.

Повторим для выделенных групп анализ выживаемости с помощью регрессии Кокса в SPSS.

Событие увольнения состоялось для 64% наблюдений.

Универсальные критерии коэффициентов модели
-2 Log-правдоподобие
Общая (оценка)
Изменение от предыдущего шага
Изменение от предыдущего блока
Хи-квадрат
ст.св.
Значимость
Хи-квадрат
ст.св.
Значимость
Хи-квадрат
ст.св.
Значимость
12438,547
14,811
6
,022
14,978
6
,020
14,978
6
,020

Общая оценка показывает статистическую значимость модели.

График свидетельствует о наибольшей текучести HR-ов в строительстве и наименьшей в производстве. Данные относительно этих категорий находят подтверждение в долях отсутствия выплат премий, для строительства она наибольшая, а для производства наименьшая.
Но текучесть для остальных категорий не укладывается в настоящую модель. На графике к строительной области довольно близки консалтинговые компании (наибольшая доля ежемесячных премий), банки (наибольшая доля ежеквартальных премий, наименьшая доля отсутствия премирования). При этом к производству, где текучесть оказалась наименьшая, на графике близка IT-сфера, в которой, как и в строительстве, высокий процент отсутствия премиальных выплат. 

По совокупности: модель адекватно отразила экстремумы наличия или отсутствия  премий в зависимости от отрасли (строительство/производство), но не позволяла интерпретировать все промежуточные сферы. Вероятно, что большую роль играет также частота именно ежегодных премий, но это также не объясняет всех наблюдений.

четверг, 9 февраля 2017 г.

Анализ текучести Кадрового резерва

Анализ текучести Кадрового резерва
<!--

Данная статья подготовлена для учебных целей. В ней используются вымышленные данные. Любые совпадения с реальными бизнесами или компаниями являются случайными.
Все расчеты и визуализация сделаны в R. Отчет – в R Markdown.

Введение

Идея этого небольшого исследования состоит в том, чтобы ответить на вопрос, есть ли закономерность во времени (месяц) увольнении сотрудников из кадрового резерва.
Например, существует стереотип, что “многие менеджеры ждут годовых бонусов, а уже после их получения увольняются из компании”. Если это действительно так, тогда цифры должны нам все показать. Т.е. если компания выплачивает годовой бонус, например, в марте, тогда в апреле-мае нужно ожидать гораздо больших увольнений, нежели в другие месяцы года.
Давайте это и узнаем и проверим данную гипотезу!

понедельник, 6 февраля 2017 г.

Статьи по hr-аналитике на английском 14

Представляют четырнадцатый дайджест статей на английском. Предыдущий - тринадцатый - вы можете найти по ссылке Статьи по hr-аналитике на английском 13, а через по ссылкам пройти до первого выпуска.
Итак,

  • New ways to run engagement surveys - если Вы всерьез задолбались от проведения опросов вовлеченности, и всерьез хотите сами что-то поменять, а не просто слушать лапшу консалтеров, то вам не пройти мимо имени Andrew Marritt, в статье он рассказывает про новые подход к измерению вовлеченности. Но нчать я бы предложил со статей Engagement surveys - Part 1, issues with the traditional approach и Employee feedback & engagement measurement - the future. Замечу кстати, что скоро бОльшая часть консалтеров как попугаи будут повторять то, о чем я пишу у себя в блоге про вовлеченность, поэтому успевайте включить свои мозги. И вдогонку еще одна статья в ту же тему How frequently should you survey employees?
  • Top 5 Trending HR Analytics Articles of January 2017 - в моем дайджесте ссылка на чужой дайджест лучших статей. Читаем.
  • It's never too early to start - HR аналитик Apple Amit Mohindra расшарил свою статью шестилетней давности. Как вы догадались, актуальность эта статья не потеряла до сих пор. Заодно открываем для себя одного имя в HR аналитике. 
  • Mapping unemployment data, 2016 - это чисто для спецов, кто работает в R. Я так намекаю, что интересно было бы посмотреть российскую картинку.
  • Why Informal networks are set to revolutionize HR and People Analytics - статьи в HR, основанные на анализе графов, появляются не часто, тем они ценны. Хотя я откровенно не понимаю пока бизнес value исследования неформальных сетей в компании, но может быть со временем прозрею. Подскажите мне, если у вас есть свое мнение на этот счет.
  • Developing a Talent Analytics Function: Build, Buy, or Borrow - и еще на тему того, как строить команды HR аналитики в компании.
  • И еще для спецов: на kaggle-е создана страничка HR-аналитики с датесетом по текучести персонала. Попытайте счастья.

На этом на сегодня все, хотите следить оперативно за интересными ссылками, лайкните нашу страницу в фейсбуке Блог про HR-аналитику

Понравился пост?

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

воскресенье, 5 февраля 2017 г.

Сколько я стою на рынке. Как создавался сервис

Сколько я стою на рынке. Как создавался сервисХочу спецам рассказать, как создавал сервис Сколько я стою на рынке.
Идея очень простая: клиент заполняет анкету, сообщая данные о себе и своей работе, а я в ответ даю отчет, насколько зарплата клиента «в рынке». «В рынке» это среднее значение зарплаты, которое платят на рынке  при данных клиента.

Математика за этим такая: я построил регрессию, где Y выступает актуальная зарплата, а в качестве предикторов – порядка 20 факторов. Полный список их указан здесь Сколько я стою на рынке. И если реальная зарплата клиента ниже прогнозного значения, то он недооценен на рынке, и, наоборот, если зарплата клиента выше прогнозного, то ему платят больше.

Самый важный вопрос

Данные я насобирал сам. Два года назад я начал опрос ключевые факторы текучести персонала, за это время я набрал более 4 000 строк данных. Но модель я пока нарисовал только для коллег HR. У меня есть по HR 1 500 строк с зарплатой. Поэтому самым трудным было насобирать данные. Было и остается самым трудным, поэтому, если вы хотите мне искренне помочь, поучаствуйте сами и пригласите друзей поучаствовать в опросе Ключевые факторытекучести персонала.

Сложности создания модели

Этот раздел для тех, кто сам создает алгоритмы. Для меня проблема была не в настройке модели, не в тюнинге модели, а в создании именно сервиса. В настройке pipeline. Технически теперь это выглядит так: клиент заполняет анкету, я первым кликом загружаю его данные в машину, вторым кликом получаю результат, третьим кликом выгружаю данные в отчет. Но алгоритм в этом момент не просто строит прогноз зарплаты, но проделывает работу по преобразованию исходных, сырых данных опроса.
В этом для меня и кроется различие между статистикой и машинным обучением. Ниже я расскажу про то, какие проблемы я решал.

Dummy coding

Первая проблема, с которой я столкнулся – преобразование категориальных переменных в новом датасете. Уже начинающий аналитик знает, как преобразовывать категориальные переменные с помощью фиктивных переменных.
В итоге из одной переменной мы получаем N-1 фиктивных переменных, где N – число уровней категориальной переменной. В Python для этого существует прекрасная функция pandas.get_dummies()
Это просто на самом деле. Проблема возникает, когда мы на вход натренированной модели подаем новый датасет. Поскольку количество уровней категориальных переменных будет различаться, и будет различаться количество фиктивных переменных.
Т.е. если в датасете, на котором мы тренировали модель, у нас десять регионов, то фиктивных переменных будет девять. А потом мы хотим дать прогноз какому то одному клиенту из Нижнего Новгорода. Применяя dummy coding, мы получим одну фиктивную переменную. И размерность датасета для модели и нового датасета будут различаться. Модель не примет наш новый датасет. Нам нужно получить 9 колонок. Поначалу я хотел в каждый новый датасет добавлять искусственно созданных работников, в данных которых бы содержался полный набор уровней всех категориальных переменных. Но это неудобно!
В итоге решил эту проблему (но не с помощью pandas.get_dummies(), я применил в pipeline DictVectorizer(), хотя готов поспорить, кто -то из спецов по Python попробуют меня убедить, что надо использовать OneHotEncoder(). Можно его использовать, но путь долгий и через жопу), заложив в def fit датасет, на котором тренирую модель, а в def transform новый датасет. Если вы работаете в Python и работаете с class, то понимаете, о чем речь. Сейчас мое решение кажется понятным и простым, но убил я на него кучу времени.
Стаж
Другая проблема заключалась в том, что я создал несколько переменных, которых не было в опросе. Это такие переменные, как стаж и возраст. В опросе есть вопросы «Дата трудоустройства», «Дата увольнения», причем, если респондент работает на момент заполнения анкеты, то Дата увольнения остается пустой. Таким образом, если клиент работает на сегодня, то на входе его дата увольнения заполняется датой заполнения опросника, а потом получается стаж вычитанием из актуальной даты даты трудоустройства. Ну и естественно, применяется scaling, как впрочем, ко всем переменным в алгоритме
Текст
Текстовая переменная в исследовании появилась, когда я понял, что такой вариант работы с функционалом будет идеальным. От всякой классификации функционала работников я отказался изначально. Это была бы портянка на десятки поинтов, причем, даже в этом случае я бы не смог дать 100% совпадения, но, главное, в том же HR никто не занимается одной функцией. Поэтому я сделал просто: предложил респондентам «руками» описать свой функционал.
В работе непосредственно с самим текстом трудности существуют только в настройке правил. Кто-то свою функцию описывает как “c&b”, кто-то как “comp&ben”, я оба вариант привожу к варианту ”compben”. Поэтому работа такая не закончена, я стараюсь каждую новую запись проверить на наличие каких-либо профессионализмов с тем, чтобы привести к едином виду.
Техническая проблема для меня была заставить работать сетку (GridSearchCV) на настройку параметров текста (параметры TfidfVectorizer: ngram_range, max_df, min_df) с параметрами модели. Опытные спецы скажут, а что здесь такого, я отвечу: да, ничего такого нет, когда ты прошел хоть один раз, но первый раз не просто.
Спасибы
  • В первую очередь, спасибо курсу МИФИ на Курсере Обучение наразмеченных данных и преподавателю Эмели Драль, лекции которой были просты, ясны и вкусны из-за наличия кода. Собственно, на лекции Эмели я познакомился с pipeline, поначалу жжужал от этих трехэтажных кодов, не понимал, зачем этот OneHotEncoder нужен, когда есть простой и прекрасный get_dummies. К сожалению, жизнь не такая простая. Кстати говоря, Эмели не дала код по pipeline, который можно было просто брать и применять. Т.е. он сам по себе полезный, но не для моей задачи. Мой код в итоге кардинально отличается от даваемого на курсе лаже в том, как подаются переменные на вход. Но тем не менее, знание бесценно. И бесплатно!
  • Во-вторых, хочу выразить всем чувакам со stackoverflow! Там куча крутых перцев, и я там на сегодня заработал уже больше 300 баловJ И не только вопросами, я уже отвечаю иногда. Это крутой ресурс для развития.
  • В третьих, отдельное спасибо Zac Stewart с постом Usingscikit-learn Pipelines and FeatureUnions. Я не постеснялся задать два вопроса. В итоге сам решил свою проблему, но, тем не менее, без общения и без этого поста я не уверен, что сервис был бы создан. И если вы будете создавать свои pipeline-ы, то вы мимо этого поста не пройдете, на него ссылаются многие другие спецы. 
  • Спасибо Кириллу Захарову - аналитику из Днепра, Украина, который помогал мне создавать опрос.
  • Спасибо Людмиле Роговой, которая терпеливо выслушивала мои размышления по поводу алгоритма.
  • И спасибо рынку, который пинает и заставляет искать решения.

Последнее

Если вы причисляете себя к IT рынку, если вы называете себя IT специалистом (Россия), я сделаю вам отчет (по ссылке шаблон) совершенно бесплатно, если вы корректно и полно пройдете мой опрос. И напишите мне edvb()yandex.ru

Это бесплатно! Можете в качестве благодарности покликать директ рекламу у меня в блоге. 

суббота, 4 февраля 2017 г.

Стоимость функций HR на рынке

Затачиваю услугу Сколько я стою на рынке, смотрю как различные факторы влияют на уровень вознаграждения. Сегодня посмотрел, как функционал HR связан с нашей зарплатой.
Ранее я уже давал такой анализ, см. Какой функционал HR самый дорогой или кто в HR получает больше. В этот раз анализ дает более точную картину по простой причине: у нас значительно больше данных.
Коротко введу в проблему анализа: очень сложно формализовать функции HR (даже подбор бывает массовый и для топ позиций,  еще кдп в полном объеме и не полном, а еще есть охрана труда и все такое прочее), а кроме того, сложно найти компанию, где HR выполнял бы только одну функцию.
Поэтому я пошел по самому простому пути: я прошу респондентов словами / текстом описать свой функционал. А далее строю регрессию, где Y - указанная зарплата, а X - описание функционала.
Для самых продвинутых скажу, что описание функционала объясняет 8 % дисперсии зарплаты. Ничего не могу сказать по поводу, много это или мало.

Результат

Самое вкусное в том, какая функция сколько стоит.
Даю две картинки по традиции
Стоимость функций HR на рынке
Рекомендую кликом увеличить картинку. Здесь показаны самые дорогие функции HR. Размер шрифта соответствует рангу стоимости функции HR на рынке. Заметно, что управление бюджетом практически равно HRD. Очень много функционала, связанного с мотивацией:
  • comp&ben;
  • мотивация;
  • оплата труда;
  • премирование и т.п.
Обратите внимание, что на картинке широкий спектр функций:
  • elearning;
  • автоматизация;
  • формирование кадрового резерва;
  • социальная политика;
  • проведение корпоративного мероприятия;
  • HR бренд
И HR аналитики не на последнем месте. Но обратите внимание, какой разрыв в оплате труда между стоимостью функции руководства HR и ... не руководством...

Низкооплачиваемые функции

Стоимость функций HR на рынке
Смысл данной картинки аналогичен вышеприведенной - показана стоимость функций HR на рынке, но показаны они с другого конца. Т.е. чем больше размер шрифта, тем меньше оплачивается функция HR на рынке. Здесь в общем тоже неплохой набор функций HR:
  • внутренние коммуникации;
  • tandd - это T&D;
  • корпоративная культура;
  • наставничество;
  • ассессмент;
  • тестирование;
  • удержание персонала.
Пожалуй все. Не согласны? участвуйте в исследовании и доказывайте, что ваша HR функция дорога не только вам, но и рынку.

Понравился пост?

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