我正在使用一个数据集,发现曲线是 sigmoidal。我已经拟合了曲线并得到了方程 A2+((A1-A2)/1+exp((x-x0)/dx)) 其中:
- x0 : 曲线的中点
- dx : 曲线的斜率
我正在使用一个数据集,发现曲线是 sigmoidal。我已经拟合了曲线并得到了方程 A2+((A1-A2)/1+exp((x-x0)/dx)) 其中:
您应该能够使用以下形式的函数来简化 sigmoid 的建模:
源代码包含 R 中的代码,展示了如何将数据拟合到 sigmoid 曲线,您可以适应您正在编写的任何语言。源代码还注意到以下形式:
您可以调整链接的 R 代码来解决。这里的一般函数的好处是你可以求解它们的导数。此外,您应该注意,sigmoid 的中点正是 dx(或 dx^2)的导数为 0 的位置(从 neg 到 pos 的位置,反之亦然)。
假设您的方程式是 A2+(A1-A2)/(1+exp((x-x0)/dx)) 的错误打印,那么您的图表不会反映零残差,因为在您的图表中,上肩比下肩更锐利.
问题可能出在您的起始值上。尝试使用原生 R 函数 SSfpl,如 nls(y ~ SSfpl(x,A2,A1,x0,dx))