Hello, guys, could u please tell me how to do sampling of mixed distribution in stan?
for example: X and Y are two independent variables which follow any distribution i prefer. How can I do sampling of X+Y ? in some cases, I could write a closed form, e.g. X ~ normal (0,1) Y~normal(0,1) so X+Y ~ normal(0,2). but in most cases it’s impossible. What’s the general solution in stan? Thanks!
I think this is what you’re looking for:
parameters {
real x;
real y;
}
transformed parameters {
real z = x + y;
}
model {
x ~ normal(0, 1);
y ~ normal(0, 1);
}
z
is defined as x + y, so it’ll have the appropriate distribution. Also side note Stan parameterizes normal distributions with a mean and standard deviation, so normal(0, 1) + normal(0, 1) is distributed as normal(0, sqrt(2)) in Stan notation.
Hope that helps!
(p.s. you could have x
and y
distributed as whatever you want in the model above, doesn’t have to be normals)
If you don’t need to use that z
in the rest of the model, then you want to put it in generated quantities for efficiency:
generated quantities {
real z = x + y;
}