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