Kiedy stosować, a nie stosować żadnej konkretnej metody maksymalizacji, zależy w dużej mierze od rodzaju posiadanych danych. nlm
będzie działać dobrze, jeśli powierzchnia prawdopodobieństwa nie jest szczególnie „szorstka” i wszędzie można ją rozróżnić. nlminb
zapewnia sposób ograniczenia wartości parametrów do poszczególnych ramek granicznych. optim
, który jest prawdopodobnie najczęściej używanym optymalizatorem, udostępnia kilka różnych procedur optymalizacji; na przykład BFGS, L-BFGS-B i symulowane wyżarzanie (za pomocą opcji SANN), z których ta ostatnia może być przydatna, jeśli masz trudny problem z optymalizacją. Istnieje również szereg optymalizatorów dostępnych w CRAN. rgenoud
, na przykład, zapewnia algorytm genetyczny do optymalizacji.DEoptim
wykorzystuje inną procedurę optymalizacji genetycznej. Algorytmy genetyczne mogą zbiegać się wolno, ale zwykle gwarantuje się, że zbiegają się (w czasie), nawet jeśli istnieje prawdopodobieństwo nieciągłości. Nie wiem o tym DEoptim
, ale rgenoud
jest skonfigurowany do korzystania snow
z równoległego przetwarzania, co nieco pomaga.
Prawdopodobnie nieco niezadowalającą odpowiedzią jest to, że powinieneś użyć nlm
innego optymalizatora, jeśli działa on na posiadane dane. Jeśli masz dobrze zachowane prawdopodobieństwo, każda z procedur dostarczonych przez optim
lub nlm
da ci ten sam wynik. Niektóre mogą być szybsze niż inne, co może, ale nie musi mieć znaczenia, w zależności od rozmiaru zestawu danych itp. Jeśli chodzi o liczbę parametrów, które te procedury mogą obsłużyć, nie wiem, choć prawdopodobnie jest ich sporo. Oczywiście im więcej parametrów masz, tym większe prawdopodobieństwo wystąpienia problemów z konwergencją.