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)
psy
oderpsych
in den Programmen R und SPSS, SAS und MATLAB. Verwenden der Parallelanalyse und des Velicer-MAP-Tests im Allgemeinen.Antworten:
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.)
quelle
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.
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:
quelle
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).
quelle