Advertisement
somebodycool69

fixed_jacobian

Jan 15th, 2023 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. functions {
  2. real inv_transform(real x_new, real center, real sigma) {
  3. return erf(x_new - center) / sigma + x_new;
  4. }
  5. real jacobian(real x_new, real center, real sigma) {
  6. return log_sum_exp((
  7. log(2 / sqrt(pi()))
  8. - (x-c)**2
  9. - log(sigma)
  10. ), 1
  11. );
  12. }
  13. }
  14. data {
  15. int N;
  16. vector[N] x;
  17.  
  18. real center;
  19. real sigma;
  20. }
  21. parameters {
  22. real transformed_mu;
  23. real<lower=0> sd:
  24. }
  25. transformed parameters {
  26. real mu = inv_transform(transformed_mu, center, sigma);
  27. }
  28. model {
  29. mu ~ normal(0, 1);
  30. target += jacobian(transformed_mu, center, sigma);
  31. sd ~ normal(0, 1);
  32. x ~ normal(mu, sd);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement