(unfertige Version!)


Die Methode der kleinsten Fehlerquadrate

Oftmals hat man das Problem, zu gegebenen (z.B. gemessenen) Wertepaaren (x|y) eine Funktion f zu bestimmen, so daß möglichst genau f(x)=y für alle Wertepaare gilt. Wenn die Funktion aus einer Linearkombination von n bekannten (d.h. vorgegebenen) Teilfunktionen φ1(x), φ2(x), ..., φn(x) besteht, also f(x) = a1·φ1(x) + a2·φ2(x) + ... + an·φn(x), dann kann man die unbekannten Koeffizienten ai eindeutig finden, wenn man genau n unterschiedliche Wertepaare (xi|yi) hat. (Alle x müssen unterschiedlich sein.)

Beispiel: Gesucht seien die Koeffizienten a, b und c einer Funktion f(x) = a·2x – 1 + bx + c, so daß f(1)=–3,3, f(3)=–0,7 und f(5)=3,7 ist.
Die drei Teilfunktionen heißen hier φ1(x)=2x–1, φ2(x)=x und φ3(x)=1 (denn c·φ3(x)=c nur wenn für alle x φ3(x)=1 ist).
Stelle das lineare Gleichungssystem auf:
I: a·21–1 + b·1 + c = a + b + c = –3,3
II: a·23–1 + b·3 + c = 4a + 3b + c = –0,7
III: a·25–1 + b·5 + c = 16a + 5b + c = 3,7
Lösen:
II'=II–I: 3a + 2b = 2,6
III'=III–I: 15a + 4b = 7
III''=III'–2II': 9a = 1,8 a = 0,2
in III': 15·0,2 + 4b = 7 b = 1
in I: 0,2 + 1 + c = –3,3 c = –4,5
Die gesuchte Funktion ist damit 0,2·2x–1 + x – 4,5

Hat man mehr als n Wertepaare, so ist das Gleichungssystem überbestimmt. Falls es sich bei den Wertepaaren um Meßwerte handelt, sind sie oftmals mit Fehlern behaftet, so daß man eine Funktion, die alle Werte genau interpoliert, überhaupt nicht finden kann. In diesen Fällen kann man sich von der Interpolationsforderung lösen und fordern, daß die Abweichung der Funktionswerte der zu findenden Funktion von den gemessenen y-Werten so klein wie möglich ist.

Die "Abweichung" kann hierbei im Grunde recht unterschiedlich definiert werden. Plausibel erscheint eine Definition, in der ein größerer Fehler überproportional mehr wiegt als ein kleiner; außerdem darf das Fehlermaß nicht vorzeichenbehaftet sein, denn sonst würde ein negativer Fehler einen betragsgleichen positiven Fehler ausgleichen. Die einfachen Quadrate der Differenzen zwischen Meßwert und Funktionswert erfüllen diese beiden Forderungen. (f(x) - y)² ist also ein geeignetes Maß für die Abweichung des bei x gemessenen Wertes y vom Wert, den die Funktion f für x ausgibt.

Man sucht also eine Funktion für die die Summe der Quadrate der einzelnen Differenzen zwischen Funktions- und Meßwerten minimal wird. Für diese Summe schreiben wir S:

S = (f(x1)-y1)2 + (f(x2)-y2)2 + ... + (f(xn)-yn)2
bzw.
S = ((f(xi) - yi)2)

Die notwendige Bedingung dafür, daß diese Summe minimal ist, ist daß ihre erste Ableitung 0 wird. Nun hängt ja diese Summe nicht von x, sondern von der Wahl der Koeffizienten innerhalb der Funktion f ab. Zur Erinnerung: f ist eine Linearkombination a1φ1(x) + a2φ2(x) + ... mit den zunächst unbekannten Koeffizienten ai. S ist also eine Funktion von a1, a2, ..., am. Wir suchen also Koeffizienten ai mit S'(a1, a2, ..., am) = 0.

Ohne in die Tiefe zu gehen, wie die Ableitung einer mehrdimensionalen Funktion bestimmt wird, und ohne auf das Gaußsche Fehlerfortpflanzungsgesetz einzugehen, das hier eigentlich dahinter steckt, gehen wir einmal "naiv" davon aus, daß wir nur den bestimmten Koeffizienten aj suchen, während die übrigen ai festliegen. Dann hängt S von aj ab, ist also quasi eine Funktion von aj, und die Ableitung von S nach aj ist mit der Anwendung von Kettenregel und Summenregel leicht anzugeben: S' = ∂∑/∂aj = ( 2(f(xi) - yi)·f'(xi) )

Auch die Ableitung f' nach aj ist leicht zu bestimmen, denn f ist ja eine Linearkombination, in der aj nur in einem Summand auftritt, und das linear. Die Ableitung f'/aj ist also gerade der zweite Faktor von aj·φj(x), also φj(x). Alle anderen Summanden von f sind konstant, weil sie nicht von aj abhängen, und fallen in der Ableitung weg. Somit ergibt sich für S':

S' = ( 2(f(xi) - yiφj(xi) )

Dies läßt sich vereinfachen, indem 2 ausgeklammert wird: S' = 2·((f(xi) - yiφj(xi))

Aus S'=0 ergibt sich somit die Gleichung 2·((f(xi) - yi)φj(xi)) = 0

Wir dividieren durch 2, multiplizieren die innere Klammer aus, teilen die Summe auf und schreiben die y nach rechts:
((f(xi) - yi)φj(xi)) = 0
((f(xiφj(xi) - yi·φj(xi)) = 0
f(xiφj(xi) - yi·φj(xi) = 0
f(xiφj(xi) = yi·φj(xi)

Wegen f(x) = a1φ1(x) + a2φ2(x) + ... + amφm(x), kann man schreiben
(a1φ1(xi) + a2φ2(xi) + ... + amφm(xi))·φj(xi) = yi·φj(xi)
(a1φ1(xiφj(xi) + a2φ2(xiφj(xi) + ... + amφm(xiφj(xi)) = yi·φj(xi)
a1φ1(xiφj(xi) + a2φ2(xiφj(xi) + ... + amφm(xiφj(xi) = yi·φj(xi)
a1·φ1(xiφj(xi) + a2·φ2(xiφj(xi) + ... + am·φm(xiφj(xi) = yi·φj(xi)

Gauß führte zur Vereinfachung die Schreibweise [φ1·φ2] für die Summe φ1(xiφ2(xi) über alle i ein.
Die obige Gleichung läßt sich damit einfacher schreiben: a1[φ1·φj] + a2[φ2·φj] + ... + am[φm·φj] = [y·φj(x)]. Dies ist eine lineare Gleichung über die unbekannten Koeffizienten a.

Führt man dieses Verfahren für jedes a durch, ergeben sich m lineare Gleichungen, mit denen die Koeffizienten a1 bis am eindeutig bestimmt werden können:

a1[φ1·φ1] + a2[φ2·φ1] + ... + am[φm·φ1] = [y·φ1(x)]
a1[φ1·φ2] + a2[φ2·φ2] + ... + am[φm·φ2] = [y·φ2(x)]
...
a1[φ1·φm] + a2[φ2·φm] + ... + am[φm·φm] = [y·φm(x)]

 

Zum Nachvollziehen rechne ich das nochmal anhand eines konkreten Falles durch. Gesucht sei eine kubische Funktion f(x) = ax³ + bx² + cx + d, die eine Reihe von n Meßwertpaaren (x1|y1), (x2|y2), ... (xn|yn) optimal, d.h. mit minimaler Summe der Fehlerquadrate, approximiert. (Da vier Koeffizienten gesucht sind, sei n>4.)

Die Summe S der Fehlerquadrate ist S = (axi³ + bxi² + cxi + d - yi)².

Das wird minimal bei S'=0. Da S von jedem der vier Koeffizienten abhängt, suchen wir Koeffizienten, für die die partielle Ableitung S' nach jedem Koeffizient 0 wird:
Die Ableitung von S nach a ist: S/a = (2(axi³ + bxi² + cxi + d - yi)·xi³)
Die Ableitung von S nach b ist: S/a = (2(axi³ + bxi² + cxi + d - yi)·xi²)
Die Ableitung von S nach c ist: S/a = (2(axi³ + bxi² + cxi + d - yi)·xi)
Die Ableitung von S nach d ist: S/a = (2(axi³ + bxi² + cxi + d - yi))

Setzt man die Ableitung nach a in der ersten Zeile gleich 0, dividiert durch 2 und formt um, gewinnt man nach und nach:
(axi³·xi³ + bxi²·xi³ + cxi·xi³ + d·xi³ - yi·xi³) = 0
axi³·xi³ + bxi²·xi³ + cxi·xi³ + d·xi³ - yi·xi³ = 0
axi³·xi³ + bxi²·xi³ + cxi·xi³ + d·xi³ = yi·xi³
xi³·xi³ + b·xi²·xi³ + c·xi·xi³ + d·xi³ = yi·xi³

Natürlich lassen sich die Potenzen zusammenfassen, so daß sich ergibt:
xi6 + b·xi5 + c·xi4 + d·xi3 = yi·xi3
bzw. in der vereinfachten Schreibweise mit Gaußschen Summenklammern:
a·[x6] + b·[x5] + c·[x4] + d·[x3] = [y·x3]

Für die übrigen partiellen Ableitungen ergibt sich analog:
a·[x5] + b·[x4] + c·[x3] + d·[x2] = [y·x2]
a·[x4] + b·[x3] + c·[x2] + d·[x] = [y·x]
a·[x3] + b·[x2] + c·[x] + d·[1] = [y]

Der Ausdruck [1] in der letzten Gleichung bedeutet (1) für i=1 bis n, ist also gleich n, der Anzahl der Meßwerte bzw. der gegebenen Wertepaare.

 

(unfertige Version!)