lme에서 여러 개의 (임의의) 랜덤 효과 지정하기 [닫기]


25

R 패키지 nlmelme4 에서 여러 랜덤 효과가있는 모델을 지정하려고했습니다. 나는 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))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.