Mehrere (separate) zufällige Effekte in lme angeben [closed]

25

Ich arbeitete in R-Paketen nlme und lme4 und versuchte, die Modelle mit mehreren zufälligen Effekten zu spezifizieren. Ich fand heraus, dass nur mit nlme die heterogene Struktur der Varianz spezifiziert werden kann. Deshalb habe ich ein Modell bekommen, bei dem die Temperatur (Y) von der Zeit (in Stunden) abhängt, der Achsenabschnitt nach Datum und Jahr variiert und die Abweichung auch nach Jahr variiert:

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

Wenn ich jedoch einen anderen zufälligen Begriff hinzufügen muss (Zeit variiert je nach Datum) und das Modell wie folgt angeben:

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

die zufälligen Effekte sind ineinander verschachtelt: Datum im Jahr; und dann Datum in Datum und in Jahr.

Ich habe es auch versucht

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

aber es gibt einen Fehler:

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

Ich verstehe, dass es bereits viele Fragen im Zusammenhang mit dem ähnlichen Problem gab, aber ich habe wirklich keine Antwort für meinen Fall gefunden. Könnten Sie mir mit der richtigen Spezifikation des Modells helfen?

Slava
quelle

Antworten:

30

Nach vielen Kämpfen habe ich eine Lösung für mein Problem gefunden, die ich hier poste, falls jemand ähnliche Fragen haben sollte:

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