R中的逐步回归误差

时间:2017-10-18 19:12:25

标签: r logistic-regression

我想在R中运行逐步回归以选择最合适的模型,我的代码附在此处:

full.modelfixed <- glm(died_ed ~ age_1 + gender + race + insurance + injury + ais + blunt_pen + 
               comorbid + iss +min_dist + pop_dens_new + age_mdn + male_pct + 
               pop_wht_pct + pop_blk_pct + unemp_pct + pov_100x_npct +
               urban_pct, data = trauma, family = binomial (link = 'logit'), na.action = na.exclude)
reduced.modelfixed <- stepAIC(full.modelfixed, direction = "backward")

有一条错误消息说

Error in stepAIC(full.modelfixed, direction = "backward") :   
number of rows in use has changed: remove missing values?

数据中几乎每个变量都有一些缺失值,因此我无法删除所有缺失值(data = na.omit(data))

有关如何解决这个问题的想法吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

这可能应该在统计论坛(stats.stackexchange)中,但简单地说有很多注意事项。

主要的一点是,当比较两个模型时,它们需要安装在同一个数据集上(即你需要能够将模型嵌套在彼此之内)。

例如

glm1 <- glm(Dependent~indep1+indep2+indep3, family = binomial, data = data)
glm2 <- glm(Dependent~indep2+indep2, family = binomial, data = data)

现在假设我们缺少indep3的值而不是indep1或indep2。 当我们运行glm1时,我们在一个较小的数据集上运行它 - 我们有因变量和所有三个独立变量的数据集(即我们排除任何缺少indep3值的行)。

当我们运行glm2时,包含缺少indep3值的行,因为这些行包含依赖,indep1和indep2,它们是变量中的模型。

我们无法直接比较模型,因为它们适用于不同的数据集。

我认为你也可以 1)限制完成的数据 2)如果适当考虑多重插补

希望有所帮助。

答案 1 :(得分:0)

您可以使用MICE包进行插补,然后使用数据集不会给您带来错误