【发布时间】:2020-04-14 22:25:40
【问题描述】:
我在 R 中对逻辑回归进行 10 倍交叉验证时遇到了一些问题。
我使用了cv.glm() 函数,但它显示错误。但是,我将此函数用于 ISLR 包中的 Smarket 数据,它没有显示任何错误。我的逻辑回归中的预测变量是二元的。
# 10-Fold Cross-Validation for Logistic Regression
cv.errorlog7 <- cv.glm(p, logit7, K=10)$delta[1]
我收到以下错误消息:
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
factor gender has new levels Other
In addition: Warning messages:
1: In predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
prediction from a rank-deficient fit may be misleading
2: In predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
prediction from a rank-deficient fit may be misleading
3: In y - yhat :
longer object length is not a multiple of shorter object length
【问题讨论】:
-
您的数据集有多大?如果您在性别中没有任何 NA 或第三个因素,那么听起来您的一个折叠随机选择了一个性别。我会尝试使用新种子进行交叉验证或减少折叠次数。如果你能提供一个代表,那将非常有帮助。
-
谢谢。我有 143 个科目和 18 个变量。数据不包含任何 NA,我没有使用性别来拟合我的逻辑回归。我尝试过更改种子,但遇到了同样的错误。
标签: r