関数 nls.lm {package: minpack.lm} を使用して、水文モデルのパラメータを最適化しています。関数は非常にうまく機能していますが、他のobjective function (OF)
. 通常、nls.lm 内のオブジェクト関数「fn」は次のように定義されます。
A function that returns a vector of residuals, the sum square of which
is to be minimized. The first argument of fn must be par.
Nash-Sutcliff-Efficiency
今、次のように定義されているを使用したい
NSE <- 1 - (sum((obs - sim)^2) / sum((obs - mean(obs))^2))
またはその他の OF。問題はnls.lm
、式が最小化され、sum(x)^2
のみx
が変更可能になることです。私はそれを知っていbest fit NSE = 1
ます。したがって1 - NSE
、実際の最小化問題が作成されます。
ところで:nls.lm
ヘルプ ページの例 1は良い例です。そこの
observed - getPred(p,xx)
最小化されていますが、実際には
sum ( observed - getPred(p,xx) )^2
はnls.lm
関数によって最小化されますが、 がgetPred(p,xx)
返されますsim
。
どんな提案も役に立ちます。前もって感謝します。ミカ