2015-07-13 60 views
2

我一直在嘗試使用nls函數來將實驗數據擬合到我有的模型中,用3個參數的函數來表示,比如說a,b和c。不過,我想保持b和c固定的,因爲我知道他們的真正價值,而只適合參數a:使用固定參數的nls?

nls(formula=pattern~myfunction(a, b, c), start=list(a=estimate_a), control=list(maxiter=50, tol=5e-8, warnOnly=T), algorithm="port", weights=sqrt(pattern), na.action=na.exclude, lower=0, upper=1) 

但顯然,這並不工作...我怎樣才能讓R b和c是固定的?

回答

0

一個快速的解決方案:

my_new_function <- function(a) myfunction(a, b = b_true, c = c_true) 
nls(formula = pattern ~ my_new_function(a), start = list(a = estimate_a), 
    control = list(maxiter = 50, tol = 5e-8, warnOnly = TRUE), algorithm = "port", 
    weights = sqrt(pattern), na.action = na.exclude, lower = 0, upper = 1) 
+0

感謝拉爾斯劉Raket,我從來沒有想過解決該問題得到的這種方式。 – Ruggero

1

要修正的參數(1)設置爲運行nls和(2)不包括它在start之前。這裏是表示a爲0的固定自包含例如:

a <- 0 
nls(demand ~ a + b * Time, BOD, start = list(b = 1))