不等式の制約を伴う最適
-
27-10-2019 - |
質問
私は使用しようとしています optim()
次の方程式でラムダを解決するrで:
lambda/sigma^2 -ln(lambda/sigma^2)= 1 + 1/q
制約の対象:
ラムダ> sigma^2。
Rでこれをセットアップする方法がわかりません
方程式は凸状のように見えるので、私は代替の最適化ルーチンにもオープンです optim
素晴らしい選択である必要があります。
ありがとうございました!
解決
方程式を解決しようとしています。制約が満たされているかどうかにかかわらず、Ex Postのみを決定することができます。使用できます uniroot
次のように
f <- function(x,sigma=1,Q=1) {x/sigma^2 - log(x/sigma^2) - 1 - 1/Q}
uniroot(f,c(1,5))
与える
$root
[1] 3.146198
$f.root
[1] 3.552369e-06
$iter
[1] 5
$estim.prec
[1] 6.103516e-05
他のヒント
これはコメントよりも答えであると判断しました。
両方 optim
と optimize
関数を最小化するため、あなたがしたいことは、特定のラムダの2乗エラーを返すエラー関数を書き込むことです(たとえば、特定のLambdaの2乗エラーを返します。se(lambda, sigma^2, Q)
, 、あなたのラムダが最初の議論であることを確認してください)。次に、電話します optim(f = se, lower = sigma^2, sigma^2, Q)
また、エラー関数を最小限に抑えるLambdaの値を返します。複数のデータポイント(q、sigma^2ペア)がある場合は、関数を2乗エラーの合計にしたり、使用したりしてみてください nls()
.
所属していません StackOverflow