nls sslogis: использование фиктивной переменной в качестве условия взаимодействия для сравнения двух сигмовидных моделей

Я использую в своем коде следующую модель:

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

Есть переменная (V) с двумя уровнями: V1 а также V2

  • Модель 1: Подгонка Y к X с помощью сигмоидной функции, когда V=V1 -> asymptote1
  • Модель 2: Подгонка Y к X с помощью сигмоидной функции, когда V=V2 -> asymptote2

где asymptote1 а также asymptote2 не равны.

Как мы можем показать, что асимптоты существенно различаются?

Есть ли способ использовать Vкак член взаимодействия и получить коэффициент взаимодействия? Я вводил в модель V-Dummy, и он генерировал следующую ошибку:

Ошибка в (attr(object, "initial"))(mCall = mCall, data = data, LHS = LHS): слишком мало отдельных входных значений для соответствия логистической модели

Если нет, то что вы предлагаете в качестве альтернативного подхода?

1 ответ

Использовать 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" в правой части формулы (й) указывает на один фиксированный эффект для соответствующего параметра (ов). По умолчанию параметры берутся из имен start.

Другие вопросы по тегам