我想在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)
但是产生的警告是观察结果少于随机效应(我的数据不应该如此),所以我认为语法没有达到我想要的效果。
我想一个简单的选择可能是创建一个ran3的版本,该版本必须嵌套在ran2中,即ran3的每个级别仅出现在ran2的单个级别中。这会使gamm
识别嵌套结构吗?