Hauptkomponentenanalyse

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Hauptkomponentenanalyse als Faktorenanalyse: Zwei Hauptkomponenten einer zweidimensionalen Punktwolke (orthogonal rotiert)

Die Hauptkomponentenanalyse (das mathematische Verfahren ist auch bekannt als Hauptachsentransformation oder Singulärwertzerlegung) oder englisch Principal Component Analysis (PCA) ist ein Verfahren der multivariaten Statistik. Sie dient dazu, umfangreiche Datensätze zu strukturieren, zu vereinfachen und zu veranschaulichen, indem eine Vielzahl statistischer Variablen durch eine geringere Zahl möglichst aussagekräftiger Linearkombinationen (die „Hauptkomponenten“) genähert wird. Speziell in der Bildverarbeitung wird die Hauptkomponentenanalyse auch Karhunen-Loève-Transformation genannt. Sie ist von der Faktorenanalyse zu unterscheiden, mit der sie formale Ähnlichkeit hat und in der sie als Näherungsmethode zur Faktorenextraktion verwendet werden kann. (Der Unterschied der beiden Verfahren wird im Artikel Faktorenanalyse erläutert.)

Es gibt verschiedene Verallgemeinerungen der PCA, z. B. die Principal Curves, die Principal Surfaces oder die Kernel-PCA.

Geschichte[Bearbeiten]

Die Hauptkomponentenanalyse wurde von Karl Pearson 1901 eingeführt und in den 1930er Jahren von Harold Hotelling weiterentwickelt. Wie andere statistische Analysemethoden erlangte sie weite Verbreitung erst mit der zunehmenden Verfügbarkeit von Computern im dritten Viertel des 20. Jahrhunderts. Die ersten Anwendungen entstammten der Biologie.

Konzeption der Hauptkomponentenanalyse[Bearbeiten]

Der zugrundeliegende Datensatz hat typischerweise die Struktur einer Matrix: An n Versuchspersonen oder Gegenständen wurden jeweils p Merkmale gemessen. Ein solcher Datensatz kann als Menge von n Punkten im p-dimensionalen Raum \R^p veranschaulicht werden. Ziel der Hauptkomponentenanalyse ist es, diese Datenpunkte so in einen q-dimensionalen Unterraum \R^q (q < p) zu projizieren, dass dabei möglichst wenig Information verloren geht und vorliegende Redundanz in Form von Korrelation in den Datenpunkten zusammengefasst wird.

Mathematisch wird eine Hauptachsentransformation durchgeführt: Man minimiert die Korrelation mehrdimensionaler Merkmale durch Überführung in einen Vektorraum mit neuer Basis. Die Hauptachsentransformation lässt sich durch eine orthogonale Matrix angeben, die aus den Eigenvektoren der Kovarianzmatrix gebildet wird. Die Hauptkomponentenanalyse ist damit problemabhängig, weil für jeden Datensatz eine eigene Transformationsmatrix berechnet werden muss. Die Rotation des Koordinatensystems wird so ausgeführt, dass die Kovarianzmatrix diagonalisiert wird, d. h. die Daten werden dekorreliert (die Korrelationen sind die Nicht-diagonal-Einträge der Kovarianzmatrix). Für normalverteilte Datensätze bedeutet dies, dass die einzelnen Komponenten jedes Datensatzes nach der PCA voneinander statistisch unabhängig sind, da die Normalverteilung durch das nullte (Normierung), erste (Mittelwert) und zweite Moment (Kovarianzen) vollständig charakterisiert wird. Sind die Datensätze nicht normalverteilt, werden die Daten auch nach der PCA – obwohl nun dekorreliert – noch immer statistisch abhängig sein. Die PCA ist also nur für normalverteilte Datensätze eine „optimale“ Methode.

Anwendungsbeispiel[Bearbeiten]

Betrachtet werden Artillerieschiffe des Zweiten Weltkriegs. Sie sind eingeteilt in die Klassen Schlachtschiffe, schwere Kreuzer, leichte Kreuzer und Zerstörer. Es liegen Daten für ca. 200 Schiffe vor. Es wurden die Merkmale Länge, Breite, Wasserverdrängung, Tiefgang, Leistung der Maschinen, Geschwindigkeit (längerfristig mögliche Höchstgeschwindigkeit), Aktionsradius und Mannschaftsstärke erfasst. Eigentlich messen die Merkmale Länge, Breite, Wasserverdrängung und Tiefgang alle einen ähnlichen Sachverhalt. Man könnte hier also von einem Faktor „Größe“ sprechen. Die Frage ist, ob noch andere Faktoren die Daten bestimmen. Es gibt tatsächlich noch einen zweiten deutlichen Faktor, der vor allem durch die Leistung der Maschinen und die Höchstgeschwindigkeit bestimmt wird. Man könnte ihn zu einem Faktor „Geschwindigkeit“ zusammenfassen.

Andere Beispiele für Anwendungen der Hauptkomponentenanalyse sind:

  • Wendet man die Hauptkomponentenanalyse auf das Kaufverhalten von Konsumenten an, gibt es möglicherweise latente Faktoren wie sozialer Status, Alter oder Familienstand, die bestimmte Käufe motivieren. Hier könnte man durch gezielte Werbung die Kauflust entsprechend kanalisieren.
  • Hat man ein statistisches Modell mit sehr vielen Merkmalen, könnte mit Hilfe der Hauptkomponentenanalyse gegebenenfalls die Zahl der Variablen im Modell reduziert werden, was meistens die Modellqualität steigert.

Verfahren[Bearbeiten]

Erste Hauptkomponente der Daten (schwarz-dunkelrote Linie) und der Mittelpunkt der Daten (dicker schwarzer Punkt)

Idee[Bearbeiten]

Die Daten liegen als Punktwolke in einem p-dimensionalen kartesischen Koordinatensystem vor.

Beste lineare Approximation an den Datensatz[Bearbeiten]

Das Berechnen der Hauptkomponenten kann man als iterativen Prozess auffassen. In der rechten Grafik wird für die Datenpunkte (nicht ausgefüllte Kreise) diejenige Gerade gesucht, die die Daten am besten approximiert. Der Fehler ist dabei die Summe der euklidischen Abstände zwischen der Geraden und den Datenpunkten. Für den Datenpunkt rechts oben ist der Fehler die rote Linie, die genau senkrecht auf der schwarzen Geraden steht.

Dieser Fehler wird für alle Geraden berechnet, die durch das Zentrum (Mittelwert) der Daten, den dicken schwarzen Punkt, laufen. Die Gerade mit dem kleinsten Fehler ist die erste Hauptkomponente.

Danach wird eine weitere Gerade gesucht, die durch den Mittelpunkt der Daten geht und orthogonal zur ersten Geraden ist: die zweite Hauptkomponente. Im Falle 2-dimensionaler Daten ist dies einfach die senkrecht auf der ersten Hauptkomponente stehende Gerade. Ansonsten muss der aufsummierte Abstand zwischen den Datenpunkten und der Ebene, die durch die beiden Geraden aufgespannt wird, wieder minimal werden. Die zweite Gerade entspricht der zweiten Hauptkomponente. Danach wird eine dritte, vierte bis p-te Gerade gesucht, die dann die dritte, vierte bis p-te Hauptkomponente bilden.

Maximierung der Varianz[Bearbeiten]

Die Distanz zwischen dem Zentrum der Daten und einem Datenpunkt ist unabhängig davon, welche Gerade durch das Zentrum als „Referenz“ betrachtet wird (siehe die rote Line vom Zentrum der Daten zum Datenpunkt rechts oben). Mittels des Satzes von Pythagoras können wir aber den Abstand zerlegen in den Anteil in Richtung der schwarzen Geraden und einen weiteren Anteil rechtwinklig dazu. Eine Minimierung der Abstände rechtwinklig zur Geraden (unter Beibehaltung des Abstands zum Datenzentrum, Länge der roten Linie) bedeutet also eine Maximierung der Abstände in Richtung der schwarzen Geraden (a^2 + b^2 = c^2 muss erhalten bleiben). Die aufsummierten Quadrate der Abstände in Richtung der schwarzen Geraden bilden die Varianz der Daten in dieser Richtung.

Totale Varianz: T=\sum_{j=1}^p \operatorname{Var}(X_j) = \sum_{j=1}^p \frac{1}{n} \sum_{i=1}^n (x_{ij}-\bar{x}_j)^2 = \frac{1}{n} \sum_{i=1}^n \sum_{j=1}^p (x_{ij}-\bar{x}_j)^2 = \frac{1}{n} \sum_{i=1}^n \text{Distanz}^2(x_i, \bar{x})

Dies führt zum folgenden Algorithmus: Die erste Achse soll so durch die Punktwolke gelegt werden, dass die Varianz der Daten in dieser Richtung maximal wird. Die zweite Achse steht auf der ersten Achse senkrecht. In ihrer Richtung ist die Varianz am zweitgrößten usw.

Für die p-dimensionalen Daten gibt es also grundsätzlich p Achsen, die aufeinander senkrecht stehen, sie sind orthogonal. Die totale Varianz der Daten ist die Summe dieser „Achsenvarianzen“. Mit den p Achsen wird nun ein neues Koordinatensystem in die Punktwolke gelegt. Das neue Koordinatensystem kann als Rotation der Variablenachsen dargestellt werden.

Wird nun durch die ersten r' (r' < p) Achsen ein hinreichend großer Prozentsatz der totalen Varianz abgedeckt, erscheinen die Hauptkomponenten, die durch die neuen Achsen repräsentiert werden, ausreichend für den Informationsgehalt der Daten. Die totale Varianz der Daten ist also ein Maß für ihren Informationsgehalt.

Häufig können die Hauptkomponenten inhaltlich nicht interpretiert werden. In der Statistik spricht man davon, dass ihnen keine verständliche Hypothese zugeschrieben werden kann (siehe Faktorenanalyse).

Statistisches Modell[Bearbeiten]

Man betrachtet p Zufallsvariablen X_j, die bezüglich ihrer Erwartungswerte zentriert sind. Das heißt, ihre Erwartungswerte wurden von der Zufallsvariablen subtrahiert. Diese Zufallsvariablen werden in einem p‑dimensionalen Zufallsvektor \underline x zusammengefasst. Dieser hat als Erwartungswertvektor den Nullvektor und die (p \times p)-Kovarianzmatrix \underline \Sigma, die symmetrisch und positiv definit ist. Die Eigenwerte \lambda_j, j = 1, \dots, p, der Matrix \underline\Sigma sind absteigend der Größe nach geordnet. Sie werden als Diagonalelemente in der Diagonalmatrix \underline \Lambda aufgeführt. Die zu ihnen gehörenden Eigenvektoren bilden die orthogonale Matrix \underline \Gamma. Es gilt dann \underline \Lambda = \underline \Gamma^T \underline \Sigma  \underline \Gamma .

Wird der Zufallsvektor \underline X linear transformiert zu \underline X \mapsto \underline Y = \underline \Gamma^T \underline X , dann ist die Kovarianzmatrix von \underline Y gerade die Diagonalmatrix \underline \Lambda.

Zur Verdeutlichung betrachten wir einen dreidimensionalen Zufallsvektor

\underline X =
  \begin{pmatrix}
    X_1\\
    X_2\\
    X_3 
\end{pmatrix} 
.

Die Matrix der Eigenwerte der Kovarianzmatrix  \underline \Sigma von  \underline X ist

\underline \Lambda=
  \begin{pmatrix}
    \lambda_A&  0 &0 \\
    0 &\lambda_B& 0 \\
    0&0&\lambda_C 
\end{pmatrix},

wobei \lambda_A > \lambda_B > \lambda_C ist.

Die (3 \times 1)-Eigenvektoren \underline \gamma_j lassen sich als Spalten der Matrix \underline \Gamma zusammenfassen:

\underline \Gamma=
  \begin{pmatrix}
    \underline \gamma_A&\underline \gamma_B &\underline \gamma_C     
\end{pmatrix}

=
  \begin{pmatrix}
    \gamma_{1A}&\gamma_{1B}&\gamma_{1C}\\
    \gamma_{2A}&\gamma_{2B}&\gamma_{2C} \\
    \gamma_{3A}&\gamma_{3B}&\gamma_{3C} 
\end{pmatrix}
.

Die Matrix-Vektor-Multiplikation

\underline X \rightarrow \underline Y = \underline \Gamma^T \underline X

ergibt die Gleichungen


Y_A=\gamma_{1A}X_1+\gamma_{2A}X_2+\gamma_{3A}X_3

Y_B=\gamma_{1B}X_1+\gamma_{2B}X_2+\gamma_{3B}X_3

Y_C=\gamma_{1C}X_1+\gamma_{2C}X_2+\gamma_{3C}X_3
.

Die Varianz von Y_A ist

\operatorname{Var}(Y_A) = \lambda_A .

Also hat die Hauptkomponente Y_A den größten Anteil an der Gesamtvarianz der Daten, Y_B den zweitgrößten Anteil usw. Die Elemente \gamma_{jk}, j=1,2,3; k=A,B,C, könnte man als Beitrag der Variablen X_j am Faktor k bezeichnen. Die Matrix \underline \Gamma bezeichnet man in diesem Zusammenhang als Ladungsmatrix, sie gibt an, „wie hoch eine Variable X auf einen Faktor Y lädt“.

Schätzung der Modellparameter[Bearbeiten]

Liegen konkret erhobene Daten mit p Merkmalen vor (d. h. jeder Datenpunkt ist ein p-dimensionaler Vektor), wird aus den Merkmalswerten die Stichproben-Korrelationsmatrix errechnet. Aus dieser Matrix bestimmt man dann die Eigenwerte und Eigenvektoren für die Hauptkomponentenanalyse. Da die Kovarianzmatrix eine symmetrische p\times p-Matrix ist, sind für ihre Berechnung insgesamt (p^2+p)/2 Parameter zu schätzen. Dies ist nur dann sinnvoll, wenn die Anzahl N der Datenpunkte im Datensatz deutlich größer ist, d. h. wenn N\gg (p^2+p)/2. Anderenfalls ist die Bestimmung der Kovarianzmatrix stark fehlerbehaftet, und diese Methode sollte nicht angewandt werden.

Beispiel mit drei Variablen[Bearbeiten]

Das oben genannte Anwendungsbeispiel wird jetzt in Zahlen verdeutlicht:

Wir betrachten die Variablen Länge, Breite und Geschwindigkeit. Die Streudiagramme geben einen Eindruck über die gemeinsame Verteilung der Variablen wieder.

Streudiagramm Länge - Geschwindigkeit von Artillerieschiffen Länge - Breite von Artillerieschiffen

Mit diesen drei Variablen wurde mit dem statistischen Programmpaket SPSS eine Hauptkomponentenanalyse durchgeführt. Die Ladungsmatrix \Gamma ist

Faktor A B C
Länge 0,862 0,481 −0,159
Breite 0,977 0,083 0,198
Geschwindigkeit −0,679 0,730 0,082

Der Faktor y_A setzt sich also zusammen aus

Y_A = 0{,}862 \cdot \text{Länge} + 0{,}977 \cdot \text{Breite} - 0{,}679 \cdot \text{Geschwindigkeit} .

Vor allem der Beitrag von Länge und Breite zum ersten Faktor ist groß. Beim zweiten Faktor ist vor allem der Beitrag der Geschwindigkeit groß. Der dritte Faktor ist unklar und wohl auch unerheblich.

Die Gesamtvarianz der Daten verteilt sich wie folgt auf die Hauptkomponenten:

Faktor Eigenwert \lambda_j Prozent der Gesamtvarianz Prozentualer Anteil der
Kumulierten Varianz
an Gesamtvarianz
A 2,16 71,97 71,97
B 0,77 25,67 97,64
C 0,07 2,36 100,00

Es werden also durch die ersten zwei Hauptkomponenten bereits 97,64 % der gesamten Varianz der Daten abgedeckt. Der dritte Faktor trägt nichts Nennenswertes zum Informationsgehalt bei.

Beispiel mit acht Variablen[Bearbeiten]

Es wurden nun acht Merkmale der Artillerieschiffe einer Hauptkomponentenanalyse unterzogen. Die Tabelle der Ladungsmatrix, hier „Komponentenmatrix“ genannt, zeigt, dass vor allem die Variablen Länge, Breite, Tiefgang, Wasserverdrängung und Mannschaftsstärke hoch auf die erste Hauptkomponente laden. Diese Komponente könnte man als „Größe“ bezeichnen. Die zweite Komponente wird zum größten Teil durch PS und Knoten erklärt. Sie könnte „Geschwindigkeit“ genannt werden. Eine dritte Komponente lädt noch hoch auf Aktionsradius.

Die beiden ersten Faktoren decken bereits ca. 84 % der Information der Schiffsdaten ab, der dritte Faktor erfasst noch einmal ca. 10 %. Der zusätzliche Beitrag der restlichen Komponenten ist unerheblich.

Komponentenmatrix
Komponente
1 2 3 4 5 6 7 8
Wasserverdrängung BRT 0,948 −0,094 −0,129 0,228 0,040 0,036 0,136 0,055
Länge m 0,906 0,302 −0,064 −0,209 0,128 −0,144 −0,007 −0,050
Breite m 0,977 −0,128 −0,031 0,032 0,103 −0,017 −0,014 0,129
Tiefgang m 0,934 −0,276 −0,061 0,014 0,074 0,129 0,154 −0,038
1000 PS 0,552 0,779 −0,196 −0,133 −0,099 0,143 −0,038 0,018
Knoten sm/h −0,520 0,798 −0,157 0,222 0,109 −0,038 0,071 0,004
Aktionsradius 100 sm 0,398 0,311 0,862 0,038 0,008 0,022 −0,002 −0,005
Mannschaftsstärke 0,955 0,063 −0,052 0,108 −0,226 −0,121 0,067 0,002
Extraktionsmethode: Hauptkomponentenanalyse
Acht Komponenten extrahiert


Varianz der Komponenten
Komponente Eigenwerte
Total % der Varianz Kumulativ
1 5,19 64,88 64,88
2 1,54 19,22 84,10
3 0,83 10,43 94,53
4 0,18 2,22 96,74
5 0,11 1,34 98,08
6 0,08 0,95 99,03
7 0,05 0,67 99,70
8 0,02 0,30 100,00

Anwendung in der Clusteranalyse und Dimensionsreduktion[Bearbeiten]

Zweidimensionales Beispiel für PCA. Die beiden Cluster haben eine geringe interne Streuung. Die erste Hauptkomponente wird x_1 sein, die zweite x_2. Der Hauptanteil der Gesamtstreuung liegt zwischen den Clustern („signal variance“).
Zweidimensionales Beispiel für PCA. Die beiden Cluster haben eine sehr große interne Streuung. Die erste Hauptkomponente wird x_2 sein, die zweite x_1. Der Hauptanteil der Gesamtstreuung liegt innerhalb der Cluster („noise variance“).

Die Hauptkomponentenanalyse (PCA) wird auch häufig in der Clusteranalyse und zur Reduzierung der Dimension des Parameterraums verwendet, insbesondere dann, wenn man noch keinerlei Vorstellung (Modell) von der Struktur der Daten hat. Dabei macht man sich zunutze, dass die PCA das (orthogonale) Koordinatensystem so dreht, dass die Kovarianzmatrix diagonalisiert wird. Außerdem sortiert die PCA die Reihenfolge der Koordinatenachsen (die Hauptkomponenten) so um, dass die erste Hauptkomponente den größten Anteil der Gesamtstreuung (Totale Varianz) im Datensatz enthält, die zweite Hauptkomponente den zweitgrößten Anteil, usw. Wie an den Beispielen im vorigen Abschnitt illustriert wurde, kann man meist die hinteren Hauptkomponenten (also diejenigen, welche nur einen geringen Anteil an der Gesamtstreuung enthalten) ersatzlos streichen, ohne dass dadurch ein nennenswerter Informationsverlust entsteht.

Die Grundannahme für die Verwendung der PCA zur Clusteranalyse und Dimensionsreduktion lautet: Die Richtungen mit der größten Streuung (Varianz) beinhalten die meiste Information.

In diesem Zusammenhang ist sehr wichtig, dass diese Grundannahme lediglich eine Arbeitshypothese ist, welche nicht immer zutreffen muss. Um diesen Sachverhalt zu veranschaulichen, folgen zwei Beispiele:

  • Signal Variance: Die Grafik rechts mit dem Titel „PCA Signal Variance“ zeigt ein Beispiel, bei dem die Annahme zutrifft. Der Datensatz besteht aus zwei Clustern (rot und grün), die klar voneinander getrennt sind. Die Streuung der Datenpunkte innerhalb jedes Clusters ist sehr klein verglichen mit dem „Abstand“ der beiden Cluster. Entsprechend wird die erste Hauptkomponente x_1 sein. Außerdem ist klar ersichtlich, dass die erste Hauptkomponente x_1 völlig ausreichend ist, um die beiden Cluster voneinander zu trennen, während die zweite Hauptkomponente x_2 dazu keinerlei nützliche Information enthält. Die Anzahl der Dimensionen kann also von 2 auf 1 reduziert werden (durch Vernachlässigung von x_2), ohne dass man dabei wesentliche Informationen über die beiden Cluster verlieren würde. Die Gesamtvarianz des Datensatzes wird also vom Signal dominiert (zwei getrennte Cluster).
  • Noise Variance: Die Grafik rechts mit dem Titel „PCA Noise Variance“ zeigt ein Beispiel, bei dem die Annahme nicht zutrifft und die PCA nicht zur Dimensionsreduktion verwendet werden kann. Die Streuung innerhalb der beiden Cluster ist nun deutlich größer und trägt den Hauptanteil an der Gesamtstreuung. Unter der Annahme, dass diese Streuung innerhalb der Cluster durch Rauschen verursacht wird, nennt man diesen Fall noise variance. Die erste Hauptkomponente wird x_2 sein, welche keinerlei Information über die Trennbarkeit beider Cluster beinhaltet.

Diese beiden Beispiele zeigen, wie man die PCA zur Reduzierung der Dimension und zur Clusteranalyse einsetzen kann bzw., dass dies nicht immer möglich ist. Ob die Grundannahme, dass die Richtungen der größten Streuung auch wirklich die interessantesten sind, zutrifft oder nicht, hängt vom jeweils gegebenen Datensatz ab und lässt sich oft nicht überprüfen – gerade dann, wenn die Anzahl der Dimensionen sehr hoch ist und sich die Daten demzufolge nicht mehr vollständig visualisieren lassen.

Zusammenhang mit der Multidimensionalen Skalierung[Bearbeiten]

Sowohl die multidimensionale Skalierung als auch die Hauptkomponentenanalyse verdichten die Daten. Werden in der (metrischen) multidimensionalen Skalierung euklidische Distanzen verwendet und ist die Dimension der Konfiguration gleich der Zahl der Hauptkomponenten, so liefern beide Verfahren die gleiche Lösung. Dies liegt daran, dass die Diagonalisierung der Kovarianzmatrix (bzw. Korrelationsmatrix, falls mit standardisierten Daten gearbeitet wird) bei der Hauptkomponentenanalyse einer Rotation des Koordinatensystems entspricht. Dadurch bleiben die Distanzen zwischen den Beobachtungen, die den Ausgangspunkt in der multidimensionalen Skalierung bilden, gleich.

In der multidimensionalen Skalierung können jedoch auch andere Distanzen verwendet werden; insofern kann die Hauptkomponentenanalyse als Spezialfall der multidimensionalen Skalierung betrachtet werden.

Literatur[Bearbeiten]

Originalarbeiten[Bearbeiten]

Lehrbücher[Bearbeiten]

  • G. H. Dunteman: Principal Component Analysis. Sage Publications, 1989
  • L. Fahrmeir, A. Hamerle, G. Tutz (Hrsg.): Multivariate statistische Verfahren. New York 1996
  • J. Hartung, B. Elpelt: Multivariate Statistik. München/Wien 1999
  • T. Hastie, R. Tibshirani, J. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2001
  • W. Kessler: Multivariate Datenanalyse. Weinheim 2007 (Eine Einführung in die PCA mit Beispiel-CD)
  • W. J. Krzanowski: Principles of Multivariate Analysis. Rev. ed. Oxford University Press, Oxford 2000
  • K. V. Mardia, J. T. Kent, J. M. Bibby: Multivariate Analysis. New York 1979

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]