0

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

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

有一个变量 ( V) 有两个级别:V1V2

  • 模型 1:当 V=V1 --> asymptote1 时,使用 sigmoid 函数将 Y 拟合到 X
  • 模型 2:当 V=V2 --> asymptote2 时,使用 sigmoid 函数将 Y 拟合到 X

哪里asymptote1asymptote2不相等。

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

有什么方法可以V用作交互项并获得交互系数?我在模型中引入了 V-Dummy,它会产生以下错误:

(attr(object, "initial"))(mCall = mCall, data = data, LHS = LHS) 中的错误:不同的输入值太少,无法适应逻辑模型

如果不是,您建议采用什么替代方法?

4

1 回答 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()应该包括所有通常的推论信息(std 错误、p 值等)

来自?nlme::gnls

params:'p1+...+pn~x1+...+xm' 形式的可选双边线性公式,或 'p1~x1+...+xm' 形式的双边公式列表,其中每个参数可能有不同的模型。'p1,...,pn' 表示包含在 'model' 右侧的参数,而 'x1+...+xm' 定义了参数的线性模型(当公式的左侧包含多个参数时,它们都被假定遵循右手边表达式描述的相同线性模型)。公式右侧的“1”表示相应参数的单个固定效应。默认情况下,参数是从'start'的名称中获取的。

于 2019-11-25T16:57:17.130 回答