Apakah ada cara untuk memaksimalkan / meminimalkan fungsi kustom di R?


18

Saya mencoba meminimalkan fungsi khusus. Ini harus menerima lima parameter dan kumpulan data dan melakukan segala macam perhitungan, menghasilkan angka tunggal sebagai output. Saya ingin menemukan kombinasi lima parameter input yang menghasilkan output terkecil dari fungsi saya.

Jawaban:


23

Saya menulis posting yang menggunakan beberapa tutorialoptim .

Berikut ini kutipan dari bagian yang relevan:

  • "Kombinasi fungsi R optimdan fungsi objektif yang dibuat khusus, seperti fungsi kemungkinan log-kurang menyediakan alat yang kuat untuk estimasi parameter model kustom.

  • 1
    Akhir-akhir ini saya telah bermain dengan DEoptim sebagai pengoptimal "tidak ada poin mulai" yang bagus.
    Mike Lawrence

    1
    Posting baru-baru ini dari John Myles White pada perintah optim di R mungkin juga menarik .
    Andy W

    @ Mike setuju; DEoptim memberikan alternatif yang lebih kuat (DE = Diferensial Evolusi)
    Abe

    12

    Selain jawaban Jeromy Anglim, saya memiliki beberapa tautan lagi.

    Di samping optimada fungsi lain dalam basis R yang memungkinkan untuk apa yang Anda inginkan: nlminb. Periksa ?nlminbdan ?optimuntuk contoh penggunaannya.

    Ada banyak paket yang bisa melakukan optimasi. Apa yang saya temukan paling menarik adalah paket optimx dan, cukup baru, paket neldermead untuk berbagai versi algoritma simpleks.

    Selain itu, Anda mungkin ingin melihat CRAN Task View on Optimization untuk paket lainnya

    Harap perhatikan bahwa semua rekomendasi saya menganggap Anda memiliki fungsi deterministik (yaitu, tidak ada derau acak). Untuk fungsi yang tidak sepenuhnya deterministik (atau terlalu besar), Anda perlu menggunakan algoritma seperti annealing yang disimulasikan atau algoritma genetika. Tetapi Tampilan Tugas CRAN harus memiliki apa yang Anda butuhkan.


    1

    Apakah fungsi Anda berkelanjutan dan dapat dibedakan? Anda mungkin dapat menggunakan optim, baik dengan turunan yang disediakan pengguna atau yang diperkirakan secara numerik.

    Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
    Licensed under cc by-sa 3.0 with attribution required.