Evaluating the log posterior for a particular paramter value

Hello

Is there any way of seeing what my program evaluates the log posterior to for a given value of the parameters? (ideally with print out of intermediate values of target) I call program from rstan.

Thanks

Jonathan

1 Like

RStan has log_prob function that can evaluate the target at any point. Printing intermediate values is only possible with print() statements in the model.
log_prob takes input on the unconstrained parameters so you’d call it something like

u <- unconstrain_pars(fit, list(x=...,y=...))
lp <- log_prob(fit, u)

You need a stanfit object first. The fasted way to create one is

fit <- stan(file=..., data=..., algorithm="Fixed_param", iter=1, chains=1)
3 Likes

@Jonathan_Myles welcome to the Stan forums!

In addition to @nhuurre’s suggestions (print statements or rstan::log_prob()) there’s one other option I can think of. You could define a function in the functions block that computes the target and then expose it to R and test it out for different parameter values using rstan::expose_stan_functions().

1 Like

Thank you both very much for your help. I will try out both solutions (when I’ve got my around constrained/unconstrined parameters)

Jonathan

I think you only really need to worry about that if going the rstan::unconstrain_pars route. If you code up a function in Stan and then expose it to R you can input parameters how you regularly would.