У меня есть панель продольных данных.Я знаю, что некоторые переменные должны быть линейными по отношению к моей цели моделирования, и, по сути, я надеюсь использовать только случайные перехваты в качестве случайных эффектов для каждой группы.Тем не менее, моя проблема заключается в сложности объединения линейных и нелинейных членов в 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.Любая помощь приветствуется.