.

Сделать репост в соц сети!

вторник, 15 августа 2017 г.

Прогноз эффективности работников на основе тестов профессиональных знаний

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

Задача

как на основе теста профессиональных знаний выявить эффективных.
Про эффективность скажу только, что она измерялась "1" - эффективный и "0" - не совсем чтобы.
Задача осложнялась тем, что спецы были не монопрофильные, в компании 8 функциональных направлений и три уровня должности (спец, спец повыше и спец еще повыше).
В тестах использовалось около 300 вопросов (!!!), но вопросы не шли сплошняком для всех менеджеров, а давались выборочно, поэтому мы не могли получить датасет размером 500 манагеров Х 300 вопросов. Точнее, мы его получить получили, но это была sparse матрица - с большим количеством пропущенных значений. Итого у нас в ячейках могло быть три значения: 1 - если респондент ответил правильно на вопрос, 0 - если ответил не правильно, пустая ячейка, если респондент не отвечал на этот вопрос.
К плюсам можно было только отнести только то, что вопросы не строго соответствовали позиции и функциональному направлению, а было много пересечений, т.е. один вопрос мог перекрывать несколько функциональных направлений и уровней должности.

Варианты


  1. Можно было бы сделать свою модель для каждой из 24 позиций (8 функциональных направлений Х 3 уровня позиции). Это не вариант, потому что на каждую позицию среднем выпадает по 20 строк, что не позволяет говорить хоть мало мальски статистической валидации. Можно типа было объединить спеца повыше и спеца еще повыше, но и в этом случае данные нам мало что дают. 
  2. Можно было бы тупо запихать все в алгоритм машинного обучения, дамми кодинг и все такое. Но возникает вопрос, насколько это вообще правильно? К примеру вопрос был задан 100 манагерам, 50 ответили правильно, 50 ответили неправильно. У нас в одной переменной 50 единиц и 450 нулей, в другой 50 единиц и 450 нулей. 
  3. Я избрал третий путь, причем этот путь определялся не только задачей собственно получения точности, сколько позицией клиента. Клиенту нужно было "живое" решение. Ну т.е. чтобы дать что-то, что клиент мог бы применять прям и сразу. А в случае алгоритма машинного обучения это был бы черный ящик: ты туда загружаешь данные, а оттуда колбаса. Клиент не поймет. 

Решение


  1. Решение должно быть наглядным. Первым делом я отбросил вопросы с низкой дисперсией, т.е. вопросы, на которые почти все ответили правильно или почти все ответили неправильно. Понятно, что такие вопросы в принципе не могут дифференцировать эффективных и не очень.
  2. Далее, я тупо запустил цикл с Хи квадрат (у нас показатели эффективности - "1" и "0", и в ячейках "1" и "0") с поправкой йейтса, канечна же. И отобрал только те вопросы, где p-value было ниже 0, 05. Без учета позиции, функционального направления и т.п.. 
  3. В уже отобранном списке я еще запустил цикл с уже корреляцией, чтобы выявить те вопросы, которые отрицательно коррелировали с эффективностью. И такое тоже было: порядка 5-6 вопросов. Они были значимо связаны с эффективностью, но я решил от них отказаться, потому что противоречило содержательной логике: если работник правильно отвечает на вопрос, то с больше вероятностью он будет не эффективным. Наверное, разработчики вопросов не закладывали такой логики.
  4. Остались только вопросы, положительно связанные с эффективностью, и в этом месте я делаю финт ушами: я считаю общее количество вопросов по строке - по каждому работнику, я считаю количество правильных ответов, и я считаю % правильных ответов. Где то в глубине души полагая, что если если каждый выбранный вопрос положительно коррелирует с эффективностью, то сумма даст более точное решение.
  5. В итоге мы получаем две переменные: эффективность и % правильных ответов. 

Прогноз эффективности работников на основе тестов профессиональных знаний

Как вы уже догадались, по оси X - % правильных ответов, красная линия - для не очень эффективных, зеленая линия - для эффективных.
Решение уже выглядит не зряшным. Описательные статистики для двух групп такие
$`0`
   Min.    1st Qu.    Median    Mean    3rd Qu.    Max.
 0.0000    0.2500     0.3750    0.4084     0.5357    0.8750

$`1`
   Min. 1st Qu.    Median      Mean    3rd Qu.    Max.
 0.0000  0.5000     0.7029    0.6647    0.8235     1.0000
Т.е. эффективные в медиане отвечают на 70 % вопросов правильно, а не эффективные - на 37 %.

Дерево решений и другие ужасы нашего городка 

дает нам скоринговую карту
Прогноз эффективности работников на основе тестов профессиональных знаний

Это значит, что если вы отвечаете на 43 % вопросов правильно и выше, то с 87 % вероятностью вы будете эффективным. Если вы отвечаете на менее чем 34 % вопрос правильно, с 66 % вероятностью вы будете неэффективным. И сонфьюзион матрикс на тест сете дает нам такую картину
      FALSE  TRUE
  0      11         19

  1       5          73
Базовая точность 72 %, мы получили 78 %. Пресижн - 79 %. Хотя в нашем случае под пресижн надо считать не 73/(73+19), а скорее 11 / (11+5) = 69 % . И мы отсекаем 35-40 % неэффективных (11 / (11+19).
Если взять случайный лес и прочие алгоритмы, то они конечно же дают точность выше. Но не критично выше - точность на 5-7 % повыше. Кстати, если в модель добавлять собственно вопросы, то точность также не особо растет. Растет, как ни странно, при добавлении вопросов, которые отрицательно коррелируют с эффективностью. Но я таки не стал их включать в модель, ибо сердце человеческое требует гармонии.
И не забывайте, что этот "алгоритм" можно уже завтра ставить клиенту и считать. Просто считаем % правильных вопросов по нужным вопросам и принимаем решение - скоринговая карта.
Вот собственно вся эвристика.

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

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


10 комментариев:

  1. Я по образованию физик, у меня была статистика...я конечно, все забыла, так как более 10 лет в персонале. Я выводы не поняла... Можно обычным языком, как для собственников, например, которые тоже не знают мат. Статистики в большинстве.. Ответ то очень интересен!))

    ОтветитьУдалить
    Ответы
    1. Для собственника ответ выглядит так: у вас есть каша в компании в виде разных направлений, уровней позиции и разного количества вопросов
      И далеко не все вопросы связаны с эффективностью
      Вместо этой каши Заказчик получает простую инструкцию:
      по каждой позиции вы получаете обязательный набор вопросов - такие то номера вопросов.
      Вы можете использовать с тесте например 30 вопросов, НО! из них обращаете внимание только на выделенные мной.
      Например таких 15 вопросов в тесте
      далее вы просто считаете % правильных ответов из этих 15. Если кандидат ответил на менее 5 вопросв из 15 правильно, его не стоит брать
      Т.е. Заказчик просто совершает арифметические действия

      Удалить
    2. Но Вы скажите Заказчику, чтобы он заплатил мне денег

      Удалить
  2. Эдуард, п1-4 так не делается, необходимо считать трудность и дискриминативность заданий

    ОтветитьУдалить
    Ответы
    1. Юра, во первых я устал от твоих анонимных мелочных укусов.
      во вторых, я поражаюсь твоей ригидности - тебя научили фразу "надо считать трудность и дискриминативность" задания и ты тупо это повторяешь.

      В третьих - я сделал твою трудность и дискриминативность, если ты не догадался и не увидел слов про трудность и дискриминативность

      в четвертых - это только вам, тестологов, интересует трудность сама в себе, тогда как меня как и Заказчика интересует в первую очередь прогноз эффективности работников.

      А вас этому к сожалению, не учили, вы там своей тусовкой с юрами, пашами, максимами только гладите друг друга, обсуждать не умеете

      я тебе предлагал сотрудничество, но ты не нашел на меня время, время у тебя есть только на анонимные укусы

      Удалить
  3. Я первый раз оставил анонимный комментарий, сожалею, что ты меня не услышал

    ОтветитьУдалить
    Ответы
    1. во первый раз
      во вторых
      ты сказал про дискриминантность
      Объясни мне теперь, как в конкретном данном кейсе дискриминантность вопроса поможет в прогнозе эффективности?

      Удалить
  4. А кто-нибудь, кроме Эдуарда, когда-нибудь проводил исследования в части взаимосвязи тестов и реальной эффективности сотрудников в конкретной компании??? Кто-нибудь получал честную табличку с результатами тестов (хотя это на вашей стороне обычно есть) и например исполнением планов через 6 месяцев после приема, когда решение было принято на основе ваших тестов? Вот честно??? В компаниях с численностью более 10 000 человек??? Проверяли как сами компании честно и не предвзято выбирают объекты для тестирования?

    ОтветитьУдалить
  5. Люда, проводили. И скажу там много подводных камней и ситуация "через тернии к звёздам", но это можно и нужно делать.

    ОтветитьУдалить
    Ответы
    1. Виталий, я от клиентов знаю про два кейса)
      поделитесь подводными камнями

      Удалить