0

我开始探索这个rstanarm包,并对这个包如何潜在地用于自适应试验场景感到好奇。小插图中给出的示例场景提供了 -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)
4

1 回答 1

1

您的问题在 rstanarm 框架内没有那么容易回答,因为它只为先验提供了有限的选择。

将您的原始先验与第一阶段和第二阶段的总数据结合使用以获得后验分布是完全有效的(基本上忽略了第一阶段之后的中间后验分布)。或者,您可以按照您在第一阶段的建议进行操作,然后调用 draws <- as.matrix(fit1) mu <- colMeans(draws) Sigma <- cov(mu) 并使用这些(估计的)muSigma值作为多变量正态先验中的超参数,而不是第二阶段的系数。不幸的是,rstanarm 不支持这样的先验,因此您需要使用 Stan 语言编写具有伯努利可能性、logit 链接和多元正态先验的模型,或者我认为您可以brm使用brms 包,它从 R 语法生成 Stan 代码并从相应的后验分布中提取。

从概念上讲,这两种方法都应该在第二阶段之后给你相同的后验分布。但是,由于后验次数有限,它们在数值上会有所不同,并且多元正态先验可能不是对您在第一阶段之后获得的后验分布的完整描述。

于 2016-12-30T05:37:23.857 回答