【问题标题】:R: programming nested random effect in gamm (gamcova)R:在 gamm (gamcova) 中编程嵌套随机效应
【发布时间】:2020-06-30 07:39:40
【问题描述】:

我正在尝试使用 mgcv::gamm 函数在 R 中执行嵌套随机效果。具体来说,这个函数应该是 ANCOVA 到 GAMM 的扩展,产生了 GAMMCOVA。

随机效应的推理:整个数据集由多个先前分离的数据集组成。此外,单个 siteID 会在任何地方临时复制 3-40 次。更重要的是,一些 siteID 被复制到不同的 datasetID 中。

gamm(response ~ 
s(predictor1,bs="cr") + 
s(predictor2,bs="cr") + 
bs(covariate,degree=3,df=4), # covariate that makes this a gammcova
random=list(datasetID=~1, siteID=~1), # this works but is not nested
select=T, method="REML",
family=quasibinomial(link="logit"))

我也用random=~(1|datasetID/siteID) 尝试过这个,但这返回了一个错误

Error in mgcv::gamm(ci_est ~ s(predictor1, bs = "cr") + s(predictor2, bs = "cr") +  : 
  gamm() can only handle random effects defined as named lists

我知道s(siteID,datasetID,bs="re") 对于数据样本大小而言系数太多。但是,我不认为这是指定嵌套随机效果,对吗?

Error in lme.formula(fixed = fixed, random = random, data = data, correlation = correlation,  : 
  fewer observations than random effects in all level 6 groups

那么,有没有办法在 mgcv::gamm 中指定嵌套的随机效应?

【问题讨论】:

  • 但是我有他们在自己的评论中说“所以这不能回答 mgcv 的问题,但可能会帮助任何不介意转向 gamm4 的人”。我绝对想坚持使用 mgcv
  • gamm4 包是 mgcv 的作者编写的,使用 mgcv 函数来设置 GAMM,但是拟合是通过 lme4 包完成的,这对于拟合非高斯 GAMM 来说要好得多。这里是否有一些原因没有说明为什么你要坚持使用 PQL 通过glmmPQL()lme() 来拟合 GAMM?
  • 不是一个非常重要的,但我一直在玩 caret::varimp 函数,它不适用于我发现的 gamm。

标签: r gam mgcv random-effects ancova


【解决方案1】:

我找到了这个https://thepsychologist.bps.org.uk/volume-21/edition-3/methods

据说,这是在游戏中包含协变量的代码。

s(x,m=3,k=6,bs="ps",fx=T)

【讨论】:

    猜你喜欢
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2021-04-04
    相关资源
    最近更新 更多