簡體   English   中英

使用R在邏輯回歸中反向消除

[英]backward elimination in logistic regression using R

我在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?

這是我使用向后消除功能運行的第二個模型。 當我做后退消除以獲得我的最終模型時,第一個模型很好。

任何幫助將非常感謝!

巴茲

為了在模型上成功運行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)

在您的評論中,您提到9個案例中有1個缺少數據。 但是,我建議使用上面的代碼再次檢查,以防一些缺失對應於FulMod2未包含的FulMod2 如果您仍然有很多不完整的情況下,你可能要決定一個先驗的 ,如果你能消除一些高missingness的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM