Как перевести этот код lme (nlme) в lmer (lme4)? - PullRequest
0 голосов
/ 19 апреля 2019

Я подгоняю полупараметрическую модель, используя функцию lme в пакете nlme.У меня проблемы с переводом на lmer (nlme4).

Основная проблема с моим кодом заключается в том, что я полагаюсь на pdIdent и pdSymm в спецификации моих случайных эффектов.Я не могу найти, как перевести это в код для lmer.

Мой код nlme ниже.Z.spline представляет собой основную матрицу сплайна 25 x 25, а индикатор - это столбец 1. Мои данные (dat2) представлены в длинном формате, где у каждого человека есть 25 наблюдений.frac - это переменная в диапазоне от 1 до 5, которая упорядочивает наблюдения.rs445925 - это SNP, факторная переменная, принимающая 3 значения.density непрерывно.

Z.spline<-outer(frac,knots,"-")
Z.spline<-Z.spline*(Z.spline>0) 
dat2$Z.spline <- do.call(rbind, replicate(n, Z.spline, simplify=FALSE)) 

fit <-lme(density~ frac * rs445925,
      random=list(indic=pdIdent(~Z.spline-1),FID=pdSymm(~1)),
      data=dat2,method="ML",control=lmeControl(returnObject=TRUE))

Я думаю, что первая часть модели будет переведена в lmer-код следующим образом:

fit2 <- lmer(density ~ frac * rs445925 + (1|FID) + ....

Часть pdIdent модели, которая содержит основу сплайна, дает мне головные боли,Я не могу перевести его в код lmer.

...