我知道我可以在采样期间计算每个样本的对数似然,例如
...
model {
for (i in 1:N) {
(y[i] - 1) ~ bernoulli(p[i, 2]);
}
}
generated quantities {
vector[N] log_lik;
for (i in 1:N){
log_lik[i] = bernoulli_lpmf((y[i] - 1) | p[i, 2]);
}
}
loo
拟合后,我可以使用包提取对数似然性:
log_lik_m <- extract_log_lik(stan_fit)
但我想评估未见数据的对数可能性。这在 brms 中是可能的:
ll <- log_lik(fit_star, newdata = new_df)
但我想用 来做到这一点rstan
,因为我不能轻易地在 brms 中定义我的模型(我假设)。
作为参考,我正在尝试使用 Estimated LFO-CV 来评估和比较我的时间序列模型。(例如https://github.com/paul-buerkner/LFO-CV-paper/blob/master/sim_functions.R#L186)