我开始探索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)发布于 2016-12-30 13:37:24
你的问题在rstanarm框架中不是那么容易回答的,因为它只提供了有限的选择。
使用原始先验与来自第一阶段和第二阶段的总数据相结合来获得后验分布(基本上忽略了第一阶段之后的中间后验分布)是完全有效的。或者,您可以按照阶段I中的建议进行操作,然后调用draws <- as.matrix(fit1) mu <- colMeans(draws) Sigma <- cov(mu)并使用这些(估计的) mu和Sigma值作为多变量正态先验中的超参数,而不是阶段II中的系数。不幸的是,rstanarm不支持这样的先验,因此您需要用stan语言编写自己的模型,其中包含伯努利似然、logit链接和多变量正态先验,或者我认为您可以使用brms包中的brm函数来完成所有这些操作,该函数从R语法生成Stan代码并从相应的后验分布中提取。
从概念上讲,这两种方法在第二阶段之后应该给出相同的后验分布。但是,对于有限数量的后验绘制,它们在数值上会略有不同,并且多变量正态先验可能不是对第一阶段之后获得的后验分布的完整描述。
https://stackoverflow.com/questions/41361313
复制相似问题