nls sslogis:使用虚拟变量作为交互项来比较两个S型模型

问题描述 投票:0回答:1

我在代码中使用以下模型:

model <- nls(y ~ SSlogis(x, Asym, xmid, scal), 
   data = data.frame(x, y))

[具有两个级别的变量(V):V1V2

  • 模型1:当V = V1时,用S型函数将Y拟合到X->渐近线1
  • 模型2:当V = V2时,用S形函数将Y拟合到X->渐近线2

asymptote1asymptote2不相等的地方。

我们如何证明渐近线明显不同?

有没有办法使用V作为相互作用项并获得相互作用系数?我在模型中引入了V-Dummy,它会产生以下错误:

[(attr(object,“ initial”))((mCall = mCall,data = data,LHS = LHS)中的错误:单独的输入值太少而无法满足逻辑模型]

如果没有,您对替代方法有何建议?

r nls dummy-variable sigmoid asymptote
1个回答
0
投票

使用nlme::gnls

model <- gnls(y ~ SSlogis(x, Asym, xmid, scal), 
              data = data.frame(x, y),
              params = list(Asym ~ V))

默认情况下,这将为Asym返回两个参数:一个为基线水平(默认为V1),另一个为V1和V2之间的渐近差异。 summary()应包括所有通常的推断信息(标准错误,p值等)

来自?nlme::gnls

params:形式为可选的两边线性公式‘p1 + ... + pn〜x1 + ... + xm',或格式为“ p1〜x1 + ... + xm”,每个模型可能具有不同的模型参数。 “ p1,...,pn”表示包含在“模型”和“ x1 + ... + xm”的右侧定义了一个参数的线性模型(当公式包含几个参数,它们都是假定的遵循右手描述的相同线性模型副词)。右侧的“ 1”公式表示针对相应的参数。默认情况下,参数为从“开始”的名称获得。

© www.soinside.com 2019 - 2024. All rights reserved.