Коли я повинен * не * використовувати функцію nlm R для MLE?


25

Я натрапив на кілька посібників, які пропонують використовувати Nlm R для максимальної оцінки ймовірності. Але жодна з них (включаючи документацію R ) не дає багато теоретичних вказівок щодо того, коли використовувати або не використовувати цю функцію.

Наскільки я можу сказати, nlm просто робить градієнтний спуск по лінії методу Ньютона. Чи існують принципи, коли розумно використовувати такий підхід? Які альтернативи є? Крім того, чи є обмеження щодо розміру масивів і т. Д. Можна перейти до nlm?

Відповіді:


39

Є цілий ряд універсальних процедур оптимізації в базі R , що я знаю: optim, nlminb, nlmі constrOptim(який обробляє лінійні обмеження нерівності і виклики optimпід капотом). Ось кілька речей, які ви можете врахувати, обираючи, який саме використовувати.

  • optimможна використовувати декілька різних алгоритмів, включаючи спряжений градієнт, Ньютон, квазі-Ньютон, Нелдер-Мід та імітований відпал. Останні два не потребують інформації про градієнт, і тому вони можуть бути корисними, якщо градієнти недоступні або неможливо обчислити (але, швидше за все, вони будуть повільнішими і вимагають додаткової настройки параметрів відповідно). Він також має можливість повернути обчислений гессіан на рішення, яке вам знадобиться, якщо ви хочете стандартних помилок разом із самим рішенням.

  • nlminbвикористовує алгоритм квазі-Ньютона, який заповнює ту саму нішу, що і "L-BFGS-B"метод в optim. На мій досвід, це здається трохи надійнішим, ніж optimтим, що швидше повернути рішення в граничних випадках, коли optimне вдасться сходитися, хоча це, ймовірно, залежить від проблеми. Якщо ви надаєте чітку функцію градієнта, він має приємну особливість робити чисельну перевірку його значень у рішенні. Якщо ці значення не збігаються з значеннями, отриманими в результаті чисельного розрізнення, nlminbподадуть попередження; це допомагає переконатися, що ви не помилилися, вказавши градієнт (це легко зробити зі складною ймовірністю).

  • nlmвикористовує лише алгоритм Ньютона. Це може бути швидше, ніж інші алгоритми, в сенсі потребувати меншої кількості ітерацій для досягнення конвергенції, але має свої недоліки. Він більш чутливий до форми ймовірності, тому, якщо він сильно не квадратичний, він може бути повільнішим або ви можете отримати конвергенцію до помилкового рішення. Алгоритм Ньютона також використовує Гессіана, і обчислення, які можуть бути досить повільними на практиці, що більше, ніж скасовує будь-яке теоретичне прискорення.


17

Коли використовувати та не використовувати якийсь конкретний метод максимізації, значною мірою залежить від типу даних, які ви маєте. nlmбуде добре працювати, якщо вірогідність поверхні не буде особливо «шорсткою» і є скрізь диференційованою. nlminbнадає спосіб обмежити значення параметрів певними обмежувальними полями. optim, який, мабуть, найбільш використовуваний оптимізатор, забезпечує декілька різних процедур оптимізації; наприклад, BFGS, L-BFGS-B та імітований відпал (через опцію SANN), останній з яких може бути корисним, якщо у вас складна проблема оптимізації. На CRAN також є ряд оптимізаторів. rgenoudнаприклад, забезпечує генетичний алгоритм для оптимізації.DEoptimвикористовує іншу процедуру генетичної оптимізації. Генетичні алгоритми можуть зближуватися повільно, але, як правило, гарантовано конвергуються (у часі), навіть коли є ймовірності розривів. Я не знаю про це DEoptim, але rgenoudвін створений для використання snowдля паралельної обробки, що дещо допомагає.

Отже, ймовірно дещо незадовільна відповідь - ви повинні використовувати nlmабо будь-який інший оптимізатор, якщо він працює для ваших даних. Якщо у вас є хороша вірогідність, будь-яка з процедур, наданих optimабо nlmдасть вам такий же результат. Деякі можуть бути швидшими, ніж інші, що може мати значення або не мати значення, залежно від розміру набору даних тощо. Щодо кількості параметрів, якими ці підпрограми можуть керувати, я не знаю, хоча, мабуть, їх досить багато. Звичайно, чим більше у вас параметрів, тим більше шансів на те, що у вас виникнуть проблеми з конвергенцією.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.