因此,我正在寻找一种快速的方法来从R中的MCMCglmm模型中创建一个DIC分数表,我运行了10个不同的模型,可以使用以下代码分别从每个模型中提取DIC,其中模型称为m1:
m1.DIC <- m1$DIC但是,我必须对每个模型这样做,然后创建数据,这是乏味的。我已经查看了MCMCglmm包的文档,没有发现任何提示,说明我是否可以通过一些内置函数获得跨模型的快速摘要。有一个吗?还有别的包裹能做到这一点吗?我知道rethinking包使用compare进行快速和简单的模型比较,但这似乎不适用于MCMCglmm输出,因为我得到了以下错误消息:
> compare(m1, m2, WAIC=FALSE)
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "MCMCglmm"
In addition: Warning message:
In DIC(z, n = n) :
No specific DIC method for object of class MCMCglmm. Returning AIC instead. applied to an object of class "MCMCglmm"有类似的方法可以用来比较MCMCglmm模型吗?
编辑:还请注意,compare函数在rethinking中计算模型的权重,从DIC。也许这只是不存在于与MCMCglmm包一起工作的表单中。
发布于 2015-07-17 20:50:25
如果您想从零开始生成和比较可能的模型列表,可以使用MuMIn包http://cran.at.r-project.org/web/packages/MuMIn/MuMIn.pdf中的疏浚函数,它支持MCMCglmm对象。
首先,您需要使MCMCglmm调用可更新(以便疏浚可以更改模型组合):MCMCglmm.updateable<- updateable(MCMCglmm)。然后可以运行全局模型: global.model<- MCMCglmm.updateable(y~x1+...etc)。然后,对挖掘的调用将类似于dredge.MCMCglmm<- dredge(global.model,rank="DIC“.)你也可以得到标准化系数和调整R^2。
如果您已经有了一个适合的模型列表,您可以使用model.sel (在同一个包中)生成一个具有模型权重等的排序表: model.sel(model1,model2,model3,rank="DIC")
祝好运!
最佳人选禤浩焯
https://stackoverflow.com/questions/26108955
复制相似问题