Добавление преобразованного параметра в объект stanfit
У меня есть stanfit
объект называется fit
вернулся rstan::stan(...)
выводить параметр theta
, Теперь я могу анализировать theta
используя, например, rstan::summary(fit, pars="theta")
,
Позже я понял, что меня больше интересует вывод о квадрате theta
, Я должен был включить transformed parameters
блок в модели STAN для включения theta_squared
в качестве параметра на выходе.
Можно ли добавить преобразованный параметр theta_squared <- theta^2
к существующему stanfit
объект, как если бы он был рассчитан в transformed parameters
блок?
2 ответа
Я не знаю, можете ли вы (или должны) добавить параметр в объект stanfit вручную. По крайней мере, вы можете получить образцы MCMC по as.data.frame(fit)
, а затем играть с ним, как вы хотите, в том числе определение theta^2
,
Вы можете получить много тех же графиков (rhat, ac и т. Д.), Используя ShinyStan, который позволяет вам добавить такое количество (если это скаляр). Например,
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)