我想一次拟合多条曲线,并根据它们的 3 个估计参数——渐近线、斜率和 x0,对它们进行统计比较。这是要建模的数据的理想化图像:

大多数可搜索页面都提供了拟合单个曲线的方法,如下所示: http: //kyrcha.info/2012/07/08/tutorials-fitting-a-sigmoid-function-in-r/ 和这里 http:// rstudio-pubs-static.s3.amazonaws.com/7812_5327615eb0044cf29420b955ddaa6173.html
就我而言,我想测试(统计)改变变量级别对 sigmoid 的三个参数的影响。也就是说,当我拟合这个模型时:
model <- nls(y ~ asym / (1 + exp( -slope * (x – x0) ) ), start = c(…), data = my_data)
Run Code Online (Sandbox Code Playgroud)
我想添加两个因子(例如,“factorA”和“factorB”)与每个 asym、slope 和 x0 项的相互作用,我们可以使用lm()or 的方式glm(),如下所示:
model_int <- nls(y ~ asym*factorA / (1 + exp( -(slope*factorA) * (x – (x0*factorA) ) ), start = c(…), data = my_data)
Run Code Online (Sandbox Code Playgroud)
这样,我可以看到这三个参数在 factorA 的不同级别(以及可能有多个其他因素,如您从图像中看到的)在统计上是否不同。例如,我们可以看到“条件”对曲线的渐近线有影响。
我以前用虚拟编码完成了每个交互变量的每个级别,但这不是直接测试这些变量的方法,并且随着模型的发展相当冗长。它看起来像这样: …