# Specify distribution of a vector of parameters

Hi All,

I am working on a multi-level model with a vector of parameters that are random slopes, and I would like to assign a prior to the distribution of these parameters. Whenever I run the model, the distribution of the mean estimates for these random effect parameters ends up being normal, but I have an a priori reason to expect that they would be non-negative with a positive skew. So, is it possible to treat this expectation as a prior on the distribution of parameters (or at least their estimated means)?

When I specify the parameter, I use:

``````parameters {
vector[Num_levels] theta;
}
``````

However, specifying a distribution in the model block, like `theta ~ normal(0, 1);` or `theta ~ chi_square(1);` only affects the distribution of the estimates for each individual parameter in the vector, not the distribution of parameters across the vector. The best I can do is to specify the lower bound of the vector, ie

``````parameters{
vector<lower=0>[Num_levels] theta;
}
``````

But this is unsatisfying, as the distribution is still normal, and it is more of a constraint than a prior. Is there a way to specify the distribution of parameter means in a vector of parameters as a hyperparameter?

Hi,
I am not sure I completely understand what you are trying to achieve.

That sounds very much like a prior that affects each parameter individually (e.g. with `theta ~ skew_normal(2, 2, 4);`).

That should be easy, for example: (code not tested, just a sketch):

``````parameters {
vector[Num_levels] theta;
real theta_mean;
}

model {
theta ~ normal(theta_mean, 1);
theta_mean ~ normal(5, 5);
}
``````

If this is not what you need than I donâ€™t know what you are after :-) It is often useful to think of the probabilistic model as a way to generate new data. How would you draw new samples from the prior on `theta`? (in R,Python - whatever language you use).