Especificación de múltiples efectos aleatorios (separados) en lme [cerrado]

25

Estaba trabajando en los paquetes R nlme y lme4 , tratando de especificar los modelos con múltiples efectos aleatorios. Descubrí que solo nlme permite especificar la estructura heterogénea de la varianza. Por lo tanto, obtuve un modelo, donde la temperatura (Y) depende del tiempo (en horas), la intercepción varía según la fecha y el año, y la variación también varía según el año:

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

Sin embargo, si necesito agregar otro término aleatorio (tiempo que varía según la fecha) y especificar el modelo de esta manera:

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

los efectos aleatorios se anidan entre sí: fecha en año; y luego fecha en fecha y en año.

También intenté

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

pero da un error:

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

Entiendo que ya ha habido muchas preguntas relacionadas con el problema similar, pero realmente no encontré la respuesta para mi caso. ¿Podría ayudarme con la especificación correcta del modelo?

Slava
fuente

Respuestas:

30

Después de muchas dificultades, encontré una solución para mi problema, que estoy publicando aquí en caso de que alguien tenga preguntas similares:

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