Einfache lineare Regression

In diesem Artikel wird nun - aufbauend auf das einführende Beispiel - beschrieben, wie man die Regressionsgerade für unsere Beispieldaten berechnet und einzeichnet. Zur Wiederholung:

Wir möchten die Ringgröße (y) unserer Freundin schätzen, um sie mit einem Ring zu überraschen. Wir wissen aber nur ihre Körpergröße (x). Um nun die Ringgröße zu schätzen, sammeln wir 20 Datenpunkte von Freunden und Bekannten, und notieren ihre Körpergröße und Ringgröße:

Person i 1 2 3 4 5 6 7 8 9 10
Körpergröße x 156.3 158.9 160.8 179.6 156.6 165.1 165.9 156.7 167.8 160.8
Ringgröße y 47.1 46.8 49.3 53.2 47.7 49.0 50.6 47.1 51.7 47.8

Wir nennen hier y die Zielgröße, da ihre Vorhersage unser Ziel ist. Die Körpergröße x wird allgemein auch Einflussgröße genannt. Es gibt aber noch unzählige andere Namen für die beiden Typen von Variablen. In anderen Quellen wird y auch häufig Zielvariable, Regressand, Outcome, erklärte Variable oder abhängige Variable (weil sie von x abhängig ist) genannt. Andere Namen für x sind Kovariable, Input, Regressor, erklärende Variable oder unabhängige Variable.

Diese Daten können wir nun in ein Streudiagramm einzeichnen, und erkennen sofort, dass größere Frauen tendenziell auch größere Ringe brauchen:

regression-motivation1

Die Regression ist nun eine statistische Methode, um die bestmögliche Gerade zu finden, die man durch diese Daten legen kann. Eine Gerade wird ja definiert durch zwei Parameter a und b; man kann sie dann darstellen als

 y = a + b \cdot x

Manchmal sieht man übrigens statt a + b \cdot x auch \alpha + \beta \cdot x oder \beta_0 + \beta_1 \cdot x, aber das sind nur andere Namen für dieselben Zahlen.

Berechnung der Parameter a und b

Wenn wir also die bestmögliche Gerade finden wollen, die wir durch diese Punktwolke an Daten legen können, ist das gleichbedeutend damit, dass wir die bestmöglichen Werte für a und b finden wollen. Und dafür wurden die folgenden beiden Formeln entdeckt:

 b = \frac{\sum_{i=1}^n (x_i - \bar{x}) \cdot (y_i - \bar{y})}{\sum_{i=1}^n (x_i - \bar{x})^2}

Die Formel für a ist einfacher, aber wir müssen vorher das Ergebnis für b berechnen und dort einsetzen:

 a = \bar{y} - b\cdot \bar{x}

Die Werte \bar{x} und \bar{y} sind jeweils die Mittelwerte der gemessenen Daten x und y.

Eine kürzere Formel für die Berechnung von b

Die Formel für b ist recht chaotisch, aber es gibt eine Möglichkeit, sie kürzer darzustellen, während sie immernoch dasselbe Ergebnis liefert:

 b = r_{xy} \cdot \frac{s_y}{s_x}

Dabei ist r_{xy} die Pearson-Korrelation zwischen x und y, und s_x und s_y jeweils die Standardabweichung von x bzw. y. Diese Werte muss man natürlich auch erstmal ausrechnen, so dass diese kürzere Formel insgesamt wahrscheinlich mehr Rechenaufwand bedeutet - außer man hat diese Zwischenergebnisse schon z.B. in einer vorherigen Teilaufgabe der Klausur erhalten und kann sie einfach einsetzen.

Beispielaufgabe

Wir berechnen hier die Werte a und b für die obenstehende Tabelle von 10 Personen. Dazu brauchen wir die Mittelwerte von x und y als Zwischenergebnisse:

 \begin{align*} \bar{x} &= \frac{1}{10} \cdot (156.3+158.9+160.8+179.6+156.6+165.1+165.9+156.7+167.8+160.8) \\ &= \frac{1}{10} \cdot 1628.5 \\ &= 162.85 \end{align*}

Genauso erhält man dann auch

 \bar{y} = 49.03

Zum Berechnen von b könnte man nun sofort loslegen, alles in den Taschenrechner einzutippen. Das ist aber anfällig für Leichtsinnsfehler, und oft reicht auch der Platz im Taschenrechner nicht für diese große Formel aus. Ich schlage also vor, in mehreren Schritten vorzugehen:

Bestimmen der Werte (x_i-\bar{x}) und (y_i-\bar{y})

Zuerst brauchen wir Zwischenergebnisse, wo wir von jedem Wert den zugehörigen Mittelwert abziehen. Aus der Tabelle

Person i 1 2 3 4 5 6 7 8 9 10
Körpergröße x 156.3 158.9 160.8 179.6 156.6 165.1 165.9 156.7 167.8 160.8
Ringgröße y 47.1 46.8 49.3 53.2 47.7 49.0 50.6 47.1 51.7 47.8

werden also die folgenden Werte berechnet:

Person i 1 2 3 4 5 6 7 8 9 10
(x_i-\bar{x}) -6.55 -3.95 -2.05 16.75 -6.25 2.25 3.05 -6.15 4.95 -2.05
(y_i-\bar{y}) -1.93 -2.23 0.27 4.17 -1.33 -0.03 1.57 -1.93 2.67 -1.23

Als Beispiel: Der erste Wert für (x_i-\bar{x}) ist einfach 156.3 - 162.85 = - 6.55.

Berechnen von b

Jetzt sind wir nicht weit vom Ergebnis entfernt. Wir brauchen im Zähler der Formel für b nun für jede Person i das Produkt der beiden Werte (x_i-\bar{x}) und (y_i-\bar{y}), für die erste Person also z.B. (-6.55 \cdot -1.93) = 12.6415.

Im Nenner der Formel für b brauchen wir das Quadrat der zweiten Zeile, also wir müssen (x_i-\bar{x})^2 berechnen.

Diese Werte berechnen wir nun für alle 10 Personen und können sie (ich runde auf zwei Nachkommastellen) in zwei neue Zeilen der Tabelle einfügen:

Person i 1 2 3 4 5 6 7 8 9 10
(x_i-\bar{x}) -6.55 -3.95 -2.05 16.75 -6.25 2.25 3.05 -6.15 4.95 -2.05
(y_i-\bar{y}) -1.93 -2.23 0.27 4.17 -1.33 -0.03 1.57 -1.93 2.67 -1.23
(x_i-\bar{x}) \cdot (y_i-\bar{y}) 12.64 8.81 -0.55 69.85 8.31 -0.07 4.79 11.87 13.22 2.52
(x_i-\bar{x})^2 42.90 15.60 4.20 280.56 39.06 5.06 9.30 37.82 24.50 4.20

Und wenn man sich jetzt nochmal die Formel für b anschaut, sieht man dass wir soweit sind: der Zähler ist die Summe der Werte in der dritten Zeile, und der Nenner die Summe der Werte in der vierten Zeile. Die ergeben sich zu

 \sum_{i=1}^n (x_i-\bar{x}) \cdot (y_i-\bar{y}) = 131.39

und

 \sum_{i=1}^n (x_i-\bar{x})^2 = 463.2

Somit können wir also b berechnen:

 b =\frac{\sum_{i=1}^n (x_i - \bar{x}) \cdot (y_i - \bar{y})}{\sum_{i=1}^n (x_i - \bar{x})^2} = \frac{131.39}{463.2} = 0.2836

Berechnen von a

Der Wert a ist nun mit diesem Ergebnis ganz einfach zu erhalten:

 a = \bar{y} - b\cdot \bar{x} = 49.03 - 0.2836 \cdot 162.85 = 2.8457

Vorhersage bei der einfachen linearen Regression

Bisher haben wir gelernt, wie man die beiden Koeffizienten a und b berechnet. Jetzt möchten wir mit Hilfe der Parameter auch für neue Daten x vorhersagen, welchen Wert für y wir erwarten.

Das Ziel, das wir mit der Regression erreichen wollen, ist nämlich folgendes: Angenommen es kommt eine neue Person, von der wir nur die Körpergröße x=170 wissen. Was ist dann der Erwartungswert der Ringgröße y? Wir suchen also \mathbb{E}(y|x), den bedingten Erwartungswert von y, gegeben man kennt x.

Bei der einfachen linearen Regression gibt es ja nur eine Einflussgröße x. Die Regressionsgerade lautet also

 y = a + b\cdot x

Um eine Vorhersage für die Zielgröße y zu erhalten, müssen wir also einfach den zugehörigen Wert für x in die Gleichung einsetzen. Die Werte für a und b haben wir vorher schon berechnet.

Als Beispiel: Im Beispiel aus dem vorherigen Artikel haben wir die Werte a=2.8457 und b=0.2836 bestimmt. Welche Ringgröße ist nun bei deiner Freundin zu erwarten, wenn sie eine Körpergröße von x=170cm hat? Dafür berechnen wir:

 y = a + b\cdot x = 2.8457 + 0.2836 \cdot 170 = 51.06

Ein Ring mit der Größe 51 sollte also gut bei ihr passen.

Es ist hier noch wichtig zu erwähnen, dass wir nur den Erwartungswert von y vorhersagen. Die Ringgröße wird also nicht exakt 51.06 sein, sondern es gibt immer einen kleinen Fehler, den man im linearen Modell \epsilon (sprich: Epsilon) nennt. In Wirklichkeit lautet die Regressionsgleichung also

 y = a + b \cdot x + \epsilon

wobei \epsilon einen zufälligen und unbekannten Fehler bezeichnet.

Einzeichnen der Regressionsgerade

Wir haben also nun die letztendliche Regressionsgerade berechnen können:

 y = 2.8457 + 0.2836 \cdot x

Um die Gerade dann einzuzeichnen, reicht es, zwei Punkte zu bestimmen, indem wir irgendwelche x-Werte aussuchen, und die zugehörigen y-Werte bestimmen. Die x-Werte sollten sich im Rahmen der "normalen" Werte der Daten bewegen. Mit Hilfe der Grafik können wir z.B. x=160 und x=170 aussuchen. Dann berechnen wir mit der Formel der Regressionsgeraden die zugehörigen y-Werte:

 2.8457 + 0.2836 \cdot 160 = 48.22

 2.8457 + 0.2836 \cdot 170 = 51.06

Die Punkte (160, 48.22) und (170, 51.06) können wir nun in das Streudiagramm einzeichnen, und eine Gerade durch die beiden Punkte ziehen:

regression-gerade

Und fertig! Puh.

10 Gedanken zu „Einfache lineare Regression

  1. Juli

    Wow, vielen Dank für deine so toll verständlichen Beispiele und Formulierungen.
    Ich schreibe bald mein Statistik 2 - Klausur. Leider hab ich die ANOVA- Themen auch noch nicht ganz drin, aber deine bisherigen Beiträge, die ich bisher nutzen konnte, sind wirklich Gold wert. 🙂

    Antworten
  2. Sebastian

    Hallo,

    also ein wirkllich sehr gelungener Blog. Was 10 skripte zusammn nicht erklären können, schaffst du in 10 Min. Empfehle ich weiter.

    Tip Top!
    VG
    Sebastian

    Antworten
  3. Alia Abdalla

    Vielen Dank, lieber Alex, für diese hilfreichen Erklärungen! Ich bestreite meinen gesamten Biometriekurs mit diesem Blog und bin nun zuversichtlich auch die Prüfung zu bestehen 🙂 du erklaerst das einfach super

    LG Alice

    Antworten
  4. Dan

    Hi Alex,
    da ich im Verbundstudium nur kurze Infos bekomme wollte ich mich für deinen Post bedanken! Hat mir in etwas mehr als einer Stunde erklärt, was der Dozent in 4 Stunden nicht geschafft hat 😉

    Antworten
  5. Michelle

    Hi Alex, ich hätte da eine Frage btw.. deine Einträge sind spitze.. aber eine Frage drängt sich mir auf..
    Wir haben ja die Y-Werte bestimmt.. mit Y= 48,22 und 51,06. Woher kommen dann auf einmal beim Einzeichnen die Werte 47,64 und 50,44. Vielleicht habe ich auch etwas übersehen?.. Aber das geht mir gerade nicht ein.. Danke

    Antworten
    1. AlexAlex Beitragsautor

      Ohweia, das war ein Fehler von mir. Ich habe da mal die Zahlen verändert, und ganz unten vergessen, sie anzupassen. Die 48.22 und 51.06 sind natürlich richtig, die anderen Zahlen waren falsch. Sorry - ich habs gerade korrigiert.

      Danke für den Hinweis 🙂
      Alex

      Antworten
  6. Zauberbohne

    Hallo und Dankeschön, das hat mir sehr geholfen! Allerdings habe ich eine Frage zur Kovarianz bzw. zur Berechnung von b. Über dem Bruchstrich steht ja im Prinzip die Kovarianz s(x,y). Muss man diese jetzt nicht noch durch n (also 10) teilen? (Laut manchen Formelsammlungen soll man auch durch n-1 teilen).
    Jedenfalls weicht mein Ergebnis für b dadurch um eine Kommastelle von dieser Lösung hier ab.
    Sind das einfach verschiedene Annäherungen, oder ein Fehler in meiner Formelsammlung?

    Antworten
    1. AlexAlex Beitragsautor

      Hi,
      eigentlich müsste man im Zähler und im Nenner durch n-1 teilen, ja. Da man das aber oben und unten macht, kürzt sich der Faktor wieder raus.
      VG,
      Alex

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.