rstanarm适用于自适应试验

时间:2016-12-28 11:38:20

标签: r bayesian rstan

我开始探索rstanarm软件包,并对这个软件包如何在自适应试用场景中使用感到好奇。 vignette中给出的示例场景提供-0.622的后验,可靠间隔从-0.69到-0.56。

当我从自适应试验获得额外数据时,如果我想将此后验作为我的下一个模型的先验,我的脚本会是什么样的?

# Code from vignette
t_prior <- student_t(df = 7, location = 0, scale = 2.5)
fit1 <- stan_glm(switch ~ dist100, data = wells, 
             family = binomial(link = "logit"), 
              prior = t_prior, prior_intercept = t_prior,  
              chains = 10, cores = 2, seed = 3245, iter = 100)

1 个答案:

答案 0 :(得分:1)

你的问题在rstanarm框架内并不那么容易回答,因为它只为先辈们提供了有限的选择。

使用您的原始先验,完成第一阶段和阶段II的总数据以获得后验分布(基本上忽略您在阶段I之后的中间后验分布)是完全有效的。或者,你可以按照你在第一阶段的建议做,然后打电话 draws <- as.matrix(fit1) mu <- colMeans(draws) Sigma <- cov(mu) 并使用这些(估计的)muSigma值作为多变量法线中的超参数,优先于阶段II中的系数。不幸的是,rstanarm不支持​​这样的先验,所以你需要在Stan语言中编写你自己的模型,其中包括Bernoulli似然,一个logit链接和一个多变量法线,或者我认为你可以使用{{{ 1}} brms包中的函数,它从R语法生成Stan代码并从相应的后验分布中绘制。

这两种方法在概念上应该在第二阶段后给你相同的后验分布。然而,对于有限数量的后抽取,它们在数值上略有不同,而多变量法线先验可能不是您在第一阶段后获得的后验分布的完整描述。