Rでカスタム関数を最大化/最小化する方法はありますか?


18

カスタム関数を最小化しようとしています。5つのパラメーターとデータセットを受け入れ、あらゆる種類の計算を実行して、出力として単一の数値を生成する必要があります。関数の最小の出力を生成する5つの入力パラメーターの組み合わせを見つけたいです。

回答:


23

使用していくつかのチュートリアルを掲載しoptimた投稿を書きました。

関連セクションの引用は次のとおりです。

  • 「R関数optimと、マイナス対数尤度関数などのカスタム作成された目的関数の組み合わせは、カスタムモデルのパラメーター推定のための強力なツールを提供します。

  • 1
    最近、私は「最適な開始点が不要」な最適化ツールとしてDEoptimで遊んでいます。
    マイクローレンス

    1
    ジョンマイルズホワイトがRの最適コマンドに最近投稿したことも興味深いかもしれません。
    アンディW

    @マイクは同意しました。DEoptimはより堅牢な代替手段を提供します(DE = Differential Evolution)
    阿部

    12

    Jeromy Anglimの回答に加えて、リンクがいくつかあります。

    optimには、ベースRの別の関数がありますnlminb。使用例?nlminb?optimを確認してください。

    最適化を行うことができるパッケージがたくさんあります。私が最もおもしろいと思ったのは、optimxパッケージと、まったく新しいシンプレックスアルゴリズムの異なるバージョン用のneldermeadパッケージでした。

    さらに、他のパッケージについては、最適化に関するCRANタスクビューをご覧ください。

    私の推奨事項はすべて、決定論的な機能(つまり、ランダムノイズがない)を前提としていることに注意してください。厳密に決定的でない(または大きすぎる)関数では、シミュレーテッドアニーリングや遺伝的アルゴリズムなどのアルゴリズムを使用する必要があります。ただし、CRANタスクビューには必要なものが含まれているはずです。


    1

    あなたの機能は連続的で微分可能ですか?ユーザー指定の導関数または数値的に近似した導関数を使用して、optimを使用できる場合があります。

    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.