8

だから私は R でこの奇妙なエラーに出くわしました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()返すように記述されています。NAoptim

4

1 に答える 1

6

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

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

于 2013-02-25T13:50:11.493 に答える