Cuándo usar y no usar ningún método particular de maximización depende en gran medida del tipo de datos que tenga. nlm
funcionará bien si la superficie de probabilidad no es particularmente "rugosa" y es diferenciable en todas partes. nlminb
proporciona una manera de restringir los valores de los parámetros a cuadros delimitadores particulares. optim
, que es probablemente el optimizador más utilizado, proporciona algunas rutinas de optimización diferentes; por ejemplo, BFGS, L-BFGS-B y recocido simulado (a través de la opción SANN), el último de los cuales podría ser útil si tiene un problema de optimización difícil. También hay varios optimizadores disponibles en CRAN. rgenoud
, por ejemplo, proporciona un algoritmo genético para la optimización.DEoptim
utiliza una rutina de optimización genética diferente. Los algoritmos genéticos pueden ser lentos para converger, pero generalmente se garantiza que convergerán (a tiempo) incluso cuando haya discontinuidades en la probabilidad. No lo sé DEoptim
, pero rgenoud
está configurado para usarse snow
en procesamiento paralelo, lo que ayuda un poco.
Entonces, una respuesta probablemente algo insatisfactoria es que debe usar nlm
o cualquier otro optimizador si funciona para los datos que tiene. Si tiene una probabilidad de buen comportamiento, cualquiera de las rutinas proporcionadas por optim
o nlm
le dará el mismo resultado. Algunos pueden ser más rápidos que otros, lo que puede o no importar, dependiendo del tamaño del conjunto de datos, etc. En cuanto a la cantidad de parámetros que estas rutinas pueden manejar, no lo sé, aunque probablemente sean bastantes. Por supuesto, cuantos más parámetros tenga, más probabilidades tendrá de tener problemas de convergencia.