Priors for mixture model with ordinal indicators


#1

Hello,

I want to estimate a 2-component mixture model for 3 ordinal variables that have 4, 7 and 6 categories. A priori, I think the two factors in the mixture will have Gaussian distributions.

Could you please tell me how to specify the priors for the analysis? My attempt to do this so far yields “Error: Expecting a single value when fixing parameters.”

The syntax that generates this error is:-

mix=mixture(gaussian,nmix=2)
prior=c(prior(cumulative(c(-1,0,1),threshold=‘flexible’)),
prior(cumulative(c(-3:2),threshold=‘flexible’)),
prior(cumulative(c(-3:1),threshold=‘flexible’)),
prior(dirichlet(2,2),theta))
j0=brm(bf(cbind(ordvar4,ordvar7,ordvar6)~1, dat, family=mix, prior=prior, inits=c(0,0,0)))

Ultimately, this is a multi-level problem. The ordvar ratings derive from human raters in about 2 dozen centers. So, I would like to generalise the final result to take center into account. I hope that adding +(1|center) to the formula will do this?
Thanks for your help

  • Operating System: WIndows 10
  • brms Version: 1.10.0

#2

I think there are multiple things going on here, which we need to get straight.

First, let’s reduce our model to one response variable (ordvar4, say) for now. If we just wanted to fit a basic (non-mixture) model without any predictors for ordvar4, we would write

fit <- brm(ordvar4 ~ 1, dat, family = cumulative())

If we wanted to model ordvar4 as a mixture of two ordinal cumulative families, we would go for:

mix <- mixture(cumulative, nmix=2)
fit <- brm(ordvar4 ~ 1, dat, family = mix)

For the second model to work, you will need to update brms to the latest CRAN version (2.2.0). Let’s start by getting the above models to run. Then we can expand further.


#3

I realise that I wish to fit a factor-mixture model and this may be impossible in brms.

A cluster (mixture) model would perhaps be useful and I imagine this is possible.

The models that you outlined run with no trouble at all in brms 2.2.0.

Thanks


#4

I see. In this case, can you write down the model you have in mind? Then we can work out whether this is possible in brms.