I need posterior samples of log likelihood terms to run PSIS here such that
log_lik : ndarray
Array of size n x m containing n posterior samples of the log likelihood
terms :math:`p(y_i|\theta^s)`.
where small example here is such that pip install pystan
and
import pystan
schools_code = """
data {
int<lower=0> J; // number of schools
real y[J]; // estimated treatment effects
real<lower=0> sigma[J]; // s.e. of effect estimates
}
parameters {
real mu;
real<lower=0> tau;
real eta[J];
}
transformed parameters {
real theta[J];
for (j in 1:J)
theta[j] = mu + tau * eta[j];
}
model {
eta ~ normal(0, 1);
y ~ normal(theta, sigma);
}
"""
schools_dat = {'J': 8,
'y': [28, 8, -3, 7, -1, 1, 18, 12],
'sigma': [15, 10, 16, 11, 9, 11, 10, 18]}
sm = pystan.StanModel(model_code=schools_code)
fit = sm.sampling(data=schools_dat, iter=1000, chains=4)
How can I get the posterior samples of Log Likelihood of the PyStan fit model?
You can get the posterior samples of Log-Likelihood by doing: logp = fit.extract()['lp__']