如何在使用-in函数的非线性回归中将交互项lm指定为x:z?随机效应-in lm as (1|z)-?
这是我的模型,只有一个预测器:
library(nlme)
nlme(y ~ SSasymp(x, Asym, R0, lrc),
data = na.omit(df),
fixed = Asym + R0 + lrc ~ 1,
random = Asym ~ 1|z,
start = c(Asym = 1.1, R0 = 2.0, lrc = 4.9))我知道,在上面的模型中,我有x作为一个固定的效应,并对z有随机截距。
但是,如何指定x和z之间的交互呢?这相当于在lm中我们将通过x*z或x + z + x:z所做的事情。
发布于 2022-03-22 01:49:14
(不一定是答案,但似乎太长了,无法发表评论。)
我还是不确定这对我是否有意义。让我们考虑一下这个问题的简化版本。假设您想要拟合一个指数衰减模型(y ~ a*exp(-b*x),但您希望包含“x和z之间的交互作用”)。这很自然地被表述为“(指数)斜率相对于x随z变化而发生的变化”;您可以将它写成
nls(y ~ a*exp(-b*x),
params = list(a ~ 1, b ~ z),
...)(或相当于nlme,它将涉及fixed = list(a ~ 1, b ~ z),以及random=组件)。将此规范扩展出去,这相当于将b替换为beta0 + beta1*z,或者:
y ~ a*exp(-(beta0 + beta1*z)*x)
~ a*exp(-beta0*x + beta1*z*x)换句话说,交互作用通常表示为一个协变量对另一个协变量的影响,或关于一个协变量的有效参数值的变化。如果您想在您的模型中包含“x和z之间的交互”,我认为您需要更具体一点:控制y模式的参数在x方面的随z的不同而不同?通常,您可以编写fixed = Asym + R0 + lrc ~ z,它对应于模型(忽略随机效应)。
y ~ (Asym1+Asym2*z)+((R01+R02*z)-(Asym1+Asym2*z))*exp(-exp(lrc1+lrc2*z)*input)换句话说,每个参数都被具有相应线性参数( z (截距)、foo2 (斜率))的线性函数所取代。
您也可以按照这里给出的完整形式写出这个公式,但是估计的效率可能会降低(而且公式将很难读懂)。
https://stackoverflow.com/questions/71497624
复制相似问题