2013-10-09 1 views
1

Моя линейная модель пытается предсказать количество азартных игр на основе переменных пола, дохода, словесности и статуса. Секс - это двоичная переменная, которая является «мужским» или «женским» (они являются факторами), а остальные - численными.R - использование функции предсказания, когда одна переменная является двоичным коэффициентом

lm3 <- lm(gamble ~ sex + status + income + verbal, data=teengamb) 

Это моя линейная модель. У меня возникли проблемы прогнозирования функции для мужчины со средним статусом, доход и словесные:

newdata <- c(as.factor("Male"), mean(teengamb$status), mean(teengamb$income), mean(teengamb$verbal)) 
newdata <- data.frame(newdata) 
predict(lm3, newdata) 

Я не уверен, как идти об этом.

Обратите внимание, что, как я преобразовал его мужчина и женщина:

Однако, я преобразовал 0 = мужчина, 1 = самку «Мужчина» и «Женщина».

teengamb$sex[teengamb$sex==0] <- "Male" 
teengamb$sex[teengamb$sex==1] <- "Female" 
teengamb$sex <- as.factor(teengamb$sex) 
+0

Каким образом вы возникли проблемы Можете ли вы показать свой вызов 'predict' –

+0

Это то, что у меня есть, и это не работает – user2303557

+0

?. newdata <- c (as.factor («Мужской»), средний (сумма в тэнгамбе $), средний (денежный доход в сумме $ 7), средний (teengamb $ verbal)) newdata <- data.frame (newdata) Предсказать (lm3, newdata) – user2303557

ответ

3

При создании кадра newdata данных, вы должны быть уверены, что каждый столбец имеет имя:

newdata <- data.frame(sex=0, status=mean(teengamb$status), 
         income=mean(teengamb$income), 
         verbal=mean(teengamb$verbal)) 
predict(lm3, newdata) 
# 28.24252 

Также отметим, что sex представлен как 0 = мужской, 1 = женщина (вы можете см. это, делая help(teengamb)).

(Это означает, что она должна быть:

newdata <- data.frame(sex=factor("Male", levels=c("Female", "Male")), 
         status=mean(teengamb$status), 
         income=mean(teengamb$income), 
         verbal=mean(teengamb$verbal)) 
+0

Я отредактировал оригинальное сообщение, чтобы показать, что я преобразовал 0 в Male и 1 в Female. Когда я использую код выше с мужчиной/женщиной в качестве факторов, он не работает (предположительно, потому что он больше не равен 0 и 1). Однако, когда я перечитываю в таблице, так что он 0 и 1 снова работает. Есть ли в любом случае факторы мужчины/женщины? Это даже правильный способ написать линейную модель? Спасибо! – user2303557

+2

Обычно я бы не отредактировал какой-то ответ, но форматирование было бы беспорядок в комментарии. Если 0 изменится на «Мужской» и «1» на «Женский», то просто использовать коэффициент с такими, поскольку уровни будут соответствовать тому, что находится в отредактированном вопросе. –

+0

Спасибо за добавление @DWin! –

Смежные вопросы