mpt-network / MPTmultiverse

An R package for the comparison of MPT analysis approaches
3 stars 6 forks source link

Prior for order constraint parameters #14

Open crsh opened 6 years ago

crsh commented 6 years ago

Marius told me that at least one of the models in the project relies on order constraints. I remember asking about the TreeBUGS implementation at the last meeting. If I remember correctly, TreeBUGS does no automatic reparameterization to ensure correct priors on the group level parameters, correct? This would then yield unwanted informative priors on the model parameters (as per Heck & Wagenmakers, 2016). This may be a problem when comparing the estimates and SE to other estimation methods and or model parameters, right?

I realize that the analytic adjustment Daniel outlined does not have an equivalent in the latent trait approach. In another project, I have addressed this by fitting a normal distribution with probit transform to the respective beta distributions and using the resulting mean a variance as priors. The implied priors in probability space were reasonably close.

However, this would still require a reparameterization of the model equations. I suppose this could most easily be done manually when specifying the model, correct?

danheck commented 6 years ago

This is correct, TreeBUGS does not have the functionality to reparameterize order constraints automatically and adjust the priors automatically. As a remedy, we can use multiTree to reparameterize an MPT model with order constraints (if this has not already been done). Originally, we also created a table of adjusted Gaussian priors for the latent group means in latent-trait MPTs, so these values could in principle be used.

However, in Heck & Wagenmakers (2016) we focused on the impact of different priors on the Bayes factor for model selection (where the prior has a large impact). For the MPT comparison, we are interested "only" in the parameter estimates, and thus the impact of different priors on the posterior mean/SD might be smaller (if there are enough data).

Maybe we can try this for one or two data sets manually before investing more time and effort to adjust this in the package. For this purpose, we can adjust the priors in TreeBUGS via

# reparameterization of: p1 < p2 < p3 
# new parameters:        p1 = c1*c2*p3  and  p2 = c2*p3
traitMPT(..., mu = c(c1 = "dnorm(0,1)",
                     c2 = "dnorm(0.5643 0.8292)",
                     p3 = "dnorm(0.8459, 0.7558)"))

If the adjustment turns out to matter, we could add the possibility to provide optional arguments in fit_mpt via trait_args that are forwarded to traitMPT as additional arguments. Thereby, one can change priors for a specific model. In fact, such a possibility may be useful in general for prior sensitivity analyses.

crsh commented 6 years ago

The outcome of the manual test will probably be dependent on the dataset we choose and at this point I think it's hard to anticipate the dataset size that will be analyzed. So we may want to ask the respective teams to provide some small datasets for the manual tests. Also, if we keep it as is, we should be transparent about the informative nature of the priors for these models in the paper.