如何解决步骤model.mod1,范围=列表上部= model.mod1,方向=“两者”都出错,:正在使用的行数已更改:删除缺少的值?
我正在尝试进行逐步逻辑回归。 GLM可以正常运行,但是逐步给我一个错误:
Error in step(model.mod1,scope = list(upper = model.mod1),direction = "both",:
number of rows in use has changed: remove missing values?
我发现某个地方mydata<-na.omit(mydata)
将解决问题。但这不是我的情况,因为会删除fat_categorical
变量中的所有数字。
我的模型如下:
model.mod1 = glm(discriminator~ fat_categorical + inflamation_categorical + bmi + age + sex + race + diabetes + hypertension,data=df,family=binomial(logit),method = "brglm_fit",maxit = 10000,epsilon = 1e-05) #,slowit=0.5)
summary(model.mod1)
model.mod1_OR = round(exp(cbind(coef(model.mod1),confint.default(model.mod1))),digits=2)
model2= step(model.mod1,scope = list(upper=model.mod1),direction="both",test="Chisq",data=df)
summary(model2)
此处的最小可重复示例:
df <- data.frame(ID = c(1005153 1015830 1024057 1027730 1031123 1042443 1049524 1051238 1087572 1088445 1092843 1095487 1100734 1105615 1119581 1119708 1122384 1144918),fat_categorical = c(0 0 0 0 0 0 0 2 2 0 1 0 0 0 0 1 0 0 0 0 0 0 2 0 2 0 2 0 0 0 0 0 1 0 1 2 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 1 1 0 2 1 1 0 0),inflamation_categorical= c(0 0 0 0 0 0 0 0 0 0 0 0 <NA> 0 <NA> <NA> 0 0 0 0 0 0 0 0 0 <NA> 1 <NA> <NA> 0),bmi= c(24.8965 NA NA NA NA NA 32.3098 NA NA 26.2204 41.0953 NA 24.6914 NA 27.9321 NA 26.5888 NA),age= c(78 52 58 78 70 70 81 76 78 67 74 73 66 62 75 67 68 57 65 65 67 64 62 76 68 54 65 60 67 51 67 63 76 73 51 74 62 71 66 56 72 70 78 76 61 64 59 72 61 69),sex= c(1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0),race= c(0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0),diabetic= c(0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0),hypertension= c(0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1),stringsAsFactors = F)
您认为此错误来自何处,我该如何解决?
PS:我发现删除那些缺少值的变量后,模型就可以工作了。但是,当我尝试这样做
df = subset(df,df$bmi !="NA")
df$pdff = as.numeric(df$bmi)
要从有问题的变量中删除缺少的值,模型将再次停止工作...出了什么问题?
非常感谢您!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。