Hello,
I have been looking into Bayesian cumulative probit regressions with brms. I have an ordinal outcome variable (rating: 1-4) with one categorical predictor (group: A/B) and two continuous predictors (both which are centered).
I am thinking about a mixed model structured as such
bf.form = bf(rating ~ group * cont_pred1 * cont_pred2 + (1|ID) + (1|stimulus_no) + (1|stimulus_origin)
but have encountered issues with the interaction terms and setting priors, particularly for the continuous predictors (range of cont_pred1: -0.09 - 0.25; range of cont_pred2: -41.2 - 32.7).
Below is the code I have used to implement the model:
intercept.priors = tibble(rating = 1:4) %>%
mutate(proportion = 1/4) %>%
mutate(cumulative_proportion = cumsum(proportion)) %>%
mutate(probit_threshold = qnorm(cumulative_proportion))
priors = c(
prior(normal(-0.674, 1), class = Intercept, coef = 1),
prior(normal(0, 1), class = Intercept, coef = 2),
prior(normal(0.674, 1), class = Intercept, coef = 3),
prior(normal(0, 1), class = b)))
mod.fake = brm(bf.form, data = df, prior = priors, family = cumulative("probit"))
Using shuffled data, I have been able to run the model using a formula without the interactions terms but get the following error with the interaction terms:
"Error in sampler$call_sampler(args_list[[i]]): Initalization failed"
Chain 1: Rejecting initial value:
Chain 1: Log probability evaluates to log(0), i.e. negative infinity.
Chain 1: Stan can't start sampling from this initial value.
Likewise, I have been trying to estimate the priors using sample_priors = "only"
and have been unsuccessful in determining ones that fit the simulated data.
mod.sample = brm(bf.form, data = df, prior = priors, sample_prior = "only", family = cumulative("probit"))
My questions are:
- Can a cumulative probit model with brms include interaction terms? If so, why might I be getting this error?
- Does anyone have suggestions for setting the beta priors?
- Are there alternative models/approaches that could be considered?
Many thanks in advanced!