Stavo lavorando nei pacchetti R nlme e lme4 , cercando di specificare i modelli con molteplici effetti casuali. Ho scoperto che solo nlme consente di specificare la struttura eterogenea della varianza. Pertanto, ho ottenuto un modello in cui la temperatura (Y) dipende dal tempo (in ore), l'intercettazione varia in base alla data e all'anno e anche la varianza varia in base all'anno:
fit1 <- lme(Y ~ time, random=~1|year/date, data=X, weights=varIdent(form=~1|year))
Tuttavia, se devo aggiungere un altro termine casuale (il tempo varia in base alla data) e specificare il modello in questo modo:
fit2 <- lme(Y ~ time, random=list(~1|year, ~time-1|date, ~1|date), data=X,
weights=varIdent(form=~1|year))
gli effetti casuali si annidano l'uno nell'altro: data nell'anno; e quindi data in data e in anno.
Ho anche provato
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))
ma dà un errore:
Error in pdConstruct.pdBlocked(object, form = form, nam = nam, data = data, :
cannot have duplicated column names in a "pdMat" object
Capisco che ci sono già state molte domande relative al problema simile, ma in realtà non ho trovato la risposta al mio caso. Potresti aiutarmi con le giuste specifiche del modello?