我不确定我的结果是否可以信任。
假设我为模型提供了丰富的先验知识
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的先验集比照适用于。型号2?
注意:由于我的分析性质,我无法避免使用update
。
非常感谢!
答案 0 :(得分:1)
如果您最初在调用autoscale = FALSE
或其他某个先验函数时指定normal
,然后尝试使用不同或转换后的数据update
,那么我怀疑先验的规模是否会第二次正确校准。但是,如果指定autoscale = TRUE
,则本质上它会在内部将先验缩放为标准单位,在这种情况下,尽管内部重新缩放会有所不同,但使用新数据进行更新就可以了。