Я пытаюсь построить модель логистической регрессии из набора данных опроса.Мне интересно посмотреть на влияние типа стимула (например, подарочная карта) и уровня ученика (первокурсник, второкурсник и т. Д.), Чтобы предсказать, завершил ли он / она опрос.Во фрейме данных есть сотни переменных, поэтому первым делом я должен использовать только то, что мне нужно, с помощью оператора канала в tidyverse для:
1) Выберите четыре представляющие интерес переменные : Еслистудент закончил опрос (FINISHED), местоположение кампуса (CAMPUS), тип стимула (INCENTIVE) и уровень успеваемости каждого студента (LEVEL).
2) Фильтр только ответы отодин интересующий кампус («кузнец») и фильтр , чтобы посмотреть только на три типа стимулов, так как «другие» не очень значимы в этом случае.
Я пытаюсь запустить модель, ноон не будет работать, пока я не перекодирую строки символов в числовые переменные (0, 1, 2 ...) и не укажу, что они являются факторами.На других форумах я много читал, что вы можете использовать «as.factor» и «перекодировать» для каждой переменной.Но это кажется затруднительным, чтобы сделать это для каждой переменной, назначить новую переменную, и сделать то же самое для установки в качестве .factor.
Могу ли я перекодировать строки символов в операторе трубопровода в виде числовых переменных (например, первокурсник = 0, второкурсник = 1, младший = 2 и т. Д.), А затем установить их как факторы, используя as.factor ()?Я попытался сделать это в операторе трубопровода, но в ответ получил сообщение об ошибке.Или нужно выполнить эти операции перед фильтрацией?
Может кто-нибудь предложить какие-нибудь указатели?Ниже код, который я использую:
survey <- read.csv("SURVEY2017.csv")
survey1 <- survey %>%
select(FINISHED, CAMPUS, INCENTIVE, LEVEL) %>%
filter(CAMPUS == "smith") %>%
filter(INCENTIVE %in% c("A chance to win one of ten $100 Visa
gift cards",
"A chance to win one of three $500 Visa gift cards",
"I wanted my opinions to be heard by faculty, staff, and
the administration"))
model <- glm(FINISHED ~ INCENTIVE + LEVEL, family = "binomial",
data = survey1)
Спасибо!