使用readRDS加载Stan模型输出时出错

ovfsdjhp  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(143)

我在Stan中运行贝叶斯隐变量模型。下面是我的模型代码:

# run the Stan model 
mod.dyn <- stan(file="DynamicLVMmin.stan",
                data=stan.data, seed=570175513, thin = 5,
                iter=10000)

模型运行时没有任何问题。然后我保存mod.dyn,如下所示:

# save stan fit 
saveRDS(mod.dyn, "dynamic_fit.rds")

现在我正在阅读dynamic_fit.rds,我想使用Gelman-Rubin R-hat诊断评估模型收敛性,代码如下:

readRDS("dynamic_fit.rds")


params <- c("innov", "c_n_4_v2exdfdshs", "c_n_5_v2exdfvths", "c_n_3_v2exdfpphs", "c_n_5_v2lginvstp", 
            "c_n_3_v2lgoppart", "c_n_2_v2lgfunds", "c_n_4_v2lgcomslo", "c_n_2_v2lgintbup", "c_n_2_v2lgintblo", 
            paste("beta[", 1:9, "]", sep=""))

params.all <- names(mod.dyn)

但是,我收到以下错误:

Error: object 'mod.dyn' not found
Execution halted

我错过了什么?当我使用saveRDS(mod.dyn, "dynamic_fit.rds")时,mod.dyn不应该被保存吗?任何反馈都将受到欢迎。

42fyovps

42fyovps1#

readRDS保存了一个没有名称的对象。

mod.dyn <- readRDS("dynamic_fit.rds")

在读入值后捕获该值。这与save()/load()不同,save()/load()以序列化格式存储一个或多个变量及其名称+值。

save(mod.dyn, file="dynamic_fit.rdata")

那么

load("dynamic_fit.rdata")

对象mod.dyn将被加载回您的工作区。

相关问题