Auswahl der Anzahl der beizubehaltenden Hauptkomponenten

10

Eine Methode, die mir vorgeschlagen wurde, besteht darin, sich ein Geröllplot anzusehen und nach "Ellbogen" zu suchen, um die richtige Anzahl der zu verwendenden PCs zu bestimmen. Aber wenn die Darstellung nicht klar ist, hat R eine Berechnung, um die Anzahl zu bestimmen?

fit <- princomp(mydata, cor=TRUE)
Kennzeichen
quelle
3
Nicht das ich wüsste. Wenn Sie sich zunächst auf den "Eigenwert über 1 Faustregel" oder die sogenannte Kayser-Regel beziehen, werden Sie wahrscheinlich die Anzahl der PCs finden, die dies erfüllen (denken Sie daran, dass dies im Allgemeinen die Anzahl der Dimensionen überschätzt), indem Sie nachsehen genauer gesagt auf Ihrem Geröllplot. Zweitens ist die parallele Analyse ein besserer Weg, um die Anzahl der Komponenten zu bestimmen. Informationen zum Ermitteln der Anzahl der Komponenten und Faktoren finden Sie im Paket psyoder psychin den Programmen R und SPSS, SAS und MATLAB. Verwenden der Parallelanalyse und des Velicer-MAP-Tests im Allgemeinen.
Chl

Antworten:

10

Der folgende Artikel: Die Komponentenretention in der Hauptkomponentenanalyse mit Anwendung auf cDNA-Microarray-Daten von Cangelosi und Goriely gibt einen recht guten Überblick über die Standardregel der Daumen, um die Anzahl der Komponenten in einer Studie zu ermitteln. (Geröllplot, Anteil der erklärten Gesamtvarianz, durchschnittliche Eigenwertregel, Log-Eigenwert-Diagramm usw.) Die meisten von ihnen sind in R recht einfach zu implementieren.

Im Allgemeinen müssen Sie nur "Ihr Gift auswählen", wenn Ihre Geröll-Verschwörung sehr nicht schlüssig ist. Es gibt kein absolutes Richtig oder Falsch für Daten, da die Anzahl der zu verwendenden PCs in Wirklichkeit von Ihrem Verständnis des Problems abhängt. Der einzige Datensatz, dessen Dimensionalität Sie "wirklich" kennen können, ist der, den Sie selbst erstellt haben. :-) Hauptkomponenten am Ende des Tages bieten die optimale Zerlegung der Daten unter einer RSS-Metrik (wobei als Nebenprodukt jede Komponente einen Hauptvariationsmodus darstellt) und das Einschließen oder Ausschließen einer bestimmten Anzahl von Komponenten diktiert Ihre Wahrnehmung über die Dimensionalität Ihres Problems.

Aus persönlichen Gründen mag ich Minkas Ansatz für diese automatische Wahl der Dimensionalität für PCA, der auf einer probabilistischen Interpretation von PCA basiert. Andererseits versuchen Sie, die Wahrscheinlichkeit Ihrer Daten für eine bestimmte Dimensionalität zu modellieren. (Link bietet Matlab-Code, wenn Sie dieser Begründung folgen möchten.)

Versuchen Sie, Ihre Daten besser zu verstehen. z.B. Glauben Sie wirklich, dass 99,99% der Abweichungen Ihres Datensatzes auf die Kovariaten Ihres Modells zurückzuführen sind? Wenn nicht, müssen Sie wahrscheinlich keine Dimensionen angeben, die einen so geringen Anteil an der Gesamtvarianz aufweisen. Denken Sie, dass eine Komponente in Wirklichkeit Abweichungen unterhalb einer Schwelle von nur wahrnehmbaren Unterschieden widerspiegelt? Dies bedeutet wiederum wahrscheinlich, dass es wenig relevant ist, diese Komponente in Ihre Analyse einzubeziehen.

Auf jeden Fall viel Glück und überprüfen Sie Ihre Daten sorgfältig. (Sie zu planen macht auch Wunder.)

usεr11852
quelle
Können Sie auf Matlab-Code verweisen, ich kann ihn nicht finden.
Mrgloom
Ich glaube, ich habe es gefunden research.microsoft.com/en-us/um/people/minka/papers/pca
mrgloom
Ja! Das war der Link, auf den ich mich bezog.
usεr11852
Ich frage mich, ob Minkas Ansatz jetzt in R angewendet wird. Angenommen, die wichtigsten PCs wurden in einer Studie mit verschiedenen Methoden ermittelt. Wir wissen, dass dies der Signalteil der Daten sein sollte. Wissen Sie zufällig, ob die von diesen PCs erläuterte prozentuale Varianz begrenzt ist, was im Folgenden als No-Go für weitere Analysen angesehen wird? Jede Referenz wird sehr geschätzt.
Promotion
6

In den letzten Jahren wurden sehr gute Nacharbeiten an diesem Problem durchgeführt, seit diese Frage ursprünglich gestellt und beantwortet wurde. Ich kann das folgende Papier von Gavish und Donoho nur empfehlen: Der optimale harte Schwellenwert für singuläre Werte beträgt 4 / sqrt (3)

Ihr Ergebnis basiert auf einer asymptotischen Analyse (dh es gibt eine genau definierte optimale Lösung, wenn Ihre Datenmatrix unendlich groß wird), aber sie zeigen beeindruckende numerische Ergebnisse, die zeigen, dass das asymptotisch optimale Verfahren für kleine und realistisch große Datensätze auch bei unterschiedlichem Rauschen funktioniert Modelle.

σn×n

λ=4σn3

Sie erklären auch den nicht quadratischen Fall in der Zeitung. Sie haben hier eine nette Code-Ergänzung (in MATLAB), aber die Algorithmen wären einfach in R oder anderswo zu implementieren: https://purl.stanford.edu/vg705qn9070

Vorsichtsmaßnahmen:

  • Wenn Sie fehlende Daten haben, bin ich mir nicht sicher, ob dies funktionieren wird
  • Wenn jede Funktion in Ihrem Datensatz unterschiedliche Rauschgrößen aufweist, bin ich mir nicht sicher, ob dies funktioniert (obwohl das Aufhellen dies unter bestimmten Voraussetzungen wahrscheinlich umgehen könnte).
  • Es wäre interessant zu sehen, ob ähnliche Ergebnisse für andere niedrigrangige Matrixfaktorisierungen gelten (z. B. nicht negative Matrixfaktorisierung).
Alex Williams
quelle
+1, wow, dieses Papier sieht sehr interessant aus. Vielen Dank für die Erwähnung.
Amöbe sagt Reinstate Monica
4

Das Problem mit Kaisers Kriterium (alle Eigenwerte größer als eins) ist, dass die Anzahl der extrahierten Faktoren normalerweise etwa ein Drittel der Anzahl der Elemente oder Skalen in der Batterie beträgt, unabhängig davon, ob viele der zusätzlichen Faktoren Rauschen sind. Die parallele Analyse und das Geröllkriterium sind im Allgemeinen genauere Verfahren zur Bestimmung der Anzahl der zu extrahierenden Faktoren (gemäß klassischen Texten von Harmon und Ledyard Tucker sowie neueren Arbeiten von Wayne Velicer).

StatistikDoc-Beratung
quelle