Grafik von Isaac Smith – https://unsplash.com/@isaacmsmith

Lineare Regression: Einfache Korrelationen in Daten erkennen

Im Big Data Business sind (Ko-)Rellationen häufig sinnvoll um Entscheidungen zu treffen. Hier ist eine Methode solche Informationen zu finden: Lineare Regression.

Henrik Bartsch

Henrik Bartsch

Einordnung der linearen Regression

Bei der linearen Regression befinden wir uns im sogenannten Supervised Learning, eine Unterart des maschinellen Lernens. Bei dieser Art des maschinellen Lernens geht es darum, mithilfe bekannter Eingangs- und Ausgangsdaten Korrelationen zu finden und daraus ein Modell zu generieren.

Anwendungsgebiete der linearen Regression

Lineare Regression ist ein einfaches Werkzeug, um in vielen Daten-getriebenen Bereichen einfache und verständliche Korrelationen aufzustellen und um aus diesen Erkenntnissen zu ziehen. Die Qualität der Ergebnisse ist hierbei nicht unbedingt im Vordergrund, Fehler sollten bis zu einem bestimmten Punkt akzeptiert werden können. Trotz allem erreicht die lineare Regression es hiermit, sehr gut Trends oder andere Veränderungen erkennen zu lassen.

Klassische Themengebiete in welchen die lineare Regression verwendet werden sind die Psychologie und Wirtschaft, wenn Studien ausgewertet werden sollen. Wie Unternehmen lineare Regression beispielsweise verwenden könnten, wird auch in diesem Artikel kurz erklärt.

Wie funktioniert die lineare Regression?

Die lineare Regression basiert in ihrer Grundform auf dem Versuch, lineare Ausdrücke für den Zusammenhang zwischen verschiedener Metriken (den unabhängigen Variablen) und einer Zielmetrik (der sogenannten abhängigen Variable) zu finden, wobei von allen Metriken vorliegen müssen. Weiterhin ist die lineare Regression auf eine abhängige Variable beschränkt, während die Anzahl der unabhängigen Variablen grundsätzlich unbeschränkt ist. Die Anzahl der abhängigen Variablen wird in diesem Kontext mit nn bezeichnet. Es gibt ebenfalls Formen der linearen Regression, welche es erlauben mehrere abhängige Variablen zu definieren, auf diese wird hier allerdings nicht eingegangen.

Beispiel: Wir wollen die Abhängigkeiten von Notenschnitten von Schülern herausfinden. Diese Größe definieren wir uns hierfür als abhängige Variable, während wir uns Größen wie Schulstunden, Aufwand der Hausaufgaben (in Stunden) und das Einkommen der Eltern (in Euro) als abhängige Variablen definieren.

Nach der Definition verwenden wir eine lineare Gleichung, welche n+1n + 1 Parameter aufweist: nn Parameter für die Korrelation der abhängigen Variablen und ein Parameter für den “Grundwert” der unabhängigen Variable.

y:M1××MnM,y=a+b1x1++bnxn.y: M_1 \times \cdots \times M_n \rightarrow M, y = a + b_1 x_1 + \cdots + b_n x_n.

In dieser Gleichung bezeichnet yy die abhängige Variable und xi,i=1,...,nx_i, i=1, ..., n die abhängigen Variablen, MiM_i die Definitionsmengen der unabhängigen Variablen (alle möglichen Werte) und MM die Definitionsmenge der abhängigen Variable (klassischerweise die reellen Zahlen). Durch Lösung der Parameter aa, bib_i erhalten wir letztlich unser Modell. 1 2

Lösen der Parameter für die lineare Regression

Um nun auch die Parameter für die lineare Regression zu erhalten, verwenden wir den minimalen quadratischen Abstand (auch als least-squares Estimation bekannt). Dazu wollen wir die Summe des quadratischen Abstandes zwischen unserer “exakten Lösung” (hier: yy) und unseren NN Datenpunkten (yiy_i) minimieren:

J:=i=1Nyyi2. J := \sum_{i=1}^N |y - y_i|^2.

Die Funktion JJ wird hierbei als Kostenfunktion bezeichnet. Diese Funktion beschreibt, wie gut unser Modell sich an unsere Daten angepasst hat - niedrigere Werte stellen eine bessere Lösung dar. Dies geschieht allerdings nur durch eine “ideale” Anpassung der Parameter.

Einfache unabhängige Variable

Für eine einzelne unabhängige Variable haben wir ein Modell der Form

y=a+b1x1.y = a + b_1 x_1.

Hierbei lässt sich durch least-squares Estimation und

yˉ:=1Ni=1Nyi,xˉ:=1Ni=1Nxi \bar{y} := \frac{1}{N} \sum_{i=1}^N y_i, \bar{x} := \frac{1}{N} \sum_{i=1}^N x_i

die Lösung

a=yˉb1xˉ,b1=i=1N(xixˉ)(yiyˉ)i=1N(xixˉ)2 a = \bar{y} - b_1 \bar{x}, b_1 = \frac{\sum_{i=1}^N (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^N (x_i - \bar{x})^2}

berechnen. Dies kann direkt für die Berechnung von Korrelationen oder Trends verwendet werden.

Mehrere unabhängige Variablen

Bei mehreren unabhängigen Variablen ist die Lösung nicht mehr algebraisch direkt zu berechnen. In diesem Fall benötigen wir eine andere Kostenfunktion:

J(θ):=12Ni=1N(hθ(xi)yi)2J(\theta) := \frac{1}{2N} \sum_{i=1}^N (h_\theta(x_i) - y_i)^2

mit den Parameter-Vektoren θ\theta als Vektor aller Parameter (auch aa). Die Funktion hθ(x)h_\theta(x) stellt dann lediglich die Linearkombination aller Parameter mit den jeweiligen Features des Eingangsvektors dar.

Zur Lösung muss hier das sogenannte Gradientenverfahren herangezogen werden. Bei diesem Verfahren handelt es sich um einen iterativen Löser, welcher unseren Parametern kontinuierlichen Updates unterzieht, sodass die Kostenfunktion nach und nach minimiert wird. Grundsätzlich wird unser Verfahren dann nach einer Weile konvergieren, eine Garantie besteht hierbei allerdings nicht. Als klassischen Lösungsansatz wird hier meist das Ändern der Startparameter gelehrt. 3

Ein Anwendungsbeispiel

Eine lineare Regression kann auf die verschiedenste Daten angewandt werden.

Die Daten aus dem obigen Bild wurden der Einfachheit zufällig generiert. Eine Anwendung der linearen Regression auf die entsprechenden Daten ergibt das folgende Bild:

Aus dem berechneten mathematischen Modell und dem Bild können Schlussfolgerungen gezogen werden.

Bezogen auf das Beispiel mit Schulnoten könnten wir relativ klar aus der Steigung der Kurve identifizieren, das Schulnoten mit entsprechend höherem Zeitaufwand bessere Ergebnisse bringen. Hierbei sei angemerkt das die Daten oben in keinem Zusammenhang zu dieser Thematik stehen und dies lediglich eine Erklärung des Verfahrens darstellen soll.

Implementierung

Eine Implementierung einer linearen Regression ist mit unterschiedlichen Sprachen grundsätzlich nicht komplex. Hier eine Auflistung für verschiedene Programmiersprachen:

Python: geeksforgeeks.com, prepml.com

C++: medium.com, analyticsvidhya.com

Java: medium.com

Änderungen

[1] 03.01.2023: Einfügen einer Visualisierung der linearen Regression.

[2] 26.03.2023: Einfügen interaktiver Plots.

Quellen

Footnotes

  1. wikipedia.org

  2. vedantu.com

  3. machinelearningmedium.com