【问题标题】:Dredge on an unmarked occupancy model (R MuMIn)挖掘无标记入住模型 (R MuMIn)
【发布时间】:2018-12-26 16:10:59
【问题描述】:

我正在疏浚一个未标记的入住模型并遇到了一些障碍:

1)在第一次疏通模型的检测组件后,我尝试用之前为检测组件选择的固定预测因子子集来疏通模型的占用率组件,如下所示:

global_occ <-occu( ~ Freq + I(Freq^2) + n  +mean_tree_d9 + mean_tree_kurt  ~ C1 + C2 + C3 + C4 + S1 + S2 + S3 + S4 + Hour + I(Hour^2) + Deg_class + Freq_fire + age + Freq + mean_tree_d9 + mean_tree_d4 + mean_tree_d2 + mean_shrub_stdev + mean_tree_kurt + mean_tree_mad, umf_all)

system.time(dredge_occ<-pdredge(global_occ, rank=AIC, m.max=5, cluster=clust, fixed=`p(Freq)`&`p(I(Freq^2))`&`p(n)`&`p(mean_tree_d9)`&`p(mean_tree_kurt)`))


> dredge_occ

Global model call: occu(formula = ~Freq + I(Freq^2) + n + mean_tree_d9 + mean_tree_kurt ~ 
    C1 + C2 + C3 + C4 + S1 + S2 + S3 + S4 + Hour + I(Hour^2) + 
        Deg_class + Freq_fire + age + Freq + mean_tree_d9 + mean_tree_d4 + 
        mean_tree_d2 + mean_shrub_stdev + mean_tree_kurt + mean_tree_mad, data = umf_all)
---
Model selection table 
   p(Int) psi(Int) p(Frq) p(I(Frq^2)) p(men_tre_d9) p(men_tre_krt)    p(n) df    logLik     AIC delta weight
31  -8.68    -1.93 -8.518      -2.439       -0.2369        -0.2295 0.07039  7 -9664.791 19343.6     0      1
Models ranked by AIC(x) 

更新:我尝试在下面使用 Kamil 的解决方案,但它不起作用,因为“m.max”参数对任何单个模型的最大变量数施加了通用约束(跨 p 和 psi 分量),因此不允许拟合任何 psi 协变量...

【问题讨论】:

    标签: r mumin unmarked-package


    【解决方案1】:

    ?dredge 说:fixed 是“单面 formula 或给出术语名称的字符向量”。在您的情况下,它是一个表达式(适合作为 subset 参数)。因此,您的代码应为: pdredge(global_occ, rank=AIC, m.max=5, cluster=clust, fixed=c("p(Freq)", "p(I(Freq^2))", "p(n)", "p(mean_tree_d9)", "p(mean_tree_kurt)"))

    【讨论】:

    • 一个后续问题:如果我想要更复杂的子集规则,我的理解是我必须使用“子集”而不是“固定”;但是,我不清楚以下几点:假设我希望在所有模型中都使用“p(Freq)”,但是,当出现“psi(C1)”和“psi(S2)”时,我希望它们一起出现.如何结合这两个公式?我知道以下是不正确的,因为我不想将 C1 和 S1 修复到 psi 组件,但我只想确保它们在出现时一起出现。太感谢了。 pdredge(global_occ, cluster=clust, subset=p(Freq)&psi(C1)&&psi(S1))
    • subset 就像术语名称是逻辑值一样工作(长度为 1,因此 &amp;&amp;&amp; 给出相同的结果),如果模型术语存在,则等于 TRUE。请参阅?Logic 以获取 R 中逻辑运算符的参考。
    • 谢谢,卡米尔。最后一个问题:你知道为什么 call tr​​ace > 1 似乎不适用于 pdredge 吗?它抛出一个错误。我希望能够使用进度条监控流程。
    • trace 不适用于pdredge,但在我的情况下它不会出错。修复它在我的 TODO 列表中,但不是真正的优先事项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多