【问题标题】:Dredge on GAM returns NA results for logLik, AICc, delta and weightGAM 上的 Dredge 返回 logLik、AICc、delta 和 weight 的 NA 结果
【发布时间】:2023-03-24 06:58:01
【问题描述】:

我有一个具有两个平滑项和两个随机效应的全局模型。

mRI_qb <- gam(ri ~ SE_score + s(deg, k=7) + s(gs, k=7) + TL + species + sex + season + year + 
                s(code, bs = 're') + s(station, bs = 're'), 
              family=quasibinomial(), data=node_dat, na.action = "na.fail")

我在 MuMIn 上运行了疏通功能,速度非常慢,即使使用 pdredge 功能也是如此。

# RI dredge very slow so using parallel processing
library (parallel)
library (snow)

#make cluster - use 5 because have 6 cores, need one for other tasks
mycluster = makeCluster(5, type = "SOCK")  ## also need snow installed

#data must exported to the cluster - see 'details' https://rdrr.io/cran/MuMIn/man/pdredge.html
clusterExport(mycluster,"node_dat")

#required packages must be also loaded there
clusterEvalQ(mycluster, library(mgcv))
RI_dredge <- MuMIn::pdredge(mRI_qb, mycluster)

然而,8天后它终于完成了。但是我只有 logLik、AICc、delta 和 weight 列的 NA。

我似乎无法找到挖泥机为这些列输出 NA 的原因,尤其是在模型运行良好且没有错误的情况下。

可以找到数据集的副本here

【问题讨论】:

    标签: r na gam mumin


    【解决方案1】:

    这是因为您使用了quasibinomial 系列,它没有给出对数似然,因此无法计算 AIC。您可以尝试bam 而不是gam,因为这是一个非常大的数据集。

    【讨论】:

    • Thant 非常感谢,当时没有意识到这一点。是的,我在发布后意识到速度将取决于使用 gam 而不是 bam。
    • 这是比例数据,所以负二项式仍然合适吗?我尝试将 betar 作为分布,但收到多个警告“在估计中。 p) + crossprod(S2 %*% t(R2))) : 62 阶的主要次要不是正定的”,所以我猜这可能不适合这个数据集。
    • 抱歉,我匆忙回复并将其与“quasipoisson”混淆(我已编辑我的回复删除该建议)。如果响应是 (0,1),betar 在理论上是合适的。你可以从一个简单的模型开始,然后增加复杂性,看看哪里出了问题。
    猜你喜欢
    • 2023-02-17
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多