使用loo对brms生成的GAM模型做LOO交叉验证时遇R致命错误
brms模型LOO交叉验证触发R致命错误问题
我用brms包拟合了多个GAM模型,计划通过leave-one-out(LOO)交叉验证筛选最优模型,但调用loo()函数时频繁出现异常,最终触发R致命错误,目前没有有效的排障路径。
环境详情
R version 4.2.2 Rstudio version 2023.12.0.369 brms version 2.20.4
可复现代码
set.seed(42) df <- data.frame(y = rnorm(2000, 100, 20), x = rnorm(2000, 50, 20), a = sample(LETTERS[1:3], 2000, replace = TRUE)) m <- brm(y ~ s(x) + s(x, a, bs = "fs"), prior = c(prior(normal(0, 10), class = Intercept), prior(normal(0, 1), class = b), prior(normal(0, 1), class = sigma), prior(normal(0, 1), class = sds)), family = gaussian(link = "identity"), data = df) loo(m)
问题过程
执行上述代码后,会收到如下警告:
Warning message:
Found 1 observations with a pareto_k > 0.7 in model 'm'.
It is recommended to set 'moment_match = TRUE' in order to
perform moment matching for problematic observations.
按照提示将代码修改为:
loo(m, moment_match = TRUE)
此时直接触发R致命错误。
内容的提问来源于stack exchange,提问作者tnt
相关产品推荐
相关产品推荐

