拟合“sigmoid”函数:为什么我的拟合这么差?

机器算法验证 r 物流 nls
2022-03-14 10:04:51

我尝试使用以下代码将曲线拟合到黑点。为什么身材这么差?我需要适应另一种类型的功能吗?

fit <- nls(grad ~ theta1/(1 + exp(-(theta2 + theta3*x1))), 
           start=list(theta1 = 4, theta2 = 0.09, theta3 = 0.31), trace=TRUE)

p = predict(fit)

plot(x1, grad)
points(x1, p, col = "red")

我想为这些数据拟合一条曲线。 红色曲线是我的尝试。 这是坏的

1个回答

您的模型中似乎有错误指定的函数形式。您正在拟合一种特定类型的 sigmoid 函数,但除此之外还有许多类型的 sigmoid 函数。Sigmoid 函数主要在用于二元数据回归的链接函数的上下文中进行讨论。您可以从我的回答中获得有关存在的不同可能性的一些信息: logit 函数是否总是最适合二进制数据的回归建模? 一个看起来可能合适的特定链接/ sigmoid 函数是补充日志日志。您可以在我的回答中看到与 logit 和 probit 链接(进行一些讨论)相比的图片:Difference between logit and probit models我会建议尝试堵塞。