Dear Stan community,
I have been trying to set priors and do a prior predictive check for an ex-gaussian regression model using brms v2.7.
The ex-gaussian regression model that I use is a hierarchical model in which RTs are predicted by two within-subject conditions with sigma and beta of the exgaussian distribution as constant parameters.
The model in brms:
> M1 <- brm(RT ~ VisualSync * SyncTarget + (VisualSync*SyncTarget|participantID), > data = StimComp[StimComp$Detected == 1,], family = exgaussian(), prior = prior, > chains = 4, iter = 4000, cores = 4, save_all_pars = T, sample_prior = "only")
I have set the following priors:
> prior <- c(prior("normal(0,.1)", class = "b", coef = ""), > prior("lognormal(log(0.6), log(1.7))", class = "Intercept", coef = ""), > prior("lognormal(log(0.06), log(1.2))", class = "sigma", coef = ""), > prior("gamma(2.5,0.5)", class = "beta", coef = ""), > prior("lkj(1)", class = "cor"), > prior("student_t(3, 0, 0.02)", class = "sd"))
When I then use posterior predictive checks the prior distribution is symmetrical around 0, while the distribution of the fitted values looks like an ex-gaussian with RTs > 0 and a clear skew.
So, I assume that the residual error is too large and therefore introduces a distribution of RTs that allows for negative RTs.
I tried to allow less variance and more variance for the prior of the random effects (i.e., class “sd”), but this did not change the posterior predictive distribution much. It still remained symmetrical around zero.
So I don’t know how to troubleshoot this, as I don’t understand where the large standard errors may be coming from.
I saw that there was quite a lot of uncertainty in the estimate of the bèta parameter of the exgaussian. Does the prior for bèta allow to many values?
Any tips would be much appreciated!