Я працював у 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
Я розумію, що вже було багато питань, пов’язаних із подібною проблемою, але я справді не знайшов відповіді для своєї справи. Не могли б ви допомогти мені з правильною специфікацією моделі?