Bilineare Trendkurve

  • moin,


    Folgendes: ich möchte eine Kurve durch zwei Geraden abbilden bzw. approximieren...Das Bild im Anhang sollte das Problem veranschaulichen, wobei ich die beiden Geraden da per Hand eingezeichnet habe, was natürlich keine "richtige" wissenschaftliche Methode ist...


    So..ich habe keine Ahnung, wie ich das machen soll und Google spuckt mir auch nix vernünftiges aus...Mathematisch bin ich nicht gerade in Übung, ist alles schon was länger her^^


    Was ich gerne hätte: eine Funktion, ein Skript, ein Irgendwas in Excel oder Matlab, was mir automatisch (habe sehr viele solcher Kurven, die alle den gleichen Verlauf haben) diesen beiden Gerade ausspuckt...Weiß jemand Rat?


    Vielen Dank :)

  • Sind das Ausgleichsgeraden auf einem bestimmten Gebiet oder Tangenten? Du könntest die Kurven in zwei Bereiche einteilen und jeweils mit der Trendfunktion eine Gerade (Ausgleichsgerade) durchlegen.


    Aber wie kommst du denn auf die obere Gerade?

  • Hm ja, das ginge wohl... da ist dann das Problem, dass die Einteilung der Kurve in die 2 Bereiche recht willkürlich ist - muss man ja irgendwie begründen können, warum man dann gerade diese Einteilung gewählt hat..


    In das Bild habe ich einfach nur schnell 2 Gerade reingemalt, um das Problem zu veranschaulichen..

  • Und da wird es dann wissenschaftlich :)
    Eine Teilung der Daten ist erstmal willkürlich.


    Die Frage ist aber doch: Was willst du verdeutlichen? Die Gerade werden ja nicht aus Spaß eingezeichnet.
    Oder auch: In welchen Bereichen kannst du dir große Abweichungen erlauben und in welchen Bereichen müssen die Geraden möglichst exakt folgen?
    Mit den Antworten auf diese Fragen kannst du dann deine Auswahl begründen. Am besten hast du bei allen Graphen die gleiche Antwort auf die Fragen und damit auch das gleiche Kriterium für die Teilung.


    Man könnte die Messwerte einfach in der Mitte teilen.
    Vielleicht sind aber auch die Randgebiete interessanter. Dann könnten die äußeren Drittel Sinn machen und die Mitte wird "ignoriert". Vielleicht ist auch eine ganz andere Einteilung sinnvoll. Das hängt aber ganz vom Zweck ab.
    Oder man nimmt die Unterschreitung eines bestimmten y-Wertes als Kriterium.

  • wie wärs, wenn du in matlab mit fminsearch ein kurzes skript schreibst, das folgendes tut:


    4 Parameter mit fminsearch ermitteln, und zwar steigung und aufpunkt zweier geraden, also a1, a2, b1, b2 mit
    y1 = a1*x + b1, y2 = a2*x + b2


    (a1, a2, b1, b2 sind dann also das ergebnis der optimierung, was fminsearch dir ausspuckt)


    als objective function für fminsearch, die es zu minimieren gilt, wählst du die quadratische Abweichung zwischen den Messdaten und dem oberen Teil der 2 sich kreuzenden Geraden, d.h. y = max(y1(i), y2(i))