I would like to perform a beta regression, the only thing I have are posterior estimates (instead of single points).
I know ideally you would like a full Bayes model, but I would like to understand the best practices when this is the only possible starting point. For example instead of having a single number (e.g., 0.022) I have access to the uncertainty around it
Therefore the first question is: is it possible to use stanarm (or brms) beta regression with densities instead of input points?
The second question is about building a custom model (sorry for parameters name, too many “betas” around…)
An approach could be to build the model that:
- parametrizes all those input densities
data{
vector<lower=0, upper=1>[N] beta[S];
...
}
model{
for(s in 1:S)
beta[s] ~ beta(beta_b_inv[s] * beta_a[s], beta_b_inv[s] * (1 - beta_a[s])); //mean precision parametriz.
...
}
- Draw a new set of parameters back from such distributions
...
for(s in 1:S) beta_hat[s] ~ beta(beta_b_inv[s] * beta_a[s], beta_b_inv[s] * (1 - beta_a[s]));
...
- Set the likelihood on those new parameters
transformed parameters{
vector[S] beta_mu = inv_logit(X * alpha);
...
}
model{
...
// Likelihood
for(s in 1:S) beta_hat[s] ~ beta(beta_mu[s] * phi, (1 - beta_mu[s]) * phi);
...
However this leads to no mixing
Another possible approach is to directly run the regression on the (inferred) means beta_a of the data densities, instead of the whole density beta_hat i.e.,
model{
...
// Likelihood
for(s in 1:S) beta_a[s] ~ beta(beta_mu[s] * phi, (1 - beta_mu[s]) * phi);
In principle I would think the first approach is the more correct because I consider the whole uncertainty, while the second is only based on the uncertainty around the mean of such input densities.
Thanks