I’m trying to understand the stan code generated by brms as a learning exercise and to also help set better priors.
One of the methodologies brms uses to set priors that I don’t understand is the use of the _lccdf suffix in priors such as:
target += student_t_lpdf(sd_1 | 3, 0, 10) - 1 * student_t_lccdf(0 | 3, 0, 10);
Where sd_1 appears to be the standard deviation on the group effects for a brms formula such as:
y ~ x1 + (1|Group)
What is the purpose of subtracting the lccdf in this prior? The closest I seem be getting is that it’s effectively truncating the possible values of sd_1 to a lower bound of 0 and an alternative coding might be:
real<lower=0> sd_1;
target += student_t_lpdf(sd_1 | 3, 0, 10);
But I see earlier in the brms coding it has already specified sd_1 to have a lower bound of 0 so my interpretation seems unlikely.
I’m also not sure what the purpose of the 1 * is.
Any help would be much appreciated.