# How to improve priors for a modified Beta regression (custom ordered beta regression)?

I want to improve my modeling by using weakly informative priors, but I struggle with logit conversions (and probably have many other knowledge gaps that are less obvious to me). I have fitted the model, but I still have the sense that I’m doing something wrong with my priors and experimenting with priors has given me substantially different bulk-ESS.

I am using ‘brms’, trying to fit a custom family (ordered beta regression, as specified here).

I don’t think I can share my data, but I will describe my variables: y (varies from 0 to 1), category (factor two levels), judge (factor 455 levels), target (factor 48 levels). The targets are nested into factor (but all have a unique identifier). My formula looks like this:

``````bf(y ~ 0 + Intercept + category + (0 + category | judge) + (1 | gr(target, by= category) ) )
``````

The 0 + Intercept is a quirk of how the family is specified. I believe the specifics of the custom family & stan code are relevant:

``````ord_beta_reg <- custom_family(
"ord_beta_reg",
dpars = c("mu","phi", "cutzero", "cutone"),
links = c("identity", "log", NA, NA),
lb = c(NA, 0, NA, NA),
type = "real")

real ord_beta_reg_lpdf(real y, real mu, real phi, real cutzero, real cutone) {
vector[2] thresh;
thresh[1] = cutzero;
thresh[2] = cutzero + exp(cutone);

if(y==0) {
return log1m_inv_logit(mu - thresh[1]);
} else if(y==1) {
return log_inv_logit(mu - thresh[2]);
} else {
return log_diff_exp(log_inv_logit(mu   - thresh[1]), log_inv_logit(mu - thresh[2])) +
beta_lpdf(y|exp(log_inv_logit(mu) + log(phi)),exp(log1m_inv_logit(mu) + log(phi)));
}
}
``````

My latest thinking regarding weakly informative priors for the scale of my data is as follows:

``````# max effect = max(error) - min(error) / max(b) - min(b) -> in qlogis most reasonable values ~10/10 = 1
# divide max effect by 2.58
# because 99% distribution is within about 2.58 standard units from the mean
# 1/2.58 = .38
For b -> "normal(0, 0.38)"

# Intercept qlogis(mean(y)), 2.5*sd(y)
For b Intercept -> "normal(-0.89, 0.58)"

# skeptical about random effect correlation being close to 1, -1
For random effect cor -> "lkj(4)"

# custom induced Dirichlet priors for cutpoints
cutone -> "induced_dirichlet([1,1,1]', 0, 2,cutone,cutzero)"
cutzero -> "induced_dirichlet([1,1,1]', 0, 1,cutone,cutzero)"

# precision parameter for Beta, taken from Kubinec (2022)
phi -> "exponential(.1)"

# standard deviation for all group effects, gamma(2, 1/sd(y)), taken from Chung Et Al. (2013)
sd -> "gamma(2, 4.34)"
``````

I’d appreciate comments on whether the rationale for constraining my priors is sensible, as well as links to pertinent resources. Thank you!