Hello,
I am currently working on a project that involves Bayesian estimation of generalized partial credit model (GPCM). The formula for the GPCM is as the following:
P(X_{pi} = k | \theta_p, \boldsymbol{\beta_i}, \alpha_i) = \frac{\exp\left(\sum_{j=0}^k \alpha_i (\theta_p - \beta_{ij})\right)}{\sum_{m=0}^M \exp\left(\sum_{j=0}^m \alpha_i (\theta_p - \beta_{ij})\right)}
I simulated the data and confirmed that the data generation step was correct by checking the parameter recovery using R package that does likelihood-based estimation.
However, when I did the Bayesian estimation using brms, the scales of the estimated parameters seem to be off.
I used the following brms code to fit the model:
gpcm_formula ← bf(
R2 | thres(gr = Item) ~ 1 + (1 | Person), # Thresholds and latent trait
disc ~ 1 + (1 | Item) # Varying discrimination
)
gpcm_model ← brm(
formula = gpcm_formula,
data = responses_long,
family = brmsfamily(“acat”, “logit”),
cores = 2,
chains = 2
)
Please note that I did not impose any prior distributions, which may be why the scales are off. But I thought that brms by default provides weak/uninformative priors. If priors are uninformative, shouldn’t the estimation accuracy be close to those from likelihood-based estimation?
My goal is to set up the model such that it achieves parameter recovery that is comparable to the likelihood estimation. Could anyone give me some advice on how to improve the parameter accuracy on this one?
I attached my R script that implements the steps above. It took me about 10 mins to run the Bayesian estimation.
Any advice will be greatly appreciated. Thank you so much!
-Sue