# S 形模型
S 形模型是 S 形曲线,通常用于对剂量反应曲线和群体动态进行建模。这些模型还在许多人工神经网络中用作激活函数。曲线拟合工具箱支持具有以下方程的逻辑模型、4 参数逻辑数组模型和冈珀茨模型。
| S 形模型 | 方程 |
|---|---|
| 逻辑 | |
| 4 参数逻辑数组 | |
| 冈珀茨 |
在这些方程中,a 和 d 是水平渐近线的参数,b 是生长速率参数。对于 4 参数逻辑数组模型,输入数据 x 必须包含所有正元素或所有负元素,并且 c 是水平渐近线之间的中点。对于冈珀茨模型,c 是曲线的拐点。对于逻辑模型,c 既是中点又是拐点。
# 使用曲线拟合器拟合 S 形模型
使用 LinRange、exp 和 randn 函数以及标准逻辑函数
using TyMath
rng = MT19937ar(5489)
x = collect(LinRange(-5, 5, 100))
p = 1 ./ (1 .+ exp.(-x)) + 0.02*randn(rng, 100)
clamp!(p, 0, 1)
从命令行打开曲线拟合器。
using TyCurveFitter
curveFitter()
或者,在 APP 选项卡中单击曲线拟合器。
在曲线拟合器中,选择拟合的数据变量。在曲线拟合器选项卡的数据部分,单击选择数据。在选择拟合数据对话框中,选择 x 作为 X 数据,选择 p 作为 Y 数据。
曲线拟合器会在您选择变量时绘制数据点。默认情况下,曲线拟合器会将多项式拟合到数据中。要拟合 S 形模型,请在曲线拟合器选项卡的拟合类型部分中单击 "S 形"。
曲线拟合器拟合逻辑模型。
该图显示逻辑拟合曲线服从大部分数据。对于 x 的负值,概率很小,然后增加,然后在 1 附近稳定下来。结果面板显示了逻辑模型的拟合优度统计量,包括大约为 0.048 的误差平方和(SSE)和大约为 1 的 R 方。结果面板还显示模型方程和具有 95% 置信边界的拟合系数。
要使用其他模型方程,请在拟合选项面板中的模型菜单中选择其他模型名称。例如,您可以选择冈珀茨模型。
该图显示冈珀茨曲线的下渐近线大于零。结果面板显示,与逻辑拟合相比,此拟合具有较大的 SSE 值和 R 方值。此结果是由于数据是从冈珀茨函数而不是逻辑函数生成的。
# 在命令行中拟合 S 形模型
使用 linspace、tanh 和 randn 函数生成一些数据。
using TyMath
rng = MT19937ar(5489)
pts = collect(LinRange(-5, 5, 100))
x = collect(LinRange(1, 11, 100))
y = tanh.(pts) + 0.1*randn(rng, 100)
向量 x 包含自变量的数据,向量 y 包含因变量的数据。
使用 scatter 函数创建 x 和 y 中数据的散点图。
using TyPlot
scatter(x, y)
散点图显示 y 包含正值和负值,x 包含所有正值,数据遵循 S 形。
使用 4 参数逻辑数组模型去拟合数据。
using TyCurveFitting
f = fit("logistic4", x, y)
f =
常规模型 logistic4:
y(a,b,c,d,x) = d+(a-d)/(1+(x/c)^b)
系数(置信边界为 95%):
a = -0.9507128658758719 (-0.9889660360639296, -0.9124596956878142)
b = 12.933507011311704 (11.142478470673199, 14.72453555195021)
c = 6.012935930216296 (5.93964529790936, 6.0862265625232315)
d = 1.0032323977672262 (0.960756877365847, 1.0457079181686053)
f 是一个包含拟合后结果的 FitResult 对象,其中结果显示 4 参数逻辑数组模型的公式和具有 95% 置信边界的拟合系数。
绘制拟合曲线和数据点。
plotfit(f, x, y)
该图显示拟合曲线跟随大部分数据。
# 另请参阅
# APP
# 函数
fit | fittype | fitoptions