R中MCMCglmm模型的Gelman-Rubin统计量
我有一个(近似)形式的多元模型: 但是,我得到了这个错误:R中MCMCglmm模型的Gelman-Rubin统计量,r,mcmc,R,Mcmc,我有一个(近似)形式的多元模型: 但是,我得到了这个错误: Error in mcmc.list(x) : Arguments must be mcmc objects 对正确的方法有什么建议吗?我假设该错误意味着我无法通过gelman.diag()传递我的mod.1输出,但我不确定应该放在那里的是什么?我的知识在这里是非常有限的,所以我将感谢任何和所有的帮助 注意,我没有在这里添加数据,但我怀疑答案更多的是代码语法,而不是数据相关。gelman.diag需要一个mcmc.list。如果我们使
Error in mcmc.list(x) : Arguments must be mcmc objects
对正确的方法有什么建议吗?我假设该错误意味着我无法通过gelman.diag()
传递我的mod.1
输出,但我不确定应该放在那里的是什么?我的知识在这里是非常有限的,所以我将感谢任何和所有的帮助
注意,我没有在这里添加数据,但我怀疑答案更多的是代码语法,而不是数据相关。gelman.diag需要一个
mcmc.list
。如果我们使用不同的参数集运行模型,则提取“Sol”并将其放置在列表中(以下为同一模型)
库(MCMCglmm)
model1如果我只运行1MCMCglmm()
model,那么只运行:mclist@BlunderingEcologist是不是不好的做法根据文档,它清楚地提到了输入x
-一个包含多个链的mcmc.list对象,对于后验分布而言,初始值分布过度。
@BlunderingCologist可能要求运行多个链来检查收敛性我对文档的理解有点太深了。您的后续评论可能是(比如运行第二个模型,使用不同的nitt
、burnin
、和thin
?)值。您需要使用不同的起始参数值运行多个链,以便Gelman-Rubin诊断具有任何意义(更改老化/迭代次数等是无关的)。MCMCglmm确实有一个start
参数,因此这应该是可行的(但您必须找出/决定什么范围的起始值对您的问题是合理的)。
gelman.diag(mod.1)
Error in mcmc.list(x) : Arguments must be mcmc objects
library(MCMCglmm)
model1 <- MCMCglmm(PO~1, random=~FSfamily, data=PlodiaPO, verbose=FALSE,
nitt=1300, burnin=300, thin=1)
model2 <- MCMCglmm(PO~1, random=~FSfamily, data=PlodiaPO, verbose=FALSE,
nitt=1300, burnin=300, thin=1 )
mclist <- mcmc.list(model1$Sol, model2$Sol)
gelman.diag(mclist)
# gelman.diag(mclist)
#Potential scale reduction factors:
# Point est. Upper C.I.
#(Intercept) 1 1