2016-03-18 2 views
0

У меня есть объект stanfit с именем fit, возвращаемый rstan::stan(...), чтобы вывести параметр theta. Теперь я могу проанализировать theta, используя, например, rstan::summary(fit, pars="theta").Добавление преобразованного параметра для объекта stanfit

Позже я понял, что меня больше интересует вопрос о квадрате theta. Я должен был включить блок transformed parameters в модели STAN, чтобы включить theta_squared в качестве параметра на выходе.

Можно ли добавить преобразованный параметр theta_squared <- theta^2 в существующий объект stanfit, как если бы он был рассчитан в блоке transformed parameters?

+1

Мы надеемся добавить способ сделать это автоматически, запустив блок сгенерированных величин после рисования параметров; но это будет некоторое время, прежде чем это будет закодировано и выпущено. –

ответ

2

Я не знаю, можете ли вы (или должны) добавить параметр к объекту stanfit вручную. По крайней мере, вы можете получить образцы MCMC на as.data.frame(fit), а затем поиграть с ним, как вы пожелаете, включая определение theta^2.

+0

Спасибо за это. Я хотел бы иметь возможность использовать все функции rstan, такие как 'stan_rhat',' stan_ac' и т. Д. Для преобразованного параметра. Похоже, что это самый простой способ - добавить его в объект 'stanfit'. – sieste

1

Вы можете получить много тех же графиков (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) 
Смежные вопросы