При использовании категориальных переменных в регрессионном анализе исследователю бывает важно задать контрольную группу самостоятельно.
Пост - инструментальная подсказка для тех, кто пользуется R. В качестве кейса беру результаты нашего опроса по исследованию факторов текучести персонала (поучаствуйте заодно). В качестве независимой категориальной переменной я беру источники трафика подбора персонала (через какие каналы кандидаты узнали о вакансии).
В R по умолчанию контрольная группа задается первой в алфавитном порядке, т.е. если у вас "арбузы", "апельсины", "мандарины", то по умолчанию контрольной группой будет "апельсины".
Проверяется это так (я сразу беру данные своего кейса)
contrasts(t$info)
Коэффициенты регрессии выдаются так
Замечательно, что у нас есть значимые коэффициенты, но эксперты скажут, что интереснее было взять в качестве контрольной группы не карьерные сайты, а, например, джоб сайты и сравнить с ними, например, кадровые агенства или трафик через знакомых (что для экспертов более важно).
Можно переменные перекодировать самостоятельно в 0 или 1 (а в SPSS только так и можно делать, поскольку текст программа не распознает, но это затраты времени). Тем более, это неудобно, когда хочется поиграться с разными контрольными группами.
Для изменения контрольной группы мы используем команду
contr.treatment
В нашем случае формула выглядит так
где где 10 - число вариантов ответов или категорий, а 6 - та категория, которую мы выбираем в качестве контрольной. Далее, run
Хотелось бы исправить, поскольку в случае, если вариантов будет не 10, а хотя бы 35, то воспиятие будет затруднено. Буду благодарен, если подскажите, как этого достичь.
И подскажите, как лучше всего вставлять данные из R? Простым копированием неудобно: формат разъезжается во все стороны....
lm(y ~ as.factor(x)) - берет первый уровень (например, "a") фактора за базу (по нулям при dummy coding)
Если мы хотим сделать за базовый уровень, например, "b":
lm(y ~ relevel(x, ref = "b"))
Пост - инструментальная подсказка для тех, кто пользуется R. В качестве кейса беру результаты нашего опроса по исследованию факторов текучести персонала (поучаствуйте заодно). В качестве независимой категориальной переменной я беру источники трафика подбора персонала (через какие каналы кандидаты узнали о вакансии).
Знакомые
|
friend
|
Социальные сети
|
sm
|
Джоб сайты
|
jobsites
|
Объявление в газете
|
paper
|
Раздел Вакансии компании (карьерный
портал)
|
cariersite
|
Работодатель сам вышел на Вас
|
direct
|
Вы обратились непосредственно в саму
компанию (отдел кадров и т.п.)
|
self_direct
|
Кадровое агентство
|
KA
|
Центр занятости
|
Center_job
|
другое
|
etc
|
Проверяется это так (я сразу беру данные своего кейса)
contrasts(t$info)
Коэффициенты регрессии выдаются так
Замечательно, что у нас есть значимые коэффициенты, но эксперты скажут, что интереснее было взять в качестве контрольной группы не карьерные сайты, а, например, джоб сайты и сравнить с ними, например, кадровые агенства или трафик через знакомых (что для экспертов более важно).
Можно переменные перекодировать самостоятельно в 0 или 1 (а в SPSS только так и можно делать, поскольку текст программа не распознает, но это затраты времени). Тем более, это неудобно, когда хочется поиграться с разными контрольными группами.
Для изменения контрольной группы мы используем команду
contr.treatment
В нашем случае формула выглядит так
где где 10 - число вариантов ответов или категорий, а 6 - та категория, которую мы выбираем в качестве контрольной. Далее, run
И коэффициенты регрессии такие
Не решил пока
Заметно, что вместо названий коэффициентов появились обезличенные info1 2 3 4 и т.д...Хотелось бы исправить, поскольку в случае, если вариантов будет не 10, а хотя бы 35, то воспиятие будет затруднено. Буду благодарен, если подскажите, как этого достичь.
И подскажите, как лучше всего вставлять данные из R? Простым копированием неудобно: формат разъезжается во все стороны....
ПыСы
Опубликовал пост в группе на Линкедин, мне сразу подсказали еще один элегантный способlm(y ~ as.factor(x)) - берет первый уровень (например, "a") фактора за базу (по нулям при dummy coding)
Если мы хотим сделать за базовый уровень, например, "b":
lm(y ~ relevel(x, ref = "b"))
Комментариев нет:
Отправить комментарий