Regression (Ausgleichs-Funktionen)

Das bekannteste Beispiel ist eine Ausgleichs-Gerade:
Man legt eine gerade Linie so durch eine 'Wolke' aus mehr oder weniger 'gestreuten' Daten-Punkten, dass die Summe der Abstands-Quadrate ein Minimum wird.

Die Methode lässt sich jedoch nicht nur auf einfache Geraden sondern auf beliebige Funktionen anwenden. Auf dieser Seite wird vorgestellt, wie man Ausgleichs-Polynome verwenden und selbst berechnen kann. Polynome 2. oder 3. Grades werden oft zur praktischen Beschreibung von Daten verwendet, wenn der innere Zusammenhang nicht bekannt ist oder sich nur mit großem Aufwand berechnen lässt.

Man sollte die Methode jedoch mit Augenmaß anwenden: Mit einem Ausgleichs-Polynom kann man beliebige Daten beschreiben. Das bedeutet jedoch nicht unbedingt, dass die gefundene Funktion einen realen Vorgang beschreibt. Es sollte als Warnung dienen, dass für die Beispiele dieser Seite Zufalls-Daten verwendet werden.


Download

Verwandte Themen


Polynom-Regression




Man kann Regressions-Formeln verwenden, um reale Daten zu 'glätten', d.h. zufällige Abweichungen auszublenden und die wesentlichen Zusammenhänge zu finden.
Die Methode gibt jedoch keine Auskunft darüber, ob tatsächlich ein Zusammenhang zwischen den jeweiligen Daten-Paaren besteht.
Zur Demonstration verwenden alle Beispiele dieser Seite entweder zufällige Daten oder interaktiv eingegebene Daten (grün unterlegte Felder).




Die Berechnnung des Faktors a0 in Zelle G2 ist alternativ mit mehreren Formeln möglich, z.B. mit
=MITTELWERT(B2:B5)
=SUMME(B2:B5)/ANZAHL(B2:B5)

Mit der Taste Rauschen kann man ausprobieren, wie empfindlich die Methode auf kleine Änderungen der Daten reagiert.



Anwendung: Berechnung der Funktions-Werte

Die Anwendung erfordert zuerst die Berechnung der beiden Faktoren, die man je nach Vorliebe mit a0,a1 oder mit d,k benennen kann.
Erst danach kann man die Werte der 'Ausgleichsgeraden' berechnen (hier mit y(linreg) bezeichnet. Im Beispiel werden die Y-Werte der Ausgleichs-Geraden nur für die vorgegebenen Punkte berechnet. Man kann die Y-Werte jedoch für beliebige X-Koordinaten berechnen, z.B. auch zwischen bekannten Punkten (Interpolation) oder außerhalb (Extrapolation).



Die Funktion TREND() berechnet direkt die Punkte der 'Ausgleichsgeraden' ohne Umweg über Faktoren.

Die Funktion braucht zuerst die gleichen Argumente wie STEIGUNG(), danach den zu berechnenden X-Wert:
=TREND(Y-Werte;X-Werte;Neuer-X-Wert)
Auch in diesem Fall kann man die Berechnung auf bisher unbekannte X-Werte anwenden und mit der Ausgleichs-Geraden intrapolieren oder extrapolieren.


Wenn dieses Problem auftritt, dann muss man die Funktion löschen und als Matrix-Funktion neu programmieren:
Markieren sie zuerst den gesamten Bereich aller zu berechnenden TREND()-Funktionen (im Beispiel D2:D5).
Tragen sie die Funktion ein und geben sie als X-Wert die gesamte Spalte der X-Werte ein:
=TREND(B2:B5;A2;A5;A2:A5)
Bestätigen sie die Formel nicht mit Enter oder Return, sondern mit den Tasten Strg-Shift-Enter

Polynom-Regression mit Basic-(VBA)-Funktionen




Für n Punkte kann man immer ein Polynom (n-1)ten Grades angeben, welches alle Punkte fehlerfrei verbindet. (Bedingung: Die Punkte unterscheiden sich in ihren X-Koordinaten).
Für eine seriöse Aussage sollte der Polynom-Grad wesentlich kleiner als die Anzahl der Datenpunkte sein. Man kann die 'Empfindlichkeit' des Ergebnisses mit der Taste  Rauschen  prüfen.



Dazu wird die Basic-Funktion PolyReg_Synthesis() verwendet.
Alternativ kann man die Funktions-Werte auch mit Standard-Methoden berechnen, d.h. die nebenstehende Formel selbst programmieren - Das ist nicht schwierig, wenn erst einmal die Polynom-Faktoren bekannt sind.



Die Original Basic-Funktion ist nicht begrenzt, d.h. sie kann theoretisch Polynome beliebigen Grades berechnen.

Auf dieser Webseite werden die gleichen Funktionen wie im Basic-Modul verwendet, jedoch in einer etwas veränderten Version für die Programmiersprache → Javascript.
Alle Javascript-Funktionen sind im Quelltext dieser Webseite enthalten.

Die Diagramme werden mit → SVG als Objekt-Grafik erzeugt. Auch im SVG-Quelltext werden Javascript-Funktionen verwendet, allerdings nur zum Zeichnen der Grafik mit Hilfe der hier berechneten Polynom-Faktoren.

Polynom-Regression mit Matrix-Funktionen

• Bereiten sie die XY-Werte-Paare vor, z.B. so wie hier vorgeschlagen.
• Berechnen sie zuerst Achsenabschnitt und Steigung mit einfachen Funktionen.
• Berechnen sie danach die Matrix-Formel in B12:C12
Die Ergebnisse (die beiden Faktoren a0,a1) sollten mit Achsenabschnitt und Steigung übereinstimmen.
• Berechnen sie höhere Polynome nur dann, wenn sie die Technik der Matrix-Funktionen beherrschen.

Anwendung der Matrix-Funktion RGP()

 ABCDE
1XX^2YY(reg1)Y(reg2)
2 =A2*A2 ? =$C$12+$B$12*$A2* =$C$13+$B$13*$A2+$A$13*$A2^2*
3 =A3*A3 ? =$C$12+$B$12*$A3* =$C$13+$B$13*$A3+$A$13*$A3^2*
4 =A4*A4 ? =$C$12+$B$12*$A4* =$C$13+$B$13*$A4+$A$13*$A4^2*
5 =A5*A5 ? =$C$12+$B$12*$A5* =$C$13+$B$13*$A5+$A$13*$A5^2*

Berechnung der Polynom-Faktoren

 ABC
10a2a1a0
11   =STEIGUNG(C2:C5;A2:A5) ? =ACHSENABSCHNITT(C2:C5;A2:A5) ?
12   {=RGP(C2:C5;A2:A5)} ? {=RGP(C2:C5;A2:A5)} ?
13 {=RGP(C2:C5;A2:B5)} ? {=RGP(C2:C5;A2:B5)} ? {=RGP(C2:C5;A2:B5)} ?

    (Eine Polynom-Grafik wird im ↓ nächsten Kapitel angezeigt)


Ausgleichs-Polynom 1.Grades (Gerade) mit Funktion RGP()

Die Matrix-Funktion RGP() kann mehrere Ergebnisse zurückzugeben. In diesem Beispiel gibt sie in Zeile 12 die beiden Polynom-Faktoren a0, a1 zurück.
Das Ergebnis soll in 2 Zellen eingetragen werden (hier B12:C12), daher muss man zuerst diese beiden Zellen markieren, die nebeneinander liegen müssen.
Danach wird die Formel eingetragen:
=RGP(C2:C5;A2:A5)
Nun wird die Formel mit den Tasten Strg-Shift-Enter eingetragen, nicht mit einer der Tasten Enter oder Return !

Kontrolle:
Wenn die Matrix-Formel korrekt eingetragen ist, dann wird sie in {} geschwungenen Klammern angezeigt. Sie muss das gleiche Ergebnis liefern wie die darüber gelegenen Zellen mit den Standard-Funktionen.
Versuchen sie nicht, die geschwungenen {} Klammern manuell einzutippen !

Nach Berechnung der beiden Polynom-Faktoren kann man die Ausgleichs-Gerade für jeden X-Wert berechnen:
y[reg1] = a0 + a1*x
so wie im Bereich D2:D5 des Beispiels gezeigt.



Die Matrix-Formel wird wieder mit den Tasten Strg-Shift-Enter abgeschlossen.

Kontrolle:
In jeder der 3 Zellen wird die gleiche Formel angezeigt, jedoch in geschwungene {} Klammern eingeschlossen.

Nach Berechnung der beiden Polynom-Faktoren kann man die Ausgleichs-Gerade für jeden X-Wert berechnen:
y[reg2] = a0 + a1*x + a2*x^2
so wie im Bereich E2:E5 des Beispiels gezeigt.



Die Funktion gibt die jeweiligen Polynom-Faktoren in nebeneinander liegenden Zellen aus, und zwar in der Reihenfolge fallender Indices, z.B. von links nach rechts a3, a2, a1, a0

Je höher man den Grad des Polynoms wählt, umso genauer werden die Daten der Ausgleichs-Kurve an die Daten angepasst.

Wenn man eine Anzahl von n Daten-Paaren vorgibt, dann kann man sie einem Polynom von (n-1)ten Grades immer exakt (ohne Abweichung) beschreiben.
Das sagt jedoch nichts über die Daten aus, sondern ist lediglich ein mathematischer Formalismus, der auch mit reinen Zufalls-Daten funktioniert.


Die von manchen Programm-Versionen angebotene Funktion POLYNOMIAL() ist schlecht dokumentiert, scheint aber zur Berechnung von Polynom-Regressions-Faktoren ungeeignet.



Im Bereich E2:E5 des Beispiels wird mit Hilfe der Polynom-Faktoren a0,a1,a2 eine Ausgleichs-Parabel (Polynom 2.Grades, im Beispiel mit Y(reg2) bezeichnet) berechnet:
y = a0 + a1 * x + a2 * x^2
Ein Polynom 2.Grades ist immer gleich gut oder besser an die vorgegebenen Daten angepasst. Beim Extrapolieren auf unbekannte X-Werte muss man jedoch vorsichtig sein: Wenn man sich von den bekannten Vorgaben entfernt, dann nimmt der mögliche Fehler viel rascher zu als bei Verwendung einer Ausgleichs-Geraden.