Frage zu Hauptkomponenten-Analyse



  • Y ist eine n x d Matrix (n Zeilen, d Spalten).
    A ist eine d x d Matrix.

    Weshalb definiert man a1 als a1` (also transponiert) und macht weiter unten das transponiert wieder rückgängig in dem man a1 nochmals transponiert?

    a1`Y = a11Y1 + a12Y2 + ... a1dYd?

    Ich beziehe mich auf S. 9 auf dieser Folie:

    https://www.statistik.uni-dortmund.de/fileadmin/user_upload/Lehrstuehle/Genetik/MV0809/Vorlesung20081106_2x.pdf

    Bzw. sehe ich das richtig, dass man doppelt transponiert hat?

    Wenn ich es richtig verstehe, werden die Spalten-Vektoren von Y einfach nur mit einem Skalar von a1 mulipliziert?

    Danke im Voraus!



  • ist einfach das Skalarprodukt (dot product) zweier Vektoren a und Y.
    Man kann das Skalarprodukt auch als Matrixmultiplikation zweier Matrizen a und Y ausdrücken (die dann eben 1xd bzw. dx1 groß sind). Dann aber muss man a' * Y schreiben, sonst kannst du die Matrixmultiplikation nicht ausführen.

    Schreib es dir einfach im Falle von 2D Vektoren auf, dann sollte es klar sein.



  • Das hatte ich auch zuerst so interpretiert, aber da die Matrix A d x d Dimensionen hat, wie kann ich die mit Y multiplizieren, die n Zeilen hat? Ich müsste dazu doch Y transponieren, oder nicht?



  • PCA schrieb:

    Das hatte ich auch zuerst so interpretiert, aber da die Matrix A d x d Dimensionen hat, wie kann ich die mit Y multiplizieren, die n Zeilen hat? Ich müsste dazu doch Y transponieren, oder nicht?

    Y ist ein d-dimensionaler Vektor, a ist ein d-dimensionaler Vektor, A ist eine dxd Matrix. Ich sehe somit kein Problem an der Sache.



  • Bei einer Matrixmultiplikation werden doch die Zeileneinträge des linken Vektors mit den Spalteneinträge des rechten Vektors multipliziert und anschließend addiert. Insofern sehe ich es als problematisch an, wenn A d Spalteneinträge hat und Y n Zeilen. Aus meiner Sicht müsste man Y transponieren, damit das funktioniert. Siehe:

    https://de.wikipedia.org/wiki/Matrizenmultiplikation#Beispiel

    Konkret:
    Ich habe hier eine Rechnung, wo ich nicht weiterkomme:

    A=(010101101)Y=(253431413235)A = \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & -1 \\ 1 & 0 & 1 \\ \end{pmatrix} Y = \begin{pmatrix} 2 & -5 & -3 \\ 4 & 3 & 1 \\ -4 & -1 & -3 \\ -2 & 3 & 5 \end{pmatrix}

    Wie soll ich hier **a1`**Y rechnen?



  • Y ist ein Vektor, keine Matrix!
    Siehe Seite 8 (Seitenangabe auf Folien) - letzte Zeile, dort steht dass Y (fett) ein Zufallsvektor (ZV) ist. Er hat d Elemente, d.h. YRdY \in \mathbb{R}^{d}

    Und auf Seite 9 wird dann eben gezeit, wie das Skalarprodukt ausgeschrieben aussieht. Auch dort kannst du sehen, dass Y keine Matrix, sondern ein Vektor ist.



  • Das siehst du falsch. Y besteht aus den Spaltenvektoren Y1Y_1, Y2Y_2, ..., YdY_d. Man hat hier einfach die Spaltenvektoren nochmals als übergeordneten Spaltenvektor zusammengefasst. Aber dass Y eine Matrix ist, steht doch davor.
    Und YiY_i ist einfach nur die Zentrierung von des Spaltenvektors XiX_i. Das ist doch auf Seite 8 ausführlich erklärt.
    Wenn du die Matrix X zentrierst, erhältst du die Matrix Y, die selbstverständlich ebenfalls ebenso eine Matrix ist und mit denselben Dimensionen wie X.
    Schau genau hin. Auf Seite 8 findest du auch die Spaltenvektoren X1X_1 usw. notiert. Analog gilt das für Y1Y_1 etc.



  • PCA schrieb:

    Wenn ich es richtig verstehe, werden die Spalten-Vektoren von Y einfach nur mit einem Skalar von a1 mulipliziert?

    Ich denke, es ist wirklich so, wie ich anfangs vermutet habe. Die Spaltenvektoren der Matrix Y werden als YiY_i zusammengefasst. Dadurch konstruiert man sich einen übergeordneten "Spaltenvektor" Y der nun d Zeilen und nicht mehr n Zeilen enthält. Nun kann man **a1`**Y rechnen, was nichts anderes ist als dass ein Skalar von a1 mit einem der Spaltenvektoren YiY_i mulipliziert wird.



  • PCA schrieb:

    Das siehst du falsch. Y besteht aus den Spaltenvektoren Y1Y_1, Y2Y_2, ..., YdY_d. Man hat hier einfach die Spaltenvektoren nochmals als übergeordneten Spaltenvektor zusammengefasst. Aber dass Y eine Matrix ist, steht doch davor.
    Und YiY_i ist einfach nur die Zentrierung von des Spaltenvektors XiX_i. Das ist doch auf Seite 8 ausführlich erklärt.
    Wenn du die Matrix X zentrierst, erhältst du die Matrix Y, die selbstverständlich ebenfalls ebenso eine Matrix ist und mit denselben Dimensionen wie X.
    Schau genau hin. Auf Seite 8 findest du auch die Spaltenvektoren X1X_1 usw. notiert. Analog gilt das für Y1Y_1 etc.

    Xi sind keine Vektoren, sondern Zufallsvariablen bzw. deren Ausprägungen (also Skalare!).
    Somit sind Yi auch keine Vektoren.
    Die Matrix Y_geschwungen (also dieses sehr schwungvoll geschriebene Y) enthält die Daten, allerdings zentriert.
    Weitergerechnet wird aber mit Y_fett, einem Zufallsvektor. Das ist also irgendeine Beobachtung (ohne Bezugnahme auf eine konkrete Instanz, sprich: ohne Bezugnahme auf Y_geschwungen).



  • PCA schrieb:

    PCA schrieb:

    Wenn ich es richtig verstehe, werden die Spalten-Vektoren von Y einfach nur mit einem Skalar von a1 mulipliziert?

    Ich denke, es ist wirklich so, wie ich anfangs vermutet habe. Die Spaltenvektoren der Matrix Y werden als YiY_i zusammengefasst. Dadurch konstruiert man sich einen übergeordneten "Spaltenvektor" Y der nun d Zeilen und nicht mehr n Zeilen enthält. Nun kann man **a1`**Y rechnen, was nichts anderes ist als dass ein Skalar von a1 mit einem der Spaltenvektoren YiY_i mulipliziert wird.

    nein. Überleg mal logisch. Du willst Datenreduktion mit PCA durchführen. Das machst du nicht. Du erhöhst sogar die Datenmenge!
    Du willst die Koordinaten eines Datenpunkts (Vektor, Y) bezüglich der neuen, "besseren" Koordinatenachsen. Die Hauptkomponente ist nun die erste Koordinate mit der größten Aussagekraft. Das ist exakt eine Zahl. Bei dir hingegen ein Vektor!? Was soll das sein?



  • fsdfsfsf schrieb:

    Xi sind keine Vektoren, sondern Zufallsvariablen bzw. deren Ausprägungen (also Skalare!).

    Nein, XiX_i sind Spaltenvektoren und xijx_{ij} sind die Skalare! Siehe Screenshot!

    http://www.directupload.net/file/d/4589/65g49am5_png.htm



  • Hier eine weitere Quelle, die A als Matrix und a1 als Eigenvektoren bezeichnet!

    http://www.directupload.net/file/d/4589/vp5efdaw_png.htm



  • PCA schrieb:

    fsdfsfsf schrieb:

    Xi sind keine Vektoren, sondern Zufallsvariablen bzw. deren Ausprägungen (also Skalare!).

    Nein, XiX_i sind Spaltenvektoren und xijx_{ij} sind die Skalare! Siehe Screenshot!

    http://www.directupload.net/file/d/4589/65g49am5_png.htm

    Xi sind Zufallsvariablen (skalar!). Davon gibt es bei dir eben n Ausprägungen. Das macht Xi aber noch lange zu keinem Vektor.

    Ich klinke mich an der Stelle aus, ich habe dir gezeigt wo du falsch liegst, mehr kann ich an dieser Stelle nicht für dich tun. Schönen Abend noch.



  • Zufallsvariablen selbst sind nicht skalar, sondern nur ihre Ausprägungen. Eine Zufallsvariable ist in erster Linie eine Abbildungsvorschrift bzw. eine Funktion. Die Ausprägungen einer Zufallsvariable kann ich allerdings in einem Vektor darstellen.

    Du könntest mir anhand meines konkreten Beispiels zeigen, wie du dir die Rechnung vorstellst.

    A ist die (nichtnormierte) Kovarianz-Matrix der Matrix X.
    Y ist die zentrierte Matrix von X. Wie soll ich nun deiner Ansicht nach A`Y berechnen?

    A=(010101101)Y=(253431413235)A = \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & -1 \\ 1 & 0 & 1 \\ \end{pmatrix} Y = \begin{pmatrix} 2 & -5 & -3 \\ 4 & 3 & 1 \\ -4 & -1 & -3 \\ -2 & 3 & 5 \end{pmatrix}



  • Korrektur: A enthält die Eigenvektoren der Kovarianz-Matrix.



  • PCA schrieb:

    Hier eine weitere Quelle, die A als Matrix und a1 als Eigenvektoren bezeichnet!

    http://www.directupload.net/file/d/4589/vp5efdaw_png.htm

    In dem Artikel steht als Voraussetzung, dass die Matrix symmetrisch sein muss. Im Allgemeinen gilt das nicht.


Log in to reply