Especificando vários efeitos aleatórios (separados) no lme [fechado]

25

Eu estava trabalhando nos pacotes R nlme e lme4 , tentando especificar os modelos com vários efeitos aleatórios. Descobri que apenas o nlme permite especificar a estrutura heterogênea da variação. Portanto, eu tenho um modelo, onde a temperatura (Y) depende do tempo (em horas), a interceptação varia por data e ano e a variação também varia por ano:

fit1 <- lme(Y ~ time, random=~1|year/date, data=X, weights=varIdent(form=~1|year))

No entanto, se eu precisar adicionar outro termo aleatório (horário variando por data) e especificar o modelo assim:

fit2 <- lme(Y ~ time, random=list(~1|year, ~time-1|date,  ~1|date), data=X, 
            weights=varIdent(form=~1|year))

os efeitos aleatórios ficam aninhados um no outro: data no ano; e depois data na data e no ano.

Eu também tentei

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))

mas dá um erro:

Error in pdConstruct.pdBlocked(object, form = form, nam = nam, data = data,  :
  cannot have duplicated column names in a "pdMat" object

Entendo que já existem muitas perguntas relacionadas ao problema semelhante, mas realmente não encontrei a resposta para o meu caso. Você poderia me ajudar com a especificação correta do modelo?

Slava
fonte

Respostas:

30

Depois de muitas lutas, encontrei uma solução para o meu problema, que estou postando aqui, caso alguém tenha perguntas semelhantes:

fit <- lme(Y ~ time, random=list(year=~1, date=~time), data=X, weights=varIdent(form=~1|year))
Slava
fonte