R中一个复模型的回归

R中一个复模型的回归,r,statistics,regression,R,Statistics,Regression,这只是我必须做的一个简化版本。 我必须对以下模型执行线性混合效应回归: y~a1+F1+F2+(1|Effect1)+(1|Effect2) 我的问题是编码固定效果 F1=a2*(M-M1)+a4*(10-M) if M >=M1 =a3*(M-M2)+a4*(10-M1) if M < M1 F2=a5*ln(R+a6)+a7*lnV if V<100 =a5*1.5+a7 if V>=100 F

这只是我必须做的一个简化版本。 我必须对以下模型执行线性混合效应回归:

y~a1+F1+F2+(1|Effect1)+(1|Effect2)
我的问题是编码固定效果

F1=a2*(M-M1)+a4*(10-M)      if M >=M1
  =a3*(M-M2)+a4*(10-M1)     if M < M1

F2=a5*ln(R+a6)+a7*lnV       if V<100
  =a5*1.5+a7                if V>=100
F1=a2*(M-M1)+a4*(10-M)如果M>=M1
=a3*(M-M2)+a4*(10-M1)如果M
M、 给出了R、V、y、M1和M2以及效应1和效应2。它也是一个大数据集。 我必须找到回归系数a1,a2,a3,a4,a5,a6,a7。在R中有没有办法做到这一点?比如将系数指定为变量或任何其他方法


编辑:我删除了F3项并修改了F2项,因为它引起了很多混乱,我主要关注前两项

我认为它将被称为“非线性混合模型”。我建议使用
nlme
(非线性混合效果)软件包。对于您的
M
V
阈值,我将使用指示符变量乘以模型项以将其“打开”或“关闭”。最后一个表达式看起来像某种约束,但不清楚您希望在边界之外发生什么。。。R和M和它有什么关系。数据变量中没有列出V。假设您有一个固定值
M1
。对于
F1
条件,在数据中创建一个名为
M\u gt\u M1
的“指示符”变量,当M大于M1时为1,否则为0。然后您的
F1
条件被写为
F1=M_gt_M1*(a2*(M-M1)+a4*(10-M))+(1-M_gt_M1)*(a3*(M-M2)+a4*(10-M1))
。基本上,您可以通过乘以1或0来创建“if”语句,具体取决于条件是否满足。第二项的方式完全相同,数据中有一列名为
V\u gt_100
,当
V>100
时为1,否则为0。将你的两个
F2
条件乘以
V_gt_100
1-V_gt_100
。至于你的回归评论,你所说的是线性回归。这就是为什么,在顶部,我说你的模型是非线性的。如果使用
nlme
包,则可以在模型公式中指定所有
a
,并对其进行估算。(其他人提到了
lme4
包。对于混合模型,我通常更喜欢
lme4
而不是
nlme
,但我认为它不适合非线性混合模型。因此,对于此模型,请使用
nlme