R:在 gamm (gamcova) 中编程嵌套随机效应
R: programming nested random effect in gamm (gamcova)
我正在尝试使用 mgcv::gamm 函数在 R 中执行嵌套随机效应。具体来说,这个函数被认为是 ANCOVA 对 GAMM 的扩展,产生了 GAMMCOVA。
随机效应的推理:整个数据集由多个先前分离的数据集组成。此外,单个 siteID 会在任何地方临时复制 3-40 次。更重要的是,一些站点 ID 在不同的数据集 ID 中被复制。
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 中指定嵌套随机效应?
我找到了这个https://thepsychologist.bps.org.uk/volume-21/edition-3/methods
据推测,这是在 gam 中包含协变量的代码。
s(x,m=3,k=6,bs="ps",fx=T)
我正在尝试使用 mgcv::gamm 函数在 R 中执行嵌套随机效应。具体来说,这个函数被认为是 ANCOVA 对 GAMM 的扩展,产生了 GAMMCOVA。
随机效应的推理:整个数据集由多个先前分离的数据集组成。此外,单个 siteID 会在任何地方临时复制 3-40 次。更重要的是,一些站点 ID 在不同的数据集 ID 中被复制。
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 中指定嵌套随机效应?
我找到了这个https://thepsychologist.bps.org.uk/volume-21/edition-3/methods
据推测,这是在 gam 中包含协变量的代码。
s(x,m=3,k=6,bs="ps",fx=T)