R - vom Histogramm zur Funktionsgleichung durch nichtlineare Regression



  • Hi,

    ich habe einen Datensatz mit 1000 Zeilen und einer Spalte. Aus den Daten baue
    ich ein Histogramm und zeichne die kumulative Verteilungsfunktion. Die
    entstehenden Grafik und den Datensatz kann man hier sehen:
    http://www.jochen-bauer.net/downloads/curve-fitting-tutorial/curvefit-plot.png
    http://www.jochen-bauer.net/downloads/curve-fitting-tutorial/data01.txt

    Die Daten stammen aus einer Simulation, die das statistische Rauschen
    wiedergibt. Später wird dann nur noch ein einziger Wert gelesen und man soll den
    P-Wert vorhersagen können, wie wahrscheinlich das Ergebnis durch Zufall
    entstanden ist.

    In der Grafik sind neben den Daten (grüne Kurve) die Normalverteilung (blau) mit
    den Parametern mue und sigma passend zur Datenmenge eingezeichnet. Zusätzlich
    ist eine rote Kurve in der Abbildung, das ist die Gumbel-Verteilung, diese ist
    der heiße Verteilungs-Kandidat auf den gefittet werden soll.

    Die Gumbel-Verteilung hat die Parameter mue und beta, wobei mue das Maximum der
    Funktion nach rechts oder links verschiebt und beta die Breite der Verteilung
    steuert. Für einige der Histogramme liefert mue = 0.925 * median(Datenmenge) und
    beta = 0.9 * Standardabweichung(Datenmenge) brauchbare Ergebnisse, also
    Ergebnisse, bei denen eine Gumbelverteilung durch den Kolmogorov-Smirnov
    bestätigt wird (der P-Wert in der Abbildung). Ich habe die Kurven optisch
    angenähert, habe also herumprobiert und die Gumbel-Verteilung verschoben, um
    diese Werte für mue und beta zu finden.

    Ich soll aber die Parameter errechnen, als Tipp für derartige Verfahren bekam
    ich den Levenberg-Marquardt-Algorithmus, für diese nichtlineare Regression. Ich
    weiss nicht, wie ich dies nun in R auf mein Problem anwenden kann? Ich finde
    kein leichtes Beispiel, dass ich transferieren kann!

    Außerdem zeigen meine bisherigen Beobachtungen, dass ein Zusammenhang zwischen
    Konserviertheit und der Zufallswerteverteilung besteht - das muss ja dann auch
    irgendwie in der Parametrisierung berücksichtigt werden - später will ich also
    diese Wertefolge, die aktuell zum Histogramm führt, gar nicht mehr berechnen,
    sondern direkt sagen können, wie wahrscheinlich das gemessene Ergebnis durch
    Zufall entstanden sein könnte. Die Konserviertheit zum Datensatz steht im
    R-Skript in Zeile 17.
    Das R-Skript ist hier:
    http://www.jochen-bauer.net/downloads/curve-fitting-tutorial/curvefit.txt

    Die Gleichung für die kumulierte Gumbel-Verteilung lautet:
    |.....................(-x)
    |...............(-e)^
    | F(x) = e^

    Hier sind noch die Links zu den weiteren Daten-Textdateien.
    http://www.jochen-bauer.net/downloads/curve-fitting-tutorial/data02.txt
    http://www.jochen-bauer.net/downloads/curve-fitting-tutorial/data03.txt

    Danke vorab für den ein oder anderen Aha-Effekt oder Denkanstoß seitens der
    versierteren Mathefüxxe.


Anmelden zum Antworten