我試圖在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