Trying to use this right know :-) - Thanx for the effort and sharing. If I understand it correctly, the code should be used as:
transformed data {
vector[2*N] Q_r = Q_sum_to_zero_QR(N);
real x_raw_sigma = inv_sqrt(1 - inv(N));
}
parameters {
vector[N - 1] x_raw;
}
transformed parameters {
vector[N] x = sum_to_zero_QR(x_raw, Q_r);
}
model {
x_raw ~ normal(0, x_raw_sigma);
}
where the non-obvious fact is that x_{raw} \sim N \left( 0, \frac{1}{\sqrt{1 - \frac{1}{N}}} \right)