首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的反向消除

R中的反向消除
EN

Stack Overflow用户
提问于 2012-08-02 05:07:26
回答 1查看 31.6K关注 0票数 10

我试图使用带R的反向消除来获得最终的模型,但当我运行代码时,我得到了以下错误消息。有谁能帮我这个忙吗?

代码语言:javascript
运行
复制
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?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-02 05:12:59

在比较不同的子模型时,有必要将它们拟合到同一组数据中-否则结果就没有意义了。(考虑这样一种极端情况:您有两个预测器AB,每个预测器仅在您的观测值的一半上测量--然后模型y~A+B将适用于所有数据,但模型y~Ay~B将适用于数据的预测子集。)因此,step不允许您比较使用原始数据集的不同子集的子模型(因为自动删除包含NA值的情况)。

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

代码语言:javascript
运行
复制
fullmodel <- lm(Eeff ~ NDF + ADF + CP + NEL + DMI + FCM, data = na.omit(phuong))
step(fullmodel, direction = "backward", trace=FALSE ) 

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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11767602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档