Ajustar e comparar várias curvas sigmóides em R

Gostaria de ajustar várias curvas de uma só vez e compará-las estatisticamente, em termos de seus três parâmetros estimados - assíntota, inclinação e x0. Aqui está uma imagem idealizada dos dados a serem modelados:

A maioria das páginas pesquisáveis exibe métodos para se ajustar asolteiro curva, como pode ser visto aqui:http://kyrcha.info/2012/07/08/tutorials-fitting-a-sigmoid-function-in-r/ e aquihttp://rstudio-pubs-static.s3.amazonaws.com/7812_5327615eb0044cf29420b955ddaa6173.html

No meu caso,Gostaria de testar (estatisticamente) o efeito da mudança de níveis variáveis nos três parâmetros do sigmóide. Ou seja, quando estou ajustando este modelo:

model <- nls(y ~ asym / (1 + exp( -slope * (x – x0) ) ), start = c(…), data = my_data)

Eu gostaria de adicionar interações&nbsp;de dois fatores (digamos, “fatorA” e “fatorB”) com cada um dos termos de assimetria, inclinação e x0, da maneira que podemos fazer comlm()&nbsp;ouglm(), como no seguinte:

model_int <- nls(y ~ asym*factorA / (1 + exp( -(slope*factorA) * (x – (x0*factorA) ) ), start = c(…), data = my_data)

Dessa forma, posso ver se esses três parâmetros são estatisticamente diferentes entre os diferentes níveis do fator A (e potencialmente vários outros fatores, como você pode ver na imagem). Por exemplo, podemos ver que "Condição" afeta a assíntota das curvas.

Eu fiz isso anteriormente comcodificação fictícia&nbsp;cada nível de cada variável que interage, mas essa não é uma maneira de testar diretamente essas variáveis e é bastante detalhada conforme os modelos. Se parece com isso:

model_dummy <- nls(y ~ (asym+ asym.L1 * is.L1 + asym.l2*is.L2) / 
(1 + exp( -slope * (x – (x0 + x0.L1 * is.L1 + x0.L2 * is.L2) ) ) ), 
start = c(…), data = my_data)

Como você pode imaginar, esse método tem desvantagens óbvias em termos de organização e falta de interpretabilidade.

Alguém sabe como ajustar um conjunto de sigmóides em que os parâmetros interagem com variáveis no conjunto de dados para produzir curvas de formas ligeiramente diferentes?