BRM 模型编译但返回模型对象

BRM model compiling but returning model object

我正在使用 R 中的 BRMS 包构建分层模型,但无法成功拟合模型。当 运行 代码输出“Compiling Stan program...”时,运行大约五分钟,然后停止。没有其他消息或错误,但没有模型对象。

一些来自在线示例的可重现代码,但我认为这与代码无关,因为我的模型中出现了同样的问题,而这个问题是从教程中下载的。当运行以下代码时,唯一的控制台输出是:

Compiling Stan program...
> 
> summary(interceptonlymodeltest)
Error in summary(interceptonlymodeltest) : 
  object 'interceptonlymodeltest' not found


# Reproducible code
library(brms) # for the analysis
        library(haven) # to load the SPSS .sav file
        library(tidyverse) # needed for data manipulation.
        library(RColorBrewer) # needed for some extra colours in one of the graphs
        library(ggmcmc)
        library(ggthemes)
        library(ggridges)
        
        popular2data <- read_sav(file = "https://github.com/MultiLevelAnalysis/Datasets-third-edition-Multilevel-book/blob/master/chapter%202/popularity/SPSS/popular2.sav?raw=true")
        
        interceptonlymodeltest <- brm(popular ~ 1 + (1 | class), 
                                      data   = popular2data, 
                                      warmup = 100, 
                                      iter   = 200, 
                                      chains = 2, 
                                      inits  = "random",
                                      cores  = 2)  #the cores function tells STAN to make use of 2 CPU cores simultaneously instead of just 1.
        
        summary(interceptonlymodeltest)

我卸载并重新安装了 r 和 rtools,以及 brms 及其所有依赖项。 运行 find_rtools() 来自 devtools 包 returns 正确,据我所知,安装包的所有内容都已解决。

感谢任何帮助!

经过进一步挖掘,发现这是最新版本的 rstan (v 2.21.1) 中引入的错误,恢复到上一版本 (2.19.3) 已经为我解决了这个问题。

我刚刚尝试降级到 2.19.3(没有用),然后再次升级到上一个版本 (2.21.2)。它仍然没有用。 事实证明,在我的家庭论证中,添加 link = "identity" 使模型开始采样。 family = gaussian(link="identity") 最初,我的代码是 family = gaussian()。 阅读文档后,我了解到“默认情况下,应用线性高斯模型”(brm function documentation)。 所以我只是不再指定家庭。 但是,我仍然不明白为什么 family = gaussian() 不起作用。