Hi,

I was wondering if I could share parameters across the distributions of a mixture in brms. Imagine a situation where a school grade depends on a predictor, but a school teacher might have favorite students who they don’t want to fail and so another distribution (of favorites) is truncated at 59.5:

```
library(extraDistr)
library(brms)
set.seed(123)
# number of students
N <- 400
alpha <- 55
beta <- 2
sigma <- 8
predictor <- rnorm(N)
# scores for "fair" grades
scores_1 <- rtnorm(N, alpha + beta * predictor,sigma, a =0,b=100)
# scores for grades that are always a pass
scores_2 <- rtnorm(N, alpha + beta * predictor,sigma, a =59.5,b=100)
# prob that the student is not a favorite:
p <- .7
# which students are a favorite
z <- rbern(N, p)
# distribution of scores:
scores <- ifelse(z, scores_1, scores_2)
hist(scores)
```

^{Created on 2023-05-03 with reprex v2.0.2}

Now how do I code this in brms? I tried the following:

```
df <- data.frame(scores, predictor)
brm(bf(scores ~ predictor ,
mu1 | rep_trunc(lb=0,ub=100)~ 0,
mu2 | rep_trunc(lb=59.5,ub=100)~ 0
) , data= df,
family = mixture(gaussian, gaussian, order = 'none'),
prior = ...
)
```

But I can see with `make_stancode`

that the model is ignoring `predictor`

. But if I move it to the lines of mu1 and mu2:

```
mu1 | rep_trunc(lb=0,ub=100)~ predictor,
mu2 | rep_trunc(lb=59.5,ub=100)~ predictor
```

I end up with two betas. (Ideally I would like to share sigma across models, but it’s less critical).

(I know how to do it in Stan, and I know how to edit the brms model, but I wonder if there’s a brms solution that I can use for teaching. And by the way this is a very realistic situation, most datasets with grades have a bump around 60).

- Operating System: Ubuntu 20.04.5 LTS
- brms Version: brms_2.19.0