Wann eine bestimmte Maximierungsmethode verwendet und nicht verwendet wird, hängt in hohem Maße von der Art der Daten ab, über die Sie verfügen. nlm
funktioniert einwandfrei, wenn die Wahrscheinlichkeitsoberfläche nicht besonders "rau" und überall differenzierbar ist. nlminb
Bietet eine Möglichkeit, Parameterwerte auf bestimmte Begrenzungsrahmen zu beschränken. optim
Das wahrscheinlich am häufigsten verwendete Optimierungsprogramm bietet einige verschiedene Optimierungsroutinen. Zum Beispiel BFGS, L-BFGS-B und simuliertes Tempern (über die SANN-Option). Letzteres kann hilfreich sein, wenn Sie ein schwieriges Optimierungsproblem haben. Es gibt auch eine Reihe von Optimierern für CRAN. rgenoud
bietet zum Beispiel einen genetischen Algorithmus zur Optimierung.DEoptim
verwendet eine andere genetische Optimierungsroutine. Die Konvergenz von genetischen Algorithmen kann langsam sein, wird jedoch in der Regel (zeitlich) garantiert, selbst wenn die Wahrscheinlichkeit von Diskontinuitäten herrscht. Ich weiß nicht DEoptim
, aber rgenoud
ist snow
für die parallele Verarbeitung eingerichtet, was ein wenig hilft.
Eine wahrscheinlich etwas unbefriedigende Antwort ist, dass Sie nlm
einen anderen Optimierer verwenden sollten, wenn er für Ihre Daten funktioniert. Wenn Sie eine gute Wahrscheinlichkeit haben, wird eine der von optim
oder bereitgestellten Routinen nlm
das gleiche Ergebnis liefern. Einige sind möglicherweise schneller als andere, was je nach Größe des Datasets usw. von Bedeutung sein kann oder auch nicht. Was die Anzahl der Parameter betrifft, die diese Routinen verarbeiten können, weiß ich nicht, obwohl es wahrscheinlich einige sind. Je mehr Parameter Sie haben, desto wahrscheinlicher werden Sie natürlich auf Probleme mit der Konvergenz stoßen.