10

我正在尝试使用 R 的反向消除来获得最终模型,但是在运行代码时收到以下错误消息。有人可以帮我吗?

base<-lm(Eeff~NDF,data=phuong)
fullmodel<-lm(Eeff~NDF+ADF+CP+NEL+DMI+FCM,data=phuong)
 step(full, direction = "backward", trace=FALSE )

> Error in step(full, direction = "backward", trace = FALSE) : 
number of rows in use has changed: remove missing values?
4

1 回答 1

14

在比较不同的子模型时,有必要将它们拟合到同一组数据中——否则结果就没有意义了。(考虑极端情况,您有两个预测变量A和.) 因此,不允许您比较使用原始数据集的不同子集的子模型(因为自动删除包含值的案例)。By~A+By~Ay~BstepNA

na.omit在原始数据集上使用应该可以解决问题。

fullmodel <- lm(Eeff ~ NDF + ADF + CP + NEL + DMI + FCM, data = na.omit(phuong))
step(fullmodel, direction = "backward", trace=FALSE ) 

但是,如果您NA在不同的预测变量中有很多值,您最终可能会丢失大量数据集——在极端情况下,您可能会丢失整个数据集。如果发生这种情况,您必须重新考虑您的建模策略...

于 2012-08-01T21:12:59.027 回答