【发布时间】:2016-11-11 08:19:33
【问题描述】:
我有兴趣使用交叉验证(留一法或 K 折叠)来测试我创建的几种不同的负二项式 GLM。我正在使用MASS 中的glm.nb() 函数来运行负二项式回归。
我的问题是我是否可以使用来自boot 的cv.glm() 来测试这个模型。我倾向于不,但想知道是否有人知道可以让我执行 K-folds 验证(或遗漏一个)的功能。或者,也许cv.glm() 对负二项式完全有效。
以下是来自在线示例的一些数据以提供帮助。我曾认为交叉验证结果 ($delta) 应该在 0 和 1 之间,但下面的情况并非如此(并且可能表明出现了问题)
http://www.ats.ucla.edu/stat/r/dae/nbreg.htm
我发现了一些关于解释 cv.glm() 的输出的问题,但不是特别关于如何使用 R 中的负二项式模型进行交叉验证
require(foreign)
require(ggplot2)
require(MASS)
require(boot)
dat <- read.dta("http://www.ats.ucla.edu/stat/stata/dae/nb_data.dta")
dat <- within(dat, {
prog <- factor(prog, levels = 1:3, labels = c("General", "Academic","Vocational"))
id <- factor(id)
})
summary(m1 <- glm.nb(daysabs ~ math + prog, data = dat))
#This code will run, but is it valid for negative binomial GLM models?
cv.glm(dat,m1,K=10)
[我不确定这个问题是属于这里还是属于 Cross Validated...]
【问题讨论】:
标签: r regression glm cross-validation