# GNU R: lm
## Einführung

Die lineare Regression (kurz: LR) wird in diesem GNU-R-Wikibook behandelt, um diesen Spezialfall der Regressionsanalyse in R mit der Funktion lm(...) implementieren zu können. Man lernt dadurch mit einem statistisches Verfahren konkrete Daten auszuwerten, für die linearer Zusammenhang zwischen einer beobachteten abhängige Variable und mehreren unabhängigen Variablen zu untersuchen. Bei der linearen Regression wird dabei ein lineares Modell (kurz: LM) angenommen.

### Funktionsgerade als Approximation

Im einfachsten Fall entsteht als lineare Modell eine Gerade als Funktionsgraph.
Die Funktionvorschrift von $f:\mathbb {R} \to \mathbb {R}$ hat dabei zwei Parameter $a,b\in \mathbb {R}$ mit $f(x)=a\cdot x+b$.
* $a$ ist die Steigung der Gerade,
* $b$ ist die $y$-Achsenabschnitt, bei dem der Graph der Funktion $f$ die $y$-Achse schneidet.

### Bestimmung der Funktionsparameter

Man sieht in dem obigen Diagramm, dass die Funktiongerade zu den Datenpunkten laufen kann, weil die Datenpunkte nicht alle auf einer Geraden liegen. Die mit lm(y~x) berechnete Regressionsgerade gibt dabei die beste Näherung für die Funktionswerte an.

## Einsatz der Funktion lm

Als erstes Beispiel verwenden wir den Datensatz aus Beispiel 5, welcher das Gewicht eines Babys an verschiedenen Lebenstagen enthält.

### Annahme eines linearen Zusammenhangs

Dabei wird angenommen, dass der Zusammenhang zwischen Alter und Gewicht linear ist.

### Bemerkung - Annahme

Die Annahme eines linearen Zusammenhangs benötigt ein inhaltliches Verständnis für die die Daten, denn im fortgeschrittenen Alter als Erwachsener kann dieser mit lm(X~Y) nicht mehr angenommen werden.

### Vektoren als Eingabedaten

Es werden Vektoren als Eingabedaten $x\in \mathbb {R} ^{n}$ und Ausgabedaten $y\in \mathbb {R} ^{n}$ definiert, die in einem linearen Zusammenhang stehen.

### Datenpunkte plotten

Der Definitionsbereich des linearen Modells für $x\in \mathbb {R}$ ist eindimensional und der Wertebereich des linearen Modells für $y\in \mathbb {R}$ ist ebenfalls eindimensional. Damit ist der Graph zweidimensional und die Punktdaten können in einem zweidimensionalen Graphen geplottet werden.
In höherdimensionalen linearen Modellen ist graphische Darstellung nicht mehr so einfach möglich. Wenn die Summe der Ein- und Ausgabedimensionen 3 ist kann man die Daten noch in einem 3D-Plot anzeigen.

### Anwendung der Linearen Regressionanalyse

Die Vektoren sollten die gleiche Länge haben. Dies kann man in R mit dem Befehl length(...) überprüfen.
Man erhält die folgende Ausgabe für lm(y~x):
Dabei ist Intercept der $y-AchsenabschnittderGeradenmit<math>b=-77,76311$ und die Steigung der Geraden ist $a=0.02631$.

### Dataframe erzeugen

Aus den Ein-Ausgabedaten wird nun ein Dataframe erzeugt und dem Anwendungsbeispiel sinnvollen Spaltenüberschriften versehen (x Lebenstag, y Gewicht). Diese Benennung ist auch für die Lesbarkeit und Interpretierbarkeit der Daten wichtig. Das Ergebnis ist eine Wertetabelle mit den Spaltennamen "Lebenstag" und "Gewicht"

### Regressionsanalyse mit lm durchführen

Nun verwendet man die erste und zweite Spalte aus dem Dataframe für die Regressionsanalyse mit lm

### Plotten der Daten mit Regressionsgerade

Beachten Sie, dass lm(...) als Eingaben y~x erhält, wobei die Vektoren in umgekehrter Reihenfolge angegeben werden und durch ein Tilde-Symbol getrennt sind. Dagegen erhält plot den x-Vektor aus dem Definitionsbereich und dann den y-Vektor aus dem Wertebereich als Funktionsparameter erhält (standardmäßig durch ein Komma getrennt).

## Definition einer eigenen Funktion

Mit der Definition einer eigenen Funktion kann man mehrere Befehlschritte durch einen Funktionsaufruf ersetzen. Mit der Funktion plot4linreg(x,y,name4x,name4y) möchte man als Parameter einen Vektor $x\in \mathbb {R} ^{n}$ als unabhängige Variable übergeben und Vektor $y\in \mathbb {R} ^{n}$ als abhängig Variable und dann
* (1) Steigung und y-Achsenabschnitt der linearen Regression mit lm(...) berechnet
* (2) die Datenpunkte zusammen mit der Regressionsgerade zeichnen.

### Grundlegende Befehlsfolge für Plot

In dem folgenden Beispiel wird die grundlegende Befehlsfolge für den Plot gezeigt:

### Achsenbezeichnung ergänzen

In der obigen Abbildung erkennt man dass die Bezeichnungen an den Achsen jeweils "x" und "y" sind. In Analogie zu dem Beispieldaten entspricht "x" der Anzahl der Tage nach der Geburt, an dem das Baby gewogen wurde. "y" als anhängige Variable bezeichnet das Gewicht des Kindes an dem Tag "x". Um andere Achsenbezeichnungen zu erhalten verwendet man "xlab" und "ylab".
Plot Sie diese Funktion in R.

### Funktionsdefinition plot4linreg

Nun können sind die Vorbereitungen getroffen den Plot für die lineare Regression als Funktion zu definieren.
Die obige Funktionsdefinition beginnt 4 Kommentarzeilen, die die Bedeutung der erwarteten Parameter erläutert, Wenn man nach längerer Zeit wieder in die Funktionsdefinition schaut, helfen diese Kommentar dabei, den Code nachvollziehen. Dies hilft insbesondere, wenn man Code zwischen Lernenden austauscht.

### Funktionsaufruf plot4linreg

Die Definition der Funktion kann nur verwendet werden, um die Plots für unterschiedliche Eingabevektoren x1,x2,x3,... und unterschiedliche Ausgabevektoren y1,y2,y3,... zu berechnen.

### Bemerkung - Daten - Dataframe

Die unterschiedliche Vektoren x1,x2,x3,... und y1,y2,y3,... sind in der Regel Spaltenvektoren, die aus einem Dataframe stammen bzw. aus eine Tabelle in ein Dataframe eingeladen wurden.

## Siehe auch

* affines Modell
* Multiple lineare Regression
* Mehrdimensionale lineare Regression - Wikiversity
* GNU R: Regression
* Kurs:Maschinelles Lernen

## Seiten-Information
### Wikipedia2Wikiversity

Diese Seite wurde auf Basis der folgenden [[w:de:Lineare Regression|Wikipedia-Quelle] erstellt:
* Lineare Regression
* Datum: 31.5.2024
* Wikipedia2Wikiversity-Konverter: https://niebert.github.io/Wikipedia2Wikiversity