2

我不确定我的结果是否可信。

假设我用信息丰富的先验拟合了这个模型:

library(rstanarm)
data <- iris[, c("Sepal.Length", "Petal.Width")]
model1 <- stan_glm(Sepal.Length ~ Petal.Width, data=iris, prior=normal(2, 3, autoscale=FALSE))

然后,我想用标准化数据更新模型,看看标准化如何改变系数。

model2 <- update(model1, data=as.data.frame(scale(iris)))

但是,我担心模型 2 的结果不能被“信任”,因为它们考虑到模型 1 的非标准化先验设置,它们可能是错误的(即不必要的)偏见。

有没有办法“标准化”先验,以便我可以将它们传递给update函数,以便 model1 的先验集比照后等同于 model2 中的先验集?

注意:由于我分析的性质,我无法避免使用update.

非常感谢!

4

1 回答 1

1

如果您最初指定autoscale = FALSE何时调用normal或其他一些先验函数,然后尝试update使用不同或转换的数据,我怀疑先验的规模会在第二次正确校准。但是,如果您指定autoscale = TRUE,那么它本质上会在内部将先验缩放为标准化单位,在这种情况下,使用新数据进行更新会很好,尽管内部重新缩放会有所不同。

于 2019-04-11T02:34:47.243 回答