用R
我正在R中运行逻辑回归,并进行“反向消除”,以获得最终模型:用R,r,regression,R,Regression,我正在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)
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)
我收到了以下错误消息:
Error in step(FulMod2, direction = "backward", trace = FALSE) :
number of rows in use has changed: remove missing values?
这是我使用反向消除函数运行的第二个模型。第一个模型是好的,当我做反向消除得到我的最终模型
任何帮助都将不胜感激
Baz为了在您的模型上成功运行
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)
myForm From?步骤
:警告模型配件必须将模型应用于同一数据集。如果缺少值并且使用了R的默认值na.action=na.omit,则可能会出现问题。我们建议您首先删除缺少的值。您可以查看?complete.cases
来识别sof
@BenBarnes中的完整和不完整案例,谢谢您的帮助。我有9000份记录,在申请“完整的案例”后,现在已经下降到8000份。我只是在想,这是不是太多而不能失去?无论如何,再次谢谢你!另一方面,如果您的预测值与sof
中的其余列相对应,那么您可以使用公式的
运算符来“指定模型中未以其他方式命名的所有列。例如glm(surv~,data sof,family=binomial(link=“logit”))
。您需要事先将所有类设置为.factor()
。此外,您的前两个预测值as.factor(tdate)+as.factor(tdate)
似乎相同。这是有意的吗?@Chase,谢谢。将前两个预测值视为.factor(tdate)+as.factor(tdate),这不是故意的!我按照你上面的建议运行了模型,从9000条记录中给了我8000条。几乎所有缺失值高的预测值都在完整模型中。谢谢!
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)