0

我正在使用一个数据集,发现曲线是 sigmoidal。我已经拟合了曲线并得到了方程 A2+((A1-A2)/1+exp((x-x0)/dx)) 其中:

  • x0 : 曲线的中点
  • dx : 曲线的斜率

我需要找到斜率和中点才能给出广义方程。有什么建议么? 在此处输入图像描述

4

2 回答 2

0

您应该能够使用以下形式的函数来简化 sigmoid 的建模:乙状结肠(简单)

源代码包含 R 中的代码,展示了如何将数据拟合到 sigmoid 曲线,您可以适应您正在编写的任何语言。源代码还注意到以下形式:

乙状结肠(一般)

您可以调整链接的 R 代码来解决。这里的一般函数的好处是你可以求解它们的导数。此外,您应该注意,sigmoid 的中点正是 dx(或 dx^2)的导数为 0 的位置(从 neg 到 pos 的位置,反之亦然)。

于 2016-07-23T18:57:04.997 回答
0

假设您的方程式是 A2+(A1-A2)/(1+exp((x-x0)/dx)) 的错误打印,那么您的图表不会反映零残差,因为在您的图表中,上肩比下肩更锐利.

问题可能出在您的起始值上。尝试使用原生 R 函数 SSfpl,如 nls(y ~ SSfpl(x,A2,A1,x0,dx))

于 2019-07-18T09:44:24.847 回答