Der NIPALS-Algorithmus
Author: Administrator (default)
Der NIPALS-Algorithmus ("Nonlinear Iterative Partial Least Squares") wurde von H. Wold ( ) zuerst für die PCA und später für die PLS entwickelt. Dieser Algorithmus gehört zu den am meisten verwendeten Methoden zur Berechnung der Hauptkomponenten eines Datensatzes. Er erzeugt numerisch genauere Ergebnisse als die Sigulärwertzerlegung (SVD) der Kovarianzmatrix. Allerdings ist der NIPALS-Algorithmus langsamer als das SVD-Verfahren.
Unter der Annahme, dass die zu analysierenden Daten in der Matrix X gespeichert sind, ergeben sich für die Berechnung der Loadings u und der Scores v folgende Schritte:
Schritt |
Mathematik |
Erklärung |
1. |
u := xi |
Einen Spaltenvektor xi der Matrix X auswählen und in den Vektor u kopieren |
2. |
v := (X'u)/(u'u) |
Die Matrix X auf u projizieren, um die korrespondierenden Loadings v zu finden. |
3. |
v := v/|v| |
Den Loading-Vektor v auf die Länge 1 normieren. |
4. |
uold := u
u := (Xp)/(v'v) |
Den aktuellen Score-Vektor u in der Variablen uold zwischenspeichern. Nun die Matrix X auf v projizieren um den entsprechenden Score-Vektor u zu finden. |
5. |
d := uold-u |
Um die Konvergenz des Verfahrens zu überprüfen, berechnet man den Differenzvektor d als Differenz zwischen dem alten und dem neuen Score-Vektor. Falls die Differenz |d| größer als eine vorgegebene Schwelle (z.B. 10-8) ist, wird bei Punkt 2 fortgefahren. |
6. |
E := X - tp' |
Die abgeschätzte Hauptkomponente (das ist das Produkt aus Score- und Loading-Vektor) von der Matrix X subtrahieren. |
7. |
X := E |
Um die restlichen Hauptkomponenten abzuschätzen, wird diese Prozedur von Schritt 1 an wiederholt; allerdings mit der Matrix E als das neue X |
Anmerkung
Interessanterweise gibt es in Schweden auch einen Berg, der Nipals heisst [68°00'N, 18°42'E]
|