обратное устранение в логистической регрессии с использованием R - PullRequest
3 голосов
/ 03 апреля 2012

Я выполняю логистическую регрессию в R и делаю заказ «обратное устранение», чтобы получить мою окончательную модель:

FulMod2 <- glm(surv~as.factor(tdate)+as.factor(tdate)+as.factor(sline)+as.factor(pgf)
                                    +as.factor(weight5)+as.factor(backfat5)+as.factor(srect2)
                                    +as.factor(bcs)+as.factor(loco3)+as.factor(fear3)
                                    +as.factor(teats)+as.factor(preudder)+as.factor(postudder)
                                    +as.factor(colos)+as.factor(tb5) +as.factor(respon3)
                                    +as.factor(feed5)+as.factor(bwt5)+as.factor(sex)
                                    +as.factor(fos2)+as.factor(gest3)+as.factor(int3),
                                    family=binomial(link="logit"),data=sof)

При попытке запустить сценарий обратного удаления:

step(FulMod2,direction="backward",trace=FALSE)

Я получил это сообщение об ошибке:

Error in step(FulMod2, direction = "backward", trace = FALSE) : 
  number of rows in use has changed: remove missing values?

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

Любая помощь будет принята с благодарностью!

Баз

1 Ответ

6 голосов
/ 03 апреля 2012

Чтобы успешно запустить step() в вашей модели для обратного выбора, вы должны удалить случаи в sof с отсутствующими данными в тестируемых вами переменных.

myForm <- as.formula(surv~
  as.factor(tdate)+as.factor(tdate)+as.factor(sline)+as.factor(pgf)
  +as.factor(weight5)+as.factor(backfat5)+as.factor(srect2)
  +as.factor(bcs)+as.factor(loco3)+as.factor(fear3)
  +as.factor(teats)+as.factor(preudder)+as.factor(postudder)
  +as.factor(colos)+as.factor(tb5) +as.factor(respon3)
  +as.factor(feed5)+as.factor(bwt5)+as.factor(sex)
  +as.factor(fos2)+as.factor(gest3)+as.factor(int3))

sofNoMis <- sof[which(complete.cases(sof[,all.vars(myForm)])),]

FulMod2 <- glm(myForm,family=binomial(link="logit"),data=sofNoMis)

step(FulMod2,direction="backward",trace=FALSE)

В вашем комментарии:Вы упомянули, что в 1 из 9 случаев отсутствуют данные.Однако я рекомендую проверить это снова с помощью приведенного выше кода, если некоторые из этих пропусков соответствуют переменным, не включенным в FulMod2.Если у вас все еще есть много незавершенных случаев, вы можете решить априори , можете ли вы исключить некоторые переменные с большим отсутствием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...