Lineare Regression – Funktionsweise und Berechnung mit RStudio

Lesen Sie, wie lineare Regressionen funktionieren und wie Sie Regressionsmodelle in RStudio berechnen, grafisch darstellen und interpretieren.

Sebastian | 29.04.2023 | Lesedauer 6 min

In diesem Artikel geht es um die lineare Regressionsanalyse mit RStudio. Die lineare Regression ist eine von vielen möglichen Regressionsanalysen (z. B. binär-logistische Regression) und kann als einfache lineare Regression oder multiple lineare Regression angewandt werden. Bei der einfachen linearen Regression werden lediglich zwei Variablen im Modell berücksichtigt: eine unabhängige (erklärende) und eine abhängige (erklärte) Variable. Hingegen basiert die multiple lineare Regression auf zwei oder mehr unabhängigen Variablen, um die abhängige Variable zu erklären.

Die Grundidee der linearen Regressionsmodelle ist einfach zu verstehen. Man kann sich ein Streudiagramm vorstellen, bei dem man versucht, die Werte der Y-Achse (abhängige Variable) durch eine oder mehrere Variablen der X-Achse (unabhängige Variable) zu erklären. Dabei wird eine Regressionsgerade gezogen, die den beobachteten Werten so nahe wie möglich kommt. Das Modell geht von einer linearen Beziehung aus, die jedoch nur eine Annäherung an die tatsächlichen Gegebenheiten darstellt.

Lineare Regression – RStudio

Ein praktisches Beispiel verdeutlicht dies: Angenommen, wir möchten das Körpergewicht von Personen in unserer Datenbasis anhand ihrer Körpergrösse erklären. Es wird ersichtlich, dass im Durchschnitt eine grössere Körpergrösse mit einem höheren Körpergewicht einhergeht. Die gezeigte Regressionsgerade nähert sich diesem durchschnittlichen Zusammenhang an. Aus der positiven Steigung der Geraden lässt sich schliessen, dass zwischen den Variablen ein positiver Zusammenhang besteht („je mehr, desto mehr“).

Einzelne Personen in der Studie, die trotz kleiner Körpergrösse ein hohes Körpergewicht oder trotz grosser Körpergrösse ein niedriges Körpergewicht aufweisen, veranschaulichen den annähernden Charakter des Regressionsmodells. Die Abweichungen zwischen der Regressionsgeraden und den Datenpunkten (Residuen) wurden jedoch minimiert.

In der nächsten Sektion wird ein spezifisches Beispiel für die Anwendung der linearen Regressionsanalyse detailliert erläutert. Dabei werden einige Voraussetzungen hervorgehoben, die für die Anwendung eines linearen Regressionsmodells erfüllt sein sollten. Anschliessend werden Berechnungsschritte und Diagrammerstellung in RStudio dargestellt.

Bevor die lineare Regressionsanalyse durchgeführt wird, ist es wichtig, einige grundlegende Voraussetzungen für ihre Anwendung zu überprüfen, die hier nur kurz erwähnt werden. Zu diesen Voraussetzungen gehören:

  • Linearer Zusammenhang zwischen unabhängiger und abhängiger Variable.
  • Homoskedastizität, also konstante Varianz der Residuen.
  • Annähernd normalverteilte Residuen.
  • Keine Multikollinearität, also kein statistischer Zusammenhang zwischen den unabhängigen Variablen (bei multipler linearer Regressionsanalyse).
  • Möglichst keine Ausreisser in den Daten, die das Modell verfälschen könnten.

 

Lineare Regression in RStudio

In unserem Beispiel möchten wir die Lebenszufriedenheit von 40 Personen anhand ihres sportlichen Engagements untersuchen. Zuerst importieren wir den entsprechenden Datensatz in RStudio. Der Datensatz wird im linken oberen Bereich angezeigt, wo wir später auch auf das zu erstellende Skript zugreifen können. Im rechten oberen Bereich, der Umgebung, werden vorhandene Objekte dargestellt, hier zunächst nur das Objekt „datensatz“. Die Konsole, in der der im Skript eingegebene Code ausgeführt wird und Berechnungsergebnisse angezeigt werden, befindet sich im linken unteren Bereich (in diesem Beispiel minimiert). Im unteren rechten Bereich gibt es zusätzliche Funktionen wie Hilfe-Optionen und eine Liste verfügbarer Erweiterungen (Packages).

Lineare Regression – RStudio

 

Um Befehle einzugeben und unsere Arbeitsschritte zu dokumentieren, erstellen wir zunächst ein neues Skript. Dazu klicken wir auf das kleine „+“-Symbol in der linken oberen Ecke und wählen „R Skript“ aus. Alternativ können wir die Tastenkombination Strg+Shift+N verwenden. Danach öffnet sich neben dem Datensatz ein zusätzlicher Tab, in den wir den Code eintragen können.

Lineare Regression – RStudio

Lineare Regression – RStudio

In das Skript können wir nun die Befehle zur Ausgabe eines linearen Regressionsmodells eingeben. Dabei definieren wir zunächst den Namen des Modells, das hier als „model“ bezeichnet wird. Die Funktion zur Berechnung einer linearen Regression lautet „lm“ (linear model) und wird nach dem Operator für die Zuweisung „<-“ eingetragen. In Klammern werden schliesslich die beteiligten Variablem definiert, in diesem Fall „gewicht“ als abhängige und „grösse“ als unabhängige Variable. Die zu erklärende, abhängige Variable trägt man zuerst ein, anschliessend, getrennt durch eine Tilde (~), die erklärende, unabhängige Variable. Innerhalb der Klammer soll nach einem Komma zuletzt noch der Datensatz definiert werden, der im Zuge des Imports schlicht als „datensatz“ bezeichnet wurde. Mit der nächsten Zeile werden durch die Funktion „summary“, die mit dem in Klammern stehenden Modellnamen ergänzt wird, die Modellergebnisse ausgegeben. Die Befehle werden nun markiert und mit einem Klick auf den Befehl „Run“ ausgeführt.

model <- lm(Gewicht~Körpergrösse, data = datensatz)
summary(model)

Lineare Regression – RStudio

Schrittweise kann nun die Interpretation der Ausgabe erfolgen. So zeigt uns zunächst die F-Statistik am Ende der Ausgabe an, ob das Gesamtmodell signifikant ist. In diesem Fall liegt ein Wert p < 0,05 vor, sodass das Modell einen Teil der Varianz der abhängigen Variable erklärt. Die Modellgüte kann zudem mit dem R-Quadrat-Wert beurteilt werden, der den Anteil der erklärten Varianz an der Gesamtvarianz der abhängigen Variable angibt. Entsprechend kann R-Quadrat zwischen 0,0 (0 %) und 1,0 (100 %) liegen. In unserem Fall liegt der Wert bei 0,5893, sodass etwa 58,9 % der Gesamtvarianz aufgeklärt werden. Würde es sich um einen realen Datensatz handeln, wäre das ein hoher Wert. Gleichzeitig verdeutlicht er, dass ein Teil der beobachteten Varianz ungeklärt ist. Das ist nicht überraschend, da das Körpergewicht einer Person nicht nur von ihrer Körpergrösse abhängt.

Im Mittelpunkt der Modellinterpretation steht der Abschnitt „Coefficients“. Hier werden die unabhängigen Variablen tabellarisch aufgelistet. Anhand des Regressionskoeffizienten kann geschlussfolgert werden, dass das Körpergewicht um durchschnittlich 1,4160 kg steigt, wenn die Körpergrösse um eine Einheit (cm) erhöht wird. Der Koeffizient ist zudem statistisch signifikant mit p < 0,01. In einem multiplen linearen Regressionsmodell würden die Koeffizienten der weiteren unabhängigen Variablen analog interpretiert.

 

Multiple Regression und Fallauswahl

Würden wir zur Erklärung des Gewichts der Personen im Datensatz nicht nur die Körpergrösse, sondern z. B. auch das Alter heranziehen, müssten wir eine multiple lineare Regression berechnen. Der o. g. Befehl für das Skript wird dann folgendermassen ergänzt, wobei auch noch zusätzliche Variablen jeweils nach einem „+“ hinzugefügt werden können:

model <- lm(Gewicht~Körpergrösse+Alter, data = datensatz)
summary(model)

Möchten wir im Regressionsmodell nicht alle Fälle im Datensatz verarbeiten, sondern nur bestimmte Personen auswählen, können wir vorher ein Subset definieren. Angenommen, der Datensatz enthielte zusätzlich die Variable „Geschlecht“ und wir wollten ausschliesslich weibliche Personen (Ausprägung: 1) für die Regression auswählen, wird das Subset so definiert:

subset_weiblich <- subset(datensatz, Geschlecht == 1)

Anschliessend wird der Befehl für die lineare Regression ausschliesslich auf diese Gruppe angewendet, indem wir ihn auf die Daten „subset_weiblich“ anwenden:

model2 <- lm(Gewicht~Körpergrösse, data = subset_weiblich)
summary(model2)

Lineare Regression – RStudio

 

Grafische Darstellung eines linearen Regressionsmodells

Neben der Ausgabe der Regressionskennzahlen gibt es in R mehrere Möglichkeiten, das Regressionsmodell grafisch darzustellen. Ohne Zugriff auf Pakete ist dies z. B. mit der „plot()“-Funktion möglich. Hierfür geben wir zunächst den Namen der Funktion ins Skript ein und spezifizieren sie anschliessend in den Klammern. Entsprechend können zunächst X- und Y-Variable und dann die Benennung der Achsen definiert werden. Mit einer weiteren Funktion „abline()“ fügen wir schliesslich eine Regressionsgerade hinzu. Innerhalb der Funktion werden erneut X- und Y-Variable spezifiziert:

plot(datensatz$Körpergrösse, datensatz$Gewicht, xlab = "Körpergrösse", ylab = "Gewicht",
abline(lm(datensatz$Gewicht~datensatz$Körpergrösse)))

Lineare Regression – RStudio

Eine weitere Möglichkeit zur Diagrammerstellung bietet sich durch die Installation des beliebten Pakets „ggplot“, das wir zunächst über folgende Befehle im Skript herunterladen. Für die Integration der Regressionsgleichung benötigen wir ausserdem das Paket „ggpubr“.

install.packages("ggplot2")
library(ggplot2)
install.packages("ggpubr")
library(ggpubr)

Anschliessend können wir mithilfe der Funktion „ggplot()“ das gewünschte Diagramm erstellen. In der ersten Zeile des Befehls werden der Datensatz sowie X- und Y-Variable definiert. Mit „geom_smooth()“ in der nächsten Zeile stellen wir mit „lm“ ein, dass wir eine lineare Regressionsgerade brauchen, wobei zusätzlich das Konfidenzintervall der Geraden visualisiert wird. Die Funktion „geom_point()“ dient der Anzeigeeinstellung der Datenpunkte, die wir leer und damit bei der Voreinstellung belassen. In der folgenden Zeile wird die Funktion „stat_regline_equation()“ für die Ausgabe der Regressionsgleichung verwendet, wobei die genaue Position der Gleichung in Klammern festgelegt wird. Zuletzt werden nach „labs()“ X- und Y-Achse beschriftet.

ggplot(datensatz, aes(x=Körpergrösse, y=Gewicht)) +
geom_smooth(method="lm") +
geom_point()
stat_regline_equation(label.x=170, label.y=90) +
labs(x="Körpergrösse", y = "Gewicht")

Lineare Regression – RStudio

 

Weiterführende Literatur:

Fahrmeir, L., Heumann, C., Künstler, R., Pigeot, I. & Tutz, G. (2016). Einführung in R. Berlin, Heidelberg: Springer.
Hedderich, J., Sachs, L. (2020). Angewandte Statistik. Berlin, Heidelberg: Springer.