AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Regression / Abstand zu Punkten

Ein Thema von cltom · begonnen am 2. Jan 2014 · letzter Beitrag vom 8. Jan 2014
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
228 Beiträge
 
Delphi 12 Athens
 
#1

Regression / Abstand zu Punkten

  Alt 2. Jan 2014, 15:05
Hallo im neuen Jahr!

gegeben sind ein paar x-y-Daten (reell, kaum mehr als 50), die annähernd in Form einer Parabel verlaufen. Gesucht ist eine Gerade, die so durch die Punkte geht, dass die Fläche zwischen der Gerade und der (durch die Punkte gebildeten) Kurve möglichst klein ist. Anbei eine symbolische Skizze, die das klarer machen sollte. Effektiv gemessen werden diskrete Punkte. Durch diese wird dann eine Kurve gelegt (die rote Linie).

Gesucht also jene Gerade, bei der die Differenz der Summen der gelben und hellblauen Flächen möglichst klein ist. Ist das einfach die lineare Regression der Punkte? Es sieht im Grunde so aus, das ist aber wohl kein gültiger Beweis. Eine lineare Regression wäre natürlich etwas einfacher als eine Optimierung der Gerade auf möglichst geringe Differenzflächen. Am schönsten wäre es wohl, beides zu programmieren und dann zu schauen, wie groß die Unterschiede sind je nach Datensatz. Aber ich vermute, diese Fragestellung ist nicht ganz neu.

danke und gruß
cltom
Angehängte Grafiken
Dateityp: png regr.png (26,1 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Regression / Abstand zu Punkten

  Alt 2. Jan 2014, 15:20
Nein, die beiden Kriterien sind nicht identisch.

Stelle dir einfach mal vor, deine Punkte sind links auf dem aufsteigenden Ast der Parabel dicht und rechts dünn verteilt. Die Parabel lässt sich wunderbar fitten. Benutzt du nun die Parabel um die Gerade zu fitten, geht die Information flöten wo viele Punkte sind und wo wenig. Der RMS fehler der Punkte zur Gerade kann dadurch sehr groß werden.

Idealerweise solltest du direkt die Parabel weiterverwenden (wenn du weißt, dass es sich um eine Parabel handelt) oder eben eine Gerade durch die Punkte fitten.
  Mit Zitat antworten Zitat
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Regression / Abstand zu Punkten

  Alt 2. Jan 2014, 16:12
Korrekte Durchführung der Regression mittels Least Squares Fitting.
Alternativ wäre noch möglich das Simplex-Verfahren.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Regression / Abstand zu Punkten

  Alt 2. Jan 2014, 19:38
Als erstes bräuchtest du mal eine Formel für die liegende Parabel.
Ich würde mal
Code:
f(x) = a * (x-b)^c + d
versuchen wobei a bis d die gesuchten Parameter sind. (startwerte: a=1, b=0, c=0.5, d=0)
Evtl. könnte man das Koordinatensystem so drehen dass man mit
Code:
f(x) = a*x*x + b*x + c
arbeiten kann.

Zu Beginn setzt man die Parameter auf einigermassen sinnvolle Werte und beginnt die Berechnungen.
Man berechnet für jeden Punkt die y-Abweichung zur Funktion und quadriert diese Abweichung.
Alle quadrierten Abweichungen werden aufsummiert.
Dann verändert man der Reihe nach die verschiedenen Parameter zufallsgesteuert zwischen 0 bis 10%
und rechnet erneut.
Hat sich die Summe der quadrierten Abweichungen verkleinert dann werden diese Parameter zum neuen Ausgangspunkt.
Nach vielleicht 10000 Iterationen sollte die Kurve nahezu ideal zu den Punkten passen.
Mit zunehmender Zahl der Iterationen muss dann auch die zufällige Abweichung verringert werden (z.B. 10% , 5%, 2.5%,...).
fork me on Github
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Regression / Abstand zu Punkten

  Alt 2. Jan 2014, 20:28
Polynomiale Regression ist doch bekannt, womit das Polynom f(x)=a*x^2+b*x + c definiert ist, ergo die Kurve. Das simple Näherungsverfahren mit Regula Falsi kann man nun auf die Gerade beschränken. Ist weniger Arbeit. Man kann das auch analytisch lösen, aber das ist mir ne halbe Nummer zu hoch.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
228 Beiträge
 
Delphi 12 Athens
 
#6

AW: Regression / Abstand zu Punkten

  Alt 3. Jan 2014, 07:41
vielen Dank für die Antworten. Um die Fragestellung etwas zu präzisieren: es geht nicht um die Findung der Parabel, polynomiale Regression ist bekannt, da gibt es ja genug Material dazu. Gesucht ist aber eben jene Gerade, die die Parabel (eigentlich die ursprünlichen Datenpunkte) in der beschriebenen Weise schneidet (also wo Schnittflächen über und unter der Parabel gleich sind). Da ist schon die Frage, ob man sich mit dem Polynom-Fit einen Gefallen tut. Weil ich dort ja eine gewisse Abweichung erzeuge und dann später, beim Finden der Gerade mit gefitteten Werten arbeite.

Da wäre wohl der Weg von sx2008 denkbar, die Parameter per Zufall oft genug zu variieren. Denkbar wäre wohl auch, die Gerade in kleinen Winkelschritten zu rotieren und ganz einfach die Differenzen zu den ursprünglichen Datenpunkten zu variieren.

Eine analytische Lösung wär natürlich interessant, mir aber wohl eher zwei Nummern zu hoch ...

dank und gruß
cltom
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz