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?
fuente