brms模型未收敛

问题描述 投票:0回答:1

我有这个brms模型

library(brms)
library(dplyr)
x = rep( c(-20:20,-20:20), 5)
y = c(x[1:41]^2, (x[42:82]+5)^2)
group = c(rep("A",41), rep("B",41) )
data = data.frame( x= x, y = y , group = group)
f = brm(y~ gp(x, cov ="exp_quad") +(1|group), data = data, control = list( adapt_delta = .95) )
f

并且该模型不适合。我收到此错误

Warning messages:
1: The model has not converged (some Rhats are > 1.1). Do not analyse the results! 
We recommend running more iterations and/or setting stronger priors. 
2: There were 1644 divergent transitions after warmup. Increasing adapt_delta above 0.95 may help.
See http://mc-stan.org/misc/warnings.html#divergent-transitions-after-warmup 

任何想法如何使它适合?

r nonlinear-optimization non-linear-regression stan
1个回答
0
投票

Brian很可能是正确的,您创建了一些没有任何差异的测试数据。例如,假设这是一个玩具数据集,并且您正在使用真实数据集,则需要遵循警告消息中的指示。我会尝试通过在这里所做的更改致电brm:f = brm(y~ gp(x, cov ="exp_quad") + (1|group), data = data, control = list( adapt_delta = .99), iter = 6000)

adapt_delta始终是介于0和1之间的值,因此,如果收到警告消息,需要将其设置为大于0.99,则可以尝试0.999。您没有在调用中指定迭代次数,因此它使用默认值,我相信它是2000。我已经增加了三倍。另外,如果您的计算机上有多个内核,则应在通话中设置cores = 4,以便每个链都可以在自己的内核上运行。

© www.soinside.com 2019 - 2024. All rights reserved.