Я хочу подобрать модель линейного плато со случайными эффектами. Я нашел способ согласовать функцию с nls()
, но я не знаю, как включить случайные эффекты. Вот что у меня есть:
#create data
x=c(1:6,1:6)
y=c(10,21,27,35,33,35,9,20,28,32,30,31)
z=c("A","A","A","A","A","A","B","B","B","B","B","B")
df<-data.frame(x,y,z)
#create linear-plateau function
lp=function(x, a, b, c){
ifelse(x > c, a + b * c, a + b * x)
}
#fit the model without random effects
p10=nls(y ~ lp(x, a, b, c), data = df, start = list(a = 0, b = 15, c = 4))
plot(y~x)
lines(x=c(0, coef(p10)["c"],max(df$x)),
y=c(coef(p10)["a"],
(coef(p10)["a"] + coef(p10)["b"] * coef(p10)["c"]),
(coef(p10)["a"] + coef(p10)["b"] * coef(p10)["c"])),lty=2)
Я хочу включить z
в качестве случайного эффекта, поскольку все данные, собранные с одного и того же уровня z
, не являются независимыми.
Я знаю, как моделировать смешанные эффекты с помощью функции nlmer
из пакета lme4
, но я не знаю, как совместить с ней модель линейного плато.