Этот первый пост скорее технический, но надеюсь не
только «технарям» будет что-то интересно и полезно. Сейчас не будет никаких
содержательных интерпретаций результатов. Пока задача не решена, все трактовки
могут быть ошибочны. Сейчас здесь будет только то, как я делал первый шаг в этом
не простом анализе. Содержательная часть будет в следующей серии.
Итак, поступила абсолютно реальная задача, связанная
с оценкой компетенций.
Условия задачи
- есть выборка сотрудников (~1 300 человек), для которых известно значение
по 5-ти компетенциям и 5-ти навыкам.
Определить:
1. Типичные профили сотрудников по сочетанию компетенций
и навыков. Определить группу сотрудников, требующих повышенного внимания с
точки зрения развития компетенций и навыков.
2. Связь компетенций (если такая есть) с выполнением KPI. Использовать данные в
построении модели прогноза эффективности.
На самом деле вторая задача и была первой (самой
главной), но тут приведен порядок, в котором сейчас обрабатываются данные.
Кроме того, был запрос со стороны заказчика на анализ
фактора социальной желательности и его роли в оценке респондента.
Первая задача решилась легко и быстро с использованием
R и
Power BI. Именно после получения
этих результатов и родилась идея поста, вдруг кому-то пригодится. Вторая задача
тоже не долгая, но больше работы, связанной с количеством и качеством данных, но
это давно не новость для многих из нас.
Power BI сейчас использовался скорее с точки зрения презентации
результатов. Это очень простой способ представить их в интерактивном виде, дать
доступ к отчету/дашборду большому количеству пользователей в очень короткие
сроки.
Ниже на картинке то, что у нас получилось на первом
шаге, когда требовалось определить сотрудников, требующих повышенного внимания
с точки зрения развития компетенций. (правда
пока еще не доказано, что их стоит развивать для увеличения показателей, это в
процессе)
Для меня и, наверное, многих моих коллег, одним из
основных инструментом анализа данных является язык R. Именно в этой среде мы привыкли
выполнять и классические статистические тесты, и алгоритмы машинного обучения.
Среди своих преимуществ R отличает вполне понятный синтаксис, а для тех, кто провёл
свои студенческие годы в статистических пакетах, к примеру, SPSS или Statista, этот язык понятен
логически и очень хорошо ложится на базу ранее полученных знаний в области статистики
и математических методов. Все хорошо, но если от вас требуется быстро
предоставить результаты во всех возможных сочетаниях (вопросы пользователей
зачастую непредсказуемы), то реализовать на R это достаточно трудоемко, а уместить в
одной презентации еще и потребует некоторой креативности.
А вот Power BI в вопросах построения эстетичных и интерактивных дашбордов
превосходит прочие инструменты во много раз. И при правильном проектировании, можно
создать такой отчет, который даст ответы на вопросы заказчиков еще во время презентации/самостоятельного
просмотра. Я уже опубликовал пост про воронку подбора, где как один из примеров
был показан именно этот инструмент. (см.статью про воронку подбора).
Отличная новость состоит в том, что R может быть
использован сразу в Power BI,
и все перечисленные выше преимущества суммируются.
Ниже я привел последовательность действий по созданию
дашборда с кластерами в Power BI.
И, как ни странно сейчас прозвучит, но начал я с привычного R-Studio. Почему? Скажу честно, первое – привычка. Второе –
некоторые истории, такие как выбор определенных параметров (в моем примере – количество
кластеров). Это правда лучше сначала делать в R-studio, а в power bi передавать уже конечный код. Третье – в Power BI скрипты
отрабатывают медленнее, хотя на моем маленьком датасете замедление не особо
ощутимо.
1. Написание скрипта в R
Использую простой k-means. Набор
данных назвал «for_clustering».
Первое, что желательно сделать – оценить, на какое
количество кластеров стоит разбить выборку. Одним из способов является
вычисление доли объясненной дисперсии (R2), подробное описание тут.
В нашем примере решили оставить 3 кластера, на это
указывает следующая диаграмма: последний наибольший излом графика происходит на
третьем кластере, затем прирост доли объясненной дисперсии с каждым новым
кластером уже не столь значителен.
Дальше собственно кластеризация.
kclus=
kmeans(for_clustering, 3, nstart = 20)
Теперь необходимо представить заказчикам полученные
результаты.
Самый удобный вариант - визуализировать данные, но поскольку
у нас 10 шкал (5 компетенций и 5 навыков), то существует 45 (сорок пять!!!!) вариантов их парного сочетанияи это ни разу не
облегчает восприятие результатов. Мы можем выбрать какой-то один график, но это
исказит интерпретацию. Очень хочется уместить всю информацию на одной
диаграмме, и для этого есть классный способ понижения размерности признаков при
помощи метода главных компонент.
PCA
<- prcomp(for_clustering)
Добавляем в наш датасет новые переменные – сами
кластеры и значения новых осей Х и Y для визуализации в двумерном пространстве:
for_clustering
<- data.frame(for_clustering, for_clustering $clust)
for_clustering
<- data.frame(for_clustering, PCA2$x[,1:2])
В нашем случае мы получаем главные компоненты
исключительно в целях визуализации кластеров, они выступят осями X и Y для
диаграммы с результатами представленной далее. Ниже картинка, которую я получил
в R.
Для построения диаграммы был использован пакет ggbiplot,
который расширяет графические возможности R.
Мне эта картинка норм, но с позиции моих заказчиков у
нее есть много недостатков 😊
1.
Она статична.
2.
Для них каждая точка – это живой человек, у
которого есть имя, весьма определенные величины компетенций и прочая
информация, которая может быть им полезна.
3.
Всем хочется посмотреть картинку отдельно и по
полу, и по городу, и по возрасту, и по стажу в руководящей должности, и по
…………..аааааа………уууууу…….Б.. Зачем-то.
И вот PowerBI
дает нам возможность быстро (!!!!) реализовать все выше перечисленное. С R тоже
есть варианты реализовать все это, но с Power BI все оказывается существенно проще.
2. То же самое, но в PowerBI
Для написания команд R в PowerBI достаточно
выбрать соответствующий вариант (R-скрипт) при определении источника данных,
как показано на рисунке ниже:
В открывшемся окне напишем код, который мы уже реализовали
ранее в R:
Таким образом, мы получаем стандартную для Power BI таблицу,
в которую мы передали рассчитанные по каждому сотруднику кластера и значения
главных компонент PC1 и
PC2, которые
понадобятся для визуализации полученных результатов в двумерном пространстве.
Все. Теперь мы можем сразу представить наши результаты,
используя преимущества Power BI,
начиная от написания мер до красивой визуализации и интерактивности.
Дашборд позволяет продемонстрировать несколько
визуальных элементов одновременно, он оснащён различными фильтрами: в нашем
примере это категории, пол, город, должность, которые при каждом выборе пользователя
будут перестраивать изображения на мониторе. При наведении указателя мыши на
любой элемент наш пользователь получит детальную информацию в виде подписи:
В следующей части покажем содержательные выводы уже
на основе более глубокого анализа.
Работа с заказчиком и извлечение пользы на основе полученных результатов - отдельная песня)
ОтветитьУдалитьОчень круто и лаконично получилось.
Меня вот конфигурация кластеров наводит на мысль, что оценка по компетенциям не оч.
ОтветитьУдалитьПричем, я допускаю мысль, что корреляция между оценкой по компетенциям и KPI может быть. В силу того, что эти люди уже известны оценщикам.
В этом смысле оценка по компетенциям - подозреваю - просто повторение KPI.
Но у меня есть большое подозрение, что компетенции выполняют функции содержательной дифференциации - если мы говорим, что нам надо одних одному учить, других другому:)
Этот линейный рост по компетенциям меня также настораживает, вместе с тем, что касается именно ассессентов, то я на собственных данных убеждался в полной интеркорелляции всех оценочных шкал. Здесь был опросник, а затем меппинг по компетенциям, так вот либо опросник кривой, либо меппинг.
Удалитьчто такое меллинг?)
УдалитьМеппинг - когда результата опросников полученные по шкалам переносятся в компетенции, которые существуют в компании. Проще говоря, провайдер решает какие шкалы(с какими весами) его опросника надо сложить и отнормровать, чтобы получить ту или иную компетенцию по МК компании-заказчика.
Удалитьт.е. компетенции провайдера, а оценивали компетенции кто?
УдалитьНе так, компетенции наши, опросник провайдера, а потом его шкалы превращаются в наши компетенции))
Удалитьа кластеры по шкалам опросника не?
Удалитьи у меня еще один вопрос: если в первым фактором в PCA все понятно, то что второй фактор означает, не смотрели?)
От PCA в данном случае ожидали именно осей для графика:) Кластеризация была уже по компетенциям, не по первичным шкалам, так как в дальнейшем заказчик будет работать именно в этих понятиях
УдалитьАлександр, посмотрите корреляцию между фактором 1, фактором 2 PCA и компетенциями.
УдалитьВот посмотрите, я в посте Что такое DIGITAL HR
https://edwvb.blogspot.com/2018/08/chto-takoe-digital-hr.html
там где кластерный анализ, показываю, что входит в факторы
цитирую себя
"в первом факторе по PCA Автоматизация общения с кандидатом входит с коэффициентом корреляции 0, 81, Автоматизация поиска кандидата - 0, 56. Во втором факторе Автоматизация отчётности - 0, 8, Предиктивная аналитика - 0, 53."
Прикольная идея прокоррелировать PCA с изначальными данными для объяснения.:) Теперь как вернусь в Москву, к данным буду пробовать
Удалитьессессно! вы посмотрите, какая компетенция у вас центровая по первому фактору, а самое главное, какая компетенция у вас важная по второму фактору.
УдалитьТ.е. второй фактор он же перпендикулярен первому, следовательно, мы получим компетенцию, которая максимально выбивается из общего строя.
Спасибо за очень интересно интересную статью!
ОтветитьУдалить