関数 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。
どんな提案も役に立ちます。前もって感謝します。ミカ