1. ホーム
  2. r

[解決済み] 最適化のエラー:初期パラメータで関数を評価できない[closed]。

2022-02-15 22:41:23

質問

実価格とシミュレーション価格を比較する際に誤差項を返す簡単な関数で hestondifferences() .

を経由してローカルミニマムを求めようとすると。

 res<-optim(fn=hestondifferences, par = c(vT=vT, rho=rho, k=k, sigma=sigma))

エラーメッセージが表示されるのですが。

optim(fn = hestondifferences, par = c(vT = vT, rho = rho, k =)) でエラー。 k, : 関数は初期パラメータで評価できません。

私が混乱したのは、初期パラメータで直接関数を呼び出すと hestondifferences(vT, rho, k, sigma) は正しい値を返します。

関数 hestondifferences() は,あるパラメータのセットでシミュレーションが不可能になったときに,その都度 NA というのは optim () が期待するものです。

どのように解決するのですか?

Optimは、関数が1つの引数を持つことを想定しています。したがって、それ以上の引数はすべてベクトルで渡される必要があります。つまり、関数は hestondifferences(c(vT, rho, k, sigma)) hestondifferences(vT, rho, k, sigma)ではなく、hestondifferences(vT, rho, k, sigma)とします。を参照してください。 ドキュメント :

fn : 最小化(または最大化)される関数で、第一引数は最小化が行われるパラメータのベクトルである。fnはスカラーを返す。