関数をRに適合させようとしているので、nls()を使用します。近似関数がゼロを下回るのを防ぐ方法はありますか?
簡単な回避策は、近似後にターゲット関数のパラメーターを上げることb0
ですが、正のビーイングの制約を伴う実際の近似がより良い結果につながることを期待しているため、これは実際には私が望むものではありません。
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)