首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R中的SSasymp函数在非线性回归中指定交互作用项?

如何使用R中的SSasymp函数在非线性回归中指定交互作用项?
EN

Stack Overflow用户
提问于 2022-03-16 13:04:56
回答 1查看 153关注 0票数 0

如何在使用-in函数的非线性回归中将交互项lm指定为x:z?随机效应-in lm as (1|z)-?

这是我的模型,只有一个预测器:

代码语言:javascript
复制
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*zx + z + x:z所做的事情。

EN

回答 1

Stack Overflow用户

发布于 2022-03-22 01:49:14

(不一定是答案,但似乎太长了,无法发表评论。)

我还是不确定这对我是否有意义。让我们考虑一下这个问题的简化版本。假设您想要拟合一个指数衰减模型(y ~ a*exp(-b*x),但您希望包含“xz之间的交互作用”)。这很自然地被表述为“(指数)斜率相对于xz变化而发生的变化”;您可以将它写成

代码语言:javascript
复制
nls(y ~ a*exp(-b*x),
    params = list(a ~ 1, b ~ z),
    ...)

(或相当于nlme,它将涉及fixed = list(a ~ 1, b ~ z),以及random=组件)。将此规范扩展出去,这相当于将b替换为beta0 + beta1*z,或者:

代码语言:javascript
复制
y ~ a*exp(-(beta0 + beta1*z)*x)
  ~ a*exp(-beta0*x + beta1*z*x)

换句话说,交互作用通常表示为一个协变量对另一个协变量的影响,或关于一个协变量的有效参数值的变化。如果您想在您的模型中包含“x和z之间的交互”,我认为您需要更具体一点:控制y模式的参数在x方面的z的不同而不同?通常,您可以编写fixed = Asym + R0 + lrc ~ z,它对应于模型(忽略随机效应)。

代码语言:javascript
复制
y ~ (Asym1+Asym2*z)+((R01+R02*z)-(Asym1+Asym2*z))*exp(-exp(lrc1+lrc2*z)*input)

换句话说,每个参数都被具有相应线性参数( z (截距)、foo2 (斜率))的线性函数所取代。

您也可以按照这里给出的完整形式写出这个公式,但是估计的效率可能会降低(而且公式将很难读懂)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71497624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档