我试图在R中安装一个函数,因此我使用nls()。 有没有办法来防止拟合函数下降到零以下?防止nls-fit低于零
一个简单的解决办法是在适合后在目标函数中增加参数b0
,但这实际上并不是我想要的,因为我期望真正符合beeing positive的约束以导致更好的结果。
y=c(m1,m2,m3,m4,m5,m6,m7,m8,m9,m10)
d=data.frame(seq(1, 10, 1),y=y)
fitFun <- function(x, add, b0, b1) {b0 + (x+add)^b1}
m=nls(y~fitFun(x,add,intercept,power),d,start=list(intercept=1,power=3.5,add=2),trace=T)
感谢答案,我会想,我怎么可能会改变我的模型,但实际上我看到的模型固定的,宁可告诉大家,functionvalues应保持在零以上例如优化作为优化过程中的附加条件 – B1ANCHi
@BANANCHi我觉得你很困惑。如果您对模型的结果施加限制,则可以有效地更改模型。你可以通过实际改变模型或采取便宜的方式来实现,我已经在这里展示了。优化器只关心如果你想约束模型参数。 – Roland