相关疑难解决方法(0)

glm()模型的交叉验证

我正在尝试对我之前在R中构建的一些glm模型进行10倍交叉验证.虽然我已经阅读了很多帮助文件,但我cv.glm()boot包中的函数有点困惑.当我提供以下公式时:

library(boot)
cv.glm(data, glmfit, K=10)
Run Code Online (Sandbox Code Playgroud)

这里的"数据"参数是指整个数据集还是仅指测试集?

到目前为止我看到的例子提供了"数据"参数作为测试集,但这并没有真正有意义,例如为什么在同一测试集上有10倍?它们都会给出完全相同的结果(我假设!).

不幸的是,?cv.glm它以模糊的方式解释:

data:包含数据的矩阵或数据帧.行应为case,列对应变量,其中一个是响应

我的另一个问题是$delta[1]结果.这是10次试验的平均预测误差吗?如果我想获得每个折叠的错误怎么办?

这是我的脚本的样子:

##data partitioning
sub <- sample(nrow(data), floor(nrow(x) * 0.9))
training <- data[sub, ]
testing <- data[-sub, ]

##model building
model <- glm(formula = groupcol ~ var1 + var2 + var3,
        family = "binomial", data = training)

##cross-validation
cv.glm(testing, model, K=10)
Run Code Online (Sandbox Code Playgroud)

partitioning r prediction glm cross-validation

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

cross-validation ×1

glm ×1

partitioning ×1

prediction ×1

r ×1