# Mehrdimensionale lineare Regression/Komponentenfunktionen
## Einleitung

Diese Seite zum Thema Mehrdimensionale lineare Regression/Komponentenfunktionen kann als Wiki2Reveal Folien angezeigt werden. Einzelne Abschnitte werden als Folien betrachtet und Änderungen an den Folien wirken sich sofort auf den Inhalt der Folien aus. Dabei werden die folgenden Teilaspekte im Detail behandelt:
* (1 Zerlegung einer linearen Funktion $f(x)=A\cdot x$ in lineare Komponentenfunktionen $f_{a}(x)=\langle a,x\rangle$
* (2) Durchführung der linearen Regression für die Komponentenfunktion.
* (3) Nutzung der Regression bzgl. der Komponentenfunktion $f_{a}(x)=\langle a,x\rangle$ für die Funktion $f(x)=A\cdot x$ mit darstellender $m\times n$-Matrix $A$.

## Zielsetzung

Diese Lernressource zu den Komponentenfunktionen eine mehrdimensionalen lineare Abbildung hat das Ziel, die lineare Regression einer mehrdimensionalen Funktion $f(x)=A\cdot x$ auf eine einfachere lineare Regression der Komponentenfunktionen $f_{x)=\langle a,x\rangle$ als Skalarprodukt zu vereinfachen und dann diese lineare Regression mit einem eindimensionalen Wertebereich durchzuführen.

## Lernvoraussetzungen

Die Lernressource zum Thema Mehrdimensionale lineare Regression/Komponentenfunktionen hat die folgenden Lernvoraussetzungen, die zum Verständnis der nachfolgenden Ausführungen hilfreich bzw. notwendig sind.
* Grundkenntnisse über lineare Abbildungen und Gradient des Fehlers eines linearen Funktionals
* Grundkenntnisse über die Implementation von Funktionen in GNU R.

## Ziel der linearen Regression - Dimension 1

Ist der Wertebereich der linearen Abbildung eindimensional ist $f_{a}(x)=\langle a,x\rangle \in \mathbb {R}$ und Daten $\mathbb {D} :=\{(x^{(1)},y^{(1)}),\ldots ,(x^{(m)},y^{(m)})\}$ sucht man einen geeigneten Vektor $a\in \mathbb {R} ^{n}$, sodass der absolute aggregierte quadratische Fehler $E_{_{LR}}(a,x_{\mathbb {D} },y_{\mathbb {D} })$ über alle Daten aus $\mathbb {D}$ möglichst klein wird.
    $E_{_{LR}}(a,x_{\mathbb {D} },y_{\mathbb {D} }):=\sum _{k=1}^{d}\|f_{a}(x^{(k)})-y^{(k)}\|^{2}{\mbox{ minimal}}$

### Fehler für Datenpunkte

Für einen einzelnen Datenpunkt $(x,y)=(x_{1},\ldots ,x_{n},y)\in \mathbb {R} ^{n+1}$ kann man mit $f_{a}(x)=\langle a,x\rangle$ jeweils den Fehler wie folgt angeben:
    $f_{a}(x)-y=\langle a,x\rangle -y$

### Definition der Fehlerfunktion

Nun kann man die Fehlerfunktion $e_{_{LR}}$ der linearen Regression mit eindimensionalen Wertebereich definieren:
    ${\begin{array}{rrcl}e_{_{LR}}:&\mathbb {R} ^{n}\times \mathbb {R} ^{n}\times \mathbb {R} &\rightarrow &\mathbb {R} \\&\left(a,x,y\right)&\mapsto &e_{_{LR}}\left(a,x,y\right)=\langle a,x\rangle -y\end{array}}$

### Implemenation der Fehlerfunktion in R

In der folgenden Implementation bezeichnet p immer Variablen, die als Parameter der Funktion übergeben.

### Aufruf der Fehlerfunktion in R

Mit der obigen Definition steht nun die Funktion zur Verfügung und man kann den Fehler für gegebene Vektoren $a,x\in \mathbb {R} ^{n}$ und dem Messwert $y\in \mathbb {R}$ berechnen.

### Quadratische Fehler für Datenpunkte

Der quadratische Fehler ergibt aus dem Quadrat der euklidischen Länge (Norm) des Fehlervektors $e$ mit
    $\|e\|^{2}:=\|f(x)-y\|^{2}=\left\|{\begin{pmatrix}-1\\1\end{pmatrix}}\right\|^{2}=(-1)^{2}+1^{2}=2$
Dabei ist die euklidische Norm wie folgt definiert:
    $\|y\|:=\left\|{\begin{pmatrix}y_{1}\\\vdots \\y_{m}\end{pmatrix}}\right\|={\sqrt {\sum _{k=0}^{m}y_{k}^{2}}}$

### Implementation - Quadratischer Fehler in R

Die Norm ist in R bereits definiert und kann wie folgt berechnet werden.

#### Normquadrat - Summe der Komponentenquadrate

Da die Norm im obigen Beispiel quadriert wird, ist der absolute (quadratische) Fehler allgemein die Summe der Quadrate, d.h
    $\|y\|^{2}:=\left\|{\begin{pmatrix}y_{1}\\\vdots \\y_{m}\end{pmatrix}}\right\|^{2}=\sum _{k=0}^{m}y_{k}^{2}$

#### Implementation des quadratischen Fehlers in R

Damit lässt der quadratische Fehler wie folgt berechnen:

#### Bemerkung - Dimension des Vektors als Parameter px

Die Funktion error2(px) erlaubt das einsetzen von Spaltenvektoren error2(v) mit beliebiger Anzahl von numerischen Komponenten.

## Gradient der Fehlerfunktion in R
### Gradient für Vektor berechnen

Für die oben angegebenen und in R definierten Daten $x_{\mathbb {D} }$ und $x_{\mathbb {D} }$ wird nun der Gradient der Fehlerfunktion
    $Grad_{a}(E_{_{LR}})(a)=Grad_{a}(E_{_{LR}})(5,2,19)$
für den Vektor $a:=(5,2,19)\in \mathbb {R} ^{3}$ berechnet.