0

Ich versuche, die Parameter für die Funktion unten zu finden: $$ \ log L (\ alpha, \ beta, v) = v/\ beta (e^{- \ beta T} -1) + \ alpha/\ beta \ Summe_ {i = 1}^{n} (e^{- \ beta (T-t_i)} -1) + \ Summe_ {i = 1}^{N} log (ve^{- \ beta t_i} + \ alpha \ sum_ {j = 1}^{jmax (t_i)} e^{- \ beta (t_i - t_j)}). $$Maximum-Likelihood-Schätzung einer Protokollfunktion mit mehreren Parametern

Die herkömmlichen Methoden wie fmin, fminsearch konvergieren jedoch nicht richtig. Irgendwelche Vorschläge zu anderen Methoden oder offene Bibliotheken, die ich verwenden kann?

Ich habe CVXPY versucht, aber sie unterstützen die Division nicht durch eine Variable im Ausdruck.

Antwort

0

Das Problem möglicherweise nicht konvex (ich habe dies nicht verifiziert, aber es könnte sein, warum CVXPY es abgelehnt hat). Wir haben nicht die Daten, so dass wir die Dinge nicht ausprobieren können, aber ich kann einige allgemeinen Ratschläge geben:

  1. exakte Gradienten Bereitstellung (und 2. Derivate, wenn erforderlich) oder ein Modellierungssystem mit automatischer Differenzierung verwenden. Insbesondere sollten die ersten Derivate vorzugsweise ziemlich genau sein. Mit endlichen Unterschieden können Sie die halbe Genauigkeit verlieren.
  2. Bieten Sie einen guten Ausgangspunkt. Kann eine alternative Schätzmethode verwenden.
  3. Einige Löser können Grenzen für die Variablen verwenden, um die mögliche Region einzuschränken, in der Funktionen ausgewertet werden. Dies kann verwendet werden, um die Suche nur auf interessante Bereiche zu beschränken und auch Operationen wie Division und Log-Funktionen zu schützen.