R中cv.glm函数在缺失因子时出现问题

4

我正在使用R中boot库的cv.glm交叉验证过程来测试逻辑回归的性能。

我的一些预测变量是因子。

运行时,我收到以下错误消息:

Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels)
factor color has new levels RED

我想我理解了这个问题。可能是因为我在一个子集的观察数据上训练回归模型,而这个子集中某些水平的因子变量不存在。如果后来将此模型用于包括未见过的预测变量水平的新观测数据,则它不知道该如何行事。

由于这看起来像是一个基本的交叉验证问题,我很惊讶在库文档中没有找到任何提及。

我会非常感激任何指针。


谢谢您的评论。只是为了明确,您建议使用ipred包来进行误差估计,而不是boot库吗? - user695652
1个回答

1

如我在评论中提到的那样,这里是来自ipred包中?errorest的示例:

#cv of a fixed partition of the data
list.tindx <- list(1:100, 101:200, 201:300, 301:400, 401:500,
        501:600, 601:700, 701:768)

errorest(diabetes ~ ., data=PimaIndiansDiabetes, model=lda,
          estimator = "cv", predict = mypredict.lda,
          est.para = control.errorest(list.tindx = list.tindx))

所以您可以指定自己要使用的CV折叠,并确保它们足够平衡,以避免任何单个折叠中缺少因素的水平。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接