【发布时间】:2013-12-19 14:45:08
【问题描述】:
我有一个使用 R 中的 glmer 函数拟合的 GLMM 对象,并且想要执行 k 折交叉验证。对于简单的 GLM,我使用了 DAAG pkg 中的 CVbinary 函数,如下所示。
> SimpleGLM <- glm(Res ~ Var1 + Var2, data = Data, family=binomial)
> CVbinary(SimpleGLM, nfolds=10, print.details=TRUE)
Fold: 3 2 4 1 7 10 6 9 5 8
Internal estimate of accuracy = 0.828
Cross-validation estimate of accuracy = 0.827
但是,当将 IndID 的随机项添加到模型中时,与 glmer 拟合的模型的 S4 类会导致错误(如下)。
GLMMod <- glmer(Res ~ Var1 + Var2 + (1|IndID), data = Data, family=binomial)
> CVbinary(GLMMod , nfolds=10, print.details=TRUE)
Error in obj$data : $ operator not defined for this S4 class
我一直在网上寻找,但无法找到类似于 CVbinary 的函数,它适用于 S4 对象,但在我手动编码之前想在这里仔细检查一下。
简而言之,(假设我正确解释了R 错误)是否有对 S4 对象执行 k 折交叉验证的函数?
【问题讨论】:
-
请注意,这是在 r-sig-mixed-models 邮件列表中交叉发布的:stat.ethz.ch/pipermail/r-sig-mixed-models/2013q4/021472.html