首页 > 解决方案 > 在 R 中使用 gamm 或 lme 嵌套随机效果的语法

问题描述

我想将三个随机效果拟合到 R 中的 gamm 中,包括嵌套在另一个中的一个。

对于独立随机效应,包gamm中的函数mgcv允许使用来自 的列表语法来指定随机效应lme,即:

model<- gamm(y~s(x), random = list(ran1=~1,ran2=~1), data=data)

这工作正常。但是,我希望将“ran2”嵌套在第三个变量“ran3”中。我似乎找不到任何示例,gamm或者lme显示如何在列表语法中嵌套随机效果。

这些都不起作用:

model<- gamm(y~s(x), random = list(ran1=~1,ran2/ran3=~1), data=data) #error unexpected '='
model<- gamm(y~s(x), random = list(~1|ran1,~1|ran2/ran3), data=data) #error must be a named list

这运行:

model<- gamm(y~s(x), random = list(ran1=~1,ran3=~ran2), data=data)

但会产生关于观察次数少于随机效应的警告(我的数据不应该是这种情况),所以我认为语法没有达到我想要的效果。

我想一个简单的选择可能是创建一个强制嵌套在ran2 中的ran3 版本,即ran3 的每个级别只出现在ran2 的一个级别中。那会gamm识别嵌套结构吗?

标签: rmixed-modelsgam

解决方案


推荐阅读