Вказання декількох (окремих) випадкових ефектів в lme [закрито]


25

Я працював у 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

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

Відповіді:


30

Після багатьох проблем я знайшов рішення для своєї проблеми, яке я публікую тут, якщо у когось виникнуть подібні запитання:

fit <- lme(Y ~ time, random=list(year=~1, date=~time), data=X, weights=varIdent(form=~1|year))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.