我正在使用R软件包nlme和lme4进行工作,试图指定具有多个随机效果的模型。我发现,只有nlme允许指定方差的异质结构。因此,我得到一个模型,其中温度(Y)取决于时间(以小时为单位),截距随日期和年份而变化,方差也随年份而变化:
fit1 <- lme(Y ~ time, random=~1|year/date, data=X, weights=varIdent(form=~1|year))
但是,如果我需要添加另一个随机项(时间随日期变化),并指定模型,如下所示:
fit2 <- lme(Y ~ time, random=list(~1|year, ~time-1|date, ~1|date), data=X,
weights=varIdent(form=~1|year))
随机效果相互嵌套:日期,年份;然后以日期和年份为日期。
我也试过
one <- rep(1, length(Y))
fit3 <- lme(Y ~ time, random=list(one=pdBlocked(list(pdSymm(~1|year/date),
pdSymm(~time-1|year)))), data=X, weights=varIdent(form=~1|year))
但它给出了一个错误:
Error in pdConstruct.pdBlocked(object, form = form, nam = nam, data = data, :
cannot have duplicated column names in a "pdMat" object
我了解已经有许多与类似问题相关的问题,但我确实没有找到适合我的情况的答案。您能为我提供正确的模型规格吗?