0

我有一个stanfit调用fit返回的对象rstan::stan(...)来推断参数theta。我现在可以theta使用 eg进行分析rstan::summary(fit, pars="theta")

后来我意识到我对推断 的平方更感兴趣theta。我应该transformed parameters在 STAN 模型中包含一个块以theta_squared作为参数包含在输出中。

是否可以将转换后的参数添加theta_squared <- theta^2到现有stanfit对象中,就好像它是在一个transformed parameters块中计算的一样?

4

2 回答 2

2

我不知道您是否可以(或应该)手动向 stanfit 对象添加参数。至少您可以通过 获得 MCMC 样本as.data.frame(fit),然后随心所欲地使用它,包括定义theta^2.

于 2016-03-18T11:28:34.790 回答
1

您可以使用 ShinyStan 获得许多相同的图表(rhat、ac 等),它确实允许您添加这样的数量(如果它是标量)。例如,

library("shinystan")
# create shinystan object (sso)
sso <- as.shinystan(fit)
# add theta_squared to sso
sso <- generate_quantity(sso, fun = function(x) x^2, 
                         param1 = "theta", new_name = "theta_squared")
# launch the shinystan interface
launch_shinystan(sso)
于 2016-04-30T02:02:46.743 回答