Hallo Leute, nach gut 2 Stunden Recherche auf dem Internet (welche
ihrerseits von 2 Stunden Grübeln gefolgt waren) gebe ich es auf… ein
einfaches Mathik Problem, bestimmt 1. Jahr Studium oder so… echt traurig…
Es geht um lineare Regression, sprich das Einplatzieren einer Linie
in eine Gruppe von Punkte. Ist ja ein einfaches Problem, dafür haben
wir LinAlg erfunden und dafür gibts die least-square Methode. Nur,
die least-square Methode betrachtet als Fehler den vertikalen Abstand
zwischen der gesuchten Linie und dem Datensatz. Ich möchte aber nicht
die Linie finden die diesen Fehler optimiert (spricht minimiert),
sondern die Linie die den kürzesten Abstand zwischen den Datenpunkten
und der Linie minimiert. Auf http://standards.nctm.org/document/eexamples/chap7/7.4/ wird das
ganze wunderschön Veranschaulicht.
Ist jemand von euch evt. eine Methode bekannt um diese Linie zu
kriegen? Evt Tips um es in Matlab effizient zu machen?
Hallo Manuel,
die „normale“ Regression bzw. Ausgleichsgerade führt auf ein leicht zu lösendes lineares Gleichungssystem. Ich fürchte, dass dein Abstandsmaß zu einem nichtlinearen Gleichungssystem führt, das dann wahrscheinlich nur iterativ zu lösen ist. Wenn aber sowieso schon Iterationen nötig sind, dann würde ich mal folgendes Verfahren probieren:
„Normale“ Regressionsgerade berechnen
Steigungswinkel berechnen,Koordinatensystem drehen, so dass Gerade horizintal verläuft
Schritt 1…2 wiederholen, bis sich „nichts“ mehr ändert …
Um das Aufsummieren von Fehlern zu vermeiden, sollte man bei den Drehungen wohl immer von den Originaldaten ausgegehen und diese jeweils um die Summe aller angefallenen Drehwinkel drehen. Wahrscheinlich wird’s auch noch etwas einfacher, wenn man die Daten vorher so transformiert, dass der Schwerpunkt im Ursprung oder wenigstens bei x=0 sitzt.
Ich möchte aber nicht
die Linie finden die diesen Fehler optimiert (spricht minimiert),
sondern die Linie die den kürzesten Abstand zwischen den Datenpunkten
und der Linie minimiert.
Das ist knifflig. Der Abstand zwischen einem Datenpunkt (xi,yi) und einer Geraden y=mx+n beträgt
di²=(x-xi)²+(m·x+n-yi)²
Um di² zu minimieren, leitet man es nach x ab, setzt das Ganze Null
Um die Regressionsgerade zu ermitteln, muß die Fehlerquadratsumme
FQS=Σdi²min
minimiert werden, indem man beispielsweise die partiellen Ableitungen nach den Parametern m und n Null setzt. Soweit ich das sehe, ergibt das ein nichtlineares Gleichungssystem, das nicht analytisch lösbar ist. Ohne Näherungsverfahren wird das also nichts.