我在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)
Run Code Online (Sandbox Code Playgroud)
尝试运行向后消除脚本时:
step(FulMod2,direction="backward",trace=FALSE)
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Error in step(FulMod2, direction = "backward", trace = FALSE) :
number of rows in use has changed: remove missing values?
Run Code Online (Sandbox Code Playgroud)
这是我使用向后消除功能运行的第二个模型.当我做后退消除以获得我的最终模型时,第一个模型很好.
任何帮助将非常感谢!
巴兹
为了成功运行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)
Run Code Online (Sandbox Code Playgroud)
在您的评论中,您提到9个案例中有1个缺少数据.但是,我建议使用上面的代码再次检查,以防某些缺失对应于未包含的变量FulMod2.如果您仍然有很多不完整的情况下,你可能要决定一个先验的,如果你能消除一些高missingness的变量.