GSoC 2021 - Q/A thread

Hi!

Happy to discuss this further! send me and @spinkney a PM and we can sort out a time to chat.

Yes I think we can follow a more Bayesian approach here, check out this thread where @spinkney goes over that a bit. I believe what we want at the Stan level is code with something like

data {
int N;
vector[N] x;
}

parameters {
real mu;
real<lower=0> sigma;
real gamma;
}

transformed parameters {
  // Skew example for simplicity
  // lambert_transform skew has signature
  // f(distribution, Data, distribution_params, lambert_skew_params)
  vector[N] x_gauss = lambert_transform_skew(normal_lpdf, x, mu, sigma, gamma);
}

model {
  // Whatever modeling a user wants to do on the gaussianized data
  x_gauss ~ std_normal();
}

generated quantities {
  // make predictions and degauss them
  vector[N] x_pred_gauss = normal_rng(N, 0 ,1);
  vector[N} x_pred = lambert_untransform_skew(normal_lpdf, x_pred_gauss, mu, sigma, gamma);
}

Where we use the distribution type to infer the transform for that particular distribution. Sean may have other schemes / ideas.

4 Likes