Kapan menggunakan dan tidak menggunakan metode maksimalisasi apa pun sangat tergantung pada tipe data yang Anda miliki. nlm
akan bekerja dengan baik jika permukaan kemungkinan tidak terlalu "kasar" dan di mana-mana dapat dibedakan. nlminb
menyediakan cara untuk membatasi nilai parameter ke kotak pembatas tertentu. optim
, yang mungkin merupakan pengoptimal yang paling sering digunakan, menyediakan beberapa rutinitas pengoptimalan yang berbeda; misalnya, BFGS, L-BFGS-B, dan simulated annealing (melalui opsi SANN), yang terakhir mungkin berguna jika Anda memiliki masalah optimalisasi yang sulit. Ada juga sejumlah pengoptimal yang tersedia di CRAN. rgenoud
, misalnya, menyediakan algoritme genetik untuk pengoptimalan.DEoptim
menggunakan rutin optimasi genetik yang berbeda. Algoritma genetika bisa lambat untuk konvergen, tetapi biasanya dijamin untuk konvergen (dalam waktu) bahkan ketika ada diskontinuitas dalam kemungkinan. Saya tidak tahu DEoptim
, tetapi rgenoud
sudah diatur untuk digunakan snow
untuk pemrosesan paralel, yang agak membantu.
Jadi, jawaban yang mungkin agak tidak memuaskan adalah Anda harus menggunakan nlm
atau pengoptimal lainnya jika berfungsi untuk data yang Anda miliki. Jika Anda memiliki kemungkinan berperilaku baik, salah satu rutinitas yang disediakan oleh optim
atau nlm
akan memberi Anda hasil yang sama. Beberapa mungkin lebih cepat daripada yang lain, yang mungkin atau mungkin tidak masalah, tergantung pada ukuran dataset, dll. Adapun jumlah parameter yang bisa ditangani oleh rutinitas ini, saya tidak tahu, meskipun mungkin beberapa. Tentu saja, semakin banyak parameter yang Anda miliki, semakin besar kemungkinan Anda mengalami masalah dengan konvergensi.