I have never been able to get moment_match = TRUE
to work so I generally use reloo = TRUE
instead. I recently fitted a model which takes a few hours and requires a few refits when running loo, so I thought I would give moment match another go. But I get this error (similar to errors I have had in the past when attempting moment_match
):
Error : $ operator is invalid for atomic vectors
In addition: Warning message:
In parallel::mclapply(X = I, mc.cores = cores, FUN = function(i) loo_moment_match_i_fun(i)) : all scheduled cores encountered errors in user code
Error: Moment matching failed. Perhaps you did not set 'save_pars = save_pars(all = TRUE)' when fitting your model?
Following is the code I used:
mdl_cad_SPS_2 <-
brm(
rating ~
SPS_1_2_sc * SPS_1_3_sc * SPS_2_3_sc +
ch1_mode + ch2_mode + ch3_mode + rating_lag1_sc +
(SPS_1_2_sc * SPS_1_3_sc * SPS_2_3_sc +
ch1_mode + ch2_mode + ch3_mode + rating_lag1_sc |
participant) +
(rating_lag1_sc | ch_prog),
data = data_cad,
family = cumulative(link = probit_approx),
prior = c(set_prior("student_t(3, 0, 1)", class = "Intercept"),
set_prior("student_t(3, 0, 1)", class = "b")),
inits = 0,
warmup = 1000, iter = 3500,
sample_prior = "yes",
save_pars = save_pars(all = TRUE),
file = "mdl_cad_SPS_2")
mdl_cad_SPS_2
mcmc_plot(mdl_cad_SPS_2, pars = "^b_")
mdl_cad_SPS_2 <-
add_criterion(
mdl_cad_SPS_2,
criterion = c("loo", "bayes_R2", "loo_R2"),
nsamples = 2000,
moment_match = TRUE,
overwrite = TRUE
# reloo = TRUE,
# inits = 0
)
- Operating System: macOS 11.2.1
- brms Version: 2.14.10