R 如何拟合具有混合效应的nls模型

R 如何拟合具有混合效应的nls模型,r,function,mixed-models,nls,nonlinear-functions,R,Function,Mixed Models,Nls,Nonlinear Functions,我想拟合一个具有随机效应的线性平台模型。我找到了一种方法使函数适合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=fun

我想拟合一个具有随机效应的线性平台模型。我找到了一种方法使函数适合
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)
#创建数据
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”、“A”、“B”、“B”、“B”、“B”、“B”)
测向c,a+b*c,a+b*x)
}
#在没有随机效应的情况下拟合模型
p10=nls(y~lp(x,a,b,c),data=df,start=list(a=0,b=15,c=4))
绘图(y~x)
行(x=c(0,coef(p10)[“c”],最大值(df$x)),
y=c(coef(p10)[“a”],
(coef(p10)(a)+coef(p10)(b)*coef(p10)(c)),
(coef(第10页)[“a”]+coef(第10页)[“b”]*coef(第10页)[“c”]),lty=2)
我想做的是将
z
作为随机效应包括在内,因为从同一
z
级别收集的所有数据都不是独立的。
我知道如何用
lme4
软件包中的
nlmer
函数模拟混合效果,但我不知道如何用它来拟合线性平台模型。

你可以用
nlme
软件包来实现这一点,但你给我们的数据不足以成功拟合随机效果模型

首先拟合一个
gnls()
(广义非lin最小二乘)模型,该模型允许各组之间的固定效应差异:

library(nlme)
p20 = gnls(y ~ lp(x, a, b, c),
           params= list(a+b~z, c~1),
           data = df,
           start = list(a = c(0,0), b=c(15,15), c=4))
(我最初尝试了
params=list(a+b+c~z)
,对
start
进行了适当的更改,但拟合没有成功。可能需要调整控制参数以使该模型工作……)

现在作为一个随机效应模型。这不会成功-你几乎肯定需要两个以上的小组-但它应该给你一个想法

p30 = nlme(y ~ lp(x, a, b, c),
           random = a+b~1|z,
           fixed = a+b+c ~ 1,
           data = df,
           start = c(a=0, b=15, c=4)
           )
使用
nlmer
执行此操作有点麻烦,因为您必须定义一个返回梯度以及目标函数值的函数