首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨多个MCMCglmm模型的模型DICs比较

跨多个MCMCglmm模型的模型DICs比较
EN

Stack Overflow用户
提问于 2014-09-29 21:09:16
回答 1查看 2.3K关注 0票数 0

因此,我正在寻找一种快速的方法来从R中的MCMCglmm模型中创建一个DIC分数表,我运行了10个不同的模型,可以使用以下代码分别从每个模型中提取DIC,其中模型称为m1:

代码语言:javascript
复制
    m1.DIC <- m1$DIC

但是,我必须对每个模型这样做,然后创建数据,这是乏味的。我已经查看了MCMCglmm包的文档,没有发现任何提示,说明我是否可以通过一些内置函数获得跨模型的快速摘要。有一个吗?还有别的包裹能做到这一点吗?我知道rethinking包使用compare进行快速和简单的模型比较,但这似乎不适用于MCMCglmm输出,因为我得到了以下错误消息:

代码语言:javascript
复制
    > 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包一起工作的表单中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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")

祝好运!

最佳人选禤浩焯

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26108955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档