Maximum Likelihood



  • Hallo!

    Ich möchte folgendes machen, habe aber ein paar Probleme bei der Umsetzung:

    Mein Programm soll eine Datei mit Datenpunkten einlesen, der Name der Datendatei kann angegeben werden.
    Selbiges funktioniert wunderbar, war aber auch nicht weiter schwierig. Die Daten aus der Datei werden in eine map gepackt. Die Datenstruktur der Datei sieht so aus: index -> Wert, Tab getrennt.

    Nun soll der Benutzer des Programms auswählen können, wie seine Daten wohl verteilt sind. Sprich Poisson-, Exponential-, Normalverteilung.
    Anschließend sollen die Daten via gnuplot geplottet werden, was soweit auch funktioniert. Woran ich aber bisher scheitere - ich möchte ein Max-Likelihood Fit auf die Daten machen. Aber wie stelle ich das an? Schön wäre natürlich, wenn das via Boost oder ähnliches ginge, aber hier scheitere ich leider in der Anwendung/Umsetzung.



  • Das ist ein Standardproblem.
    Wenn du keinen schwerwiegenden Grund dafür hast, das selber zu programmieren,
    würde ich dafür was Fertiges in R, octave (beide frei) oder matlab (komerziell) nehmen.

    Ansonsten: likelihood aufstellen, versuchen quadratisch oder convex umzuschreiben und dann eben maximieren, z.B. mit der GSL (http://www.gnu.org/software/gsl/).



  • Gradientenaufstieg mithilfe des Gradienten der lok-likelihood mit der gewählten Zielverteilung. Eventuell gibt es sogar eine analytische Lösung für deine Gleichungen. Aber das wäre so der Weg.


Anmelden zum Antworten