步骤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 (将#修改为@)