Нелинейная модель смешанного эффекта с использованием пакета R nlme - PullRequest
0 голосов
/ 01 октября 2018

У меня есть панель продольных данных.Я знаю, что некоторые переменные должны быть линейными по отношению к моей цели моделирования, и, по сути, я надеюсь использовать только случайные перехваты в качестве случайных эффектов для каждой группы.Тем не менее, моя проблема заключается в сложности объединения линейных и нелинейных членов в nlme.

Вот пример данных:

library(nlme)
library(data.table)
library(lattice)

temp<- data.table(Group = rep("A",10),
              Age = c(1:10),
              Value = c(1/(1:10) + rnorm(10, mean = 0, sd = 0.05)) +
                seq(1, by = 0.4, length.out = 10),
              Var1 = seq(1, by = 0.4, length.out = 10)
              )

temp2<-data.table(Group = rep("B",10),
              Age = c(1:10),
              Value = c(1/(1:10) + rnorm(10, mean = 0, sd = 0.1)) +
                seq(1, by = -1, length.out = 10),
              Var1 = seq(1, by = -1, length.out = 10)
              )

temp3 <- rbindlist(list(temp, temp2))

xyplot(data = temp3, Value ~ Age| Group, type="l")

gdata <- groupedData(Value ~ Age | Group, data = temp3)

Если это модель линейного смешанного эффекта, она интуитивно понятна дляесть:

lme(data=gdata, Value ~ Age_function + Var1, random = ~1|Group)

но я бы хотел, чтобы там была нелинейная параметризованная кривая старения, использующая SSlogis.Вот как я пытался в R:

initVals <- getInitial(Value ~ SSlogis(Age, Asym, xmid, scal), data = gdata)

nm1 <- nlme(Value ~ SSlogis(Age, Asym, xmid, scal),
             data = gdata,
             fixed = Asym + xmid + scal ~ Var1,
             random = Asym + xmid + scal ~ 1|Group,
             start = initVals)

Очевидно, это дает мне ошибку:

Error in nlme.formula(Value ~ SSlogis(Age, Asym, xmid, scal), data = gdata,  : 
  starting values for the 'fixed' component are not the correct length

Я очень растерялся из-за того, как указать фиксированные и случайные эффекты в nlme.Любая помощь приветствуется.

...