Share |

четверг, 12 февраля 2015 г.

Логарифмирование переменной: зачем это нужно и как интерпретировать

В качестве дополнительной информации участникам семинара Аналитика для HR.
Чаще всего у нас распределение зависимой переменной не носит характер нормального распределения (см. кстати, на эту тему пост Управление эффективностью.Распределение зависимой переменной (кейс по hr-аналитике)).
Вот, например, распределение зависимой переменной "стаж"

Или распределение показателей продаж сейлзов
Согласитесь, что даже визуально нет нормального распределения.
Чем это нам грозит? Искажением результатов регрессии. Помните, я показывал кейс с Москвой и Питером. Эти два случая сильно искажали результаты регрессии, их исключение из уравнение меняло R^2, коэффициенты. Т.е. данные, далеко отстающие от среднего значения, могут искажать уравнение регрессии. Наша задача минимизировать влияние таких данных. Желательно не исключая их.

В этом случае самый распространенный вариант действия - логарифмирование переменной

Если вы работаете в excel, то вы добавляете колонку рядом с той переменной, которую необходимо логарифмировать, и используете функцию LOG().
Итого, прологарифмировав, вы получаете новую переменную. Для примера прологарифмируем переменную "стаж" на первом графике и получаем логарифмированный стаж с вот таким графиком
Это уже ближе к нормальному распределению.
И уравнение регрессии вы считаете для логарифмированной переменной.

Как интерпретировать

Тут самое забавное возникает: мы получаем уравнение на для стажа, а для лог стажа. К примеру у нас уравнение получает такой вид
log(стаж) = 2.3 + 0.27(refferal)
Уравнение и коэффициент значимы.
где 2.3 - константа, а 0.27 - коэффициент номинальной переменной источник подбора. Переменная у нас принимает два значение (0 - если источник побора Jobsites и 1 - если кандидат пришел через друзей в компанию).
Таким образом, уравнение получает два результата
для Jobsites - 2.3
для рефералов - 2.57
Понятно, что данные цифры не имеют физического смысла, вы не пойдете докладывать руководству о том, что у вас средний стаж равен логарифму ... Вам надо их прои нтепретировать, перевести в "живое" время.
Переводятся результаты обратной логарифмированию функцией - экспонентой.
В excel это функция EXP
EXP(2.3) = 9.97418245481472
EXP(2.57) = 13.0658244409346
Таким образом средний срок работы кандидата, пришедшего через jobsites равен 10 месяцев, через друзей - 13 месяцев. Разница - 3 месяца

Пост оказался полезен?

если Вы захотите выразить мне благодарность за интересный пост, вы можете перевести небольшую сумму мне на Яндекс кошелек (кликните по кнопке Перевести) 
или сделать перевод на карту Сбербанка,
Номер карты 676 280 38 921 538 46 57 - укажите "за пост  Логарифмирование переменной". 
Или просто покликайте на директ рекламу ниже на странице - у вас это отнимет несколько секунд
спасибо!

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

  1. Эдуард, извините, я по своему примеру. Прологарифмировал стаж по натуральному основанию, распределение стало ближе к нормальному, коэф Колмогорова-Смирнова 0,308

    ОтветитьУдалить
    Ответы
    1. я для вас и написал
      и для Ивана
      так теперь сделайте регрессионный анализ

      Удалить
    2. пост для понимания ясно написан? или есть вопросы?

      Удалить
  2. У меня вопросов по посту нет. Вообще, Ваши последние 2 вебинара - это шедевры - просто, понятно и доступно любому уровню непонимания.
    По поводу регрессионного анализа: зависимая переменная стаж, а в предикторы что включаем?

    ОтветитьУдалить
    Ответы
    1. 1) лог стаж
      2) а какую информацию вы собираете при приеме на работу?

      Удалить
  3. Есть данные о кандидате внешний/внутренний, источник трафика, были ли знакомые в компании, результаты входного тестирования - в общем номинальные и одна количественная переменная

    ОтветитьУдалить
    Ответы
    1. вот вам 1 час на регрессию. бОльшую часть - на кодировку номинальных переменных

      Удалить
  4. А что в лог-стаже вместо пропусков ставить. Или строим регрессию только по уволившимся?

    ОтветитьУдалить
    Ответы
    1. сделайте по уволившимся. выбирайте только уволившихся и по ним делайте лог стажа
      Максим, мне важно, чтобы вы сами делали, пробовали на вкус.
      Появится опыт, уверенность

      Удалить
  5. Эдуард, я имел ввиду закрывать переменную стаж на сегодняшнее число по тем, кто работает сейчас или оставлять пустой?

    ОтветитьУдалить
  6. В общем все,что я нашел это: при канале трафика джобсайты - стаж 4 мес. Я вводил фиктивные переменные по 3 каналам (1-джобсайты, 2-самостоятельный поиск руководителя, 3-кандидат сам пришел) и строил по ним регрессию. При добавлении в регрессию предиктора "знакомые в компании" увеличивается значимость 2 и 3 каналов, но все равно остается на уровне 0,17 и 0,08. Если кандидат внутренний, то это значимо добавляет к 4 мес. еще 0,6 мес. Как то негусто

    ОтветитьУдалить
  7. Да, еще можно добавить, что те, кто еще работает, на входе значимо лучше писали тест - на 24% лучше

    ОтветитьУдалить
  8. Эдуард, может я не по тому пути пошел? А если по людям ,которые еще работают закрыть стаж на сегодня и еще раз построить регрессию по всем?

    ОтветитьУдалить
    Ответы
    1. Максим, 1) попробуйте писать в одну ветку. 2) я не вижу ваших выводов

      "В общем все,что я нашел это: при канале трафика джобсайты - стаж 4 мес. Я вводил фиктивные переменные по 3 каналам (1-джобсайты, 2-самостоятельный поиск руководителя, 3-кандидат сам пришел) и строил по ним регрессию. При добавлении в регрессию предиктора "знакомые в компании" увеличивается значимость 2 и 3 каналов, но все равно остается на уровне 0,17 и 0,08. Если кандидат внутренний, то это значимо добавляет к 4 мес. еще 0,6 мес. Как то негусто"

      мне этого недостаточно

      моете сделать в ворде файл с анализом - мне не нужны данные, мне нужно увидеть, какие переменные вы анализировали, какие результаты регрессии получили
      и какие выводы делаете

      Удалить