Risposte:
Il seguente articolo: La conservazione dei componenti nell'analisi dei componenti principali con l'applicazione ai dati di microarray di cDNA di Cangelosi e Goriely offre una panoramica piuttosto piacevole della regola standard dei pollici per rilevare il numero di componenti in uno studio. (Diagramma di ghiaione, Spiegazione della proporzione della varianza totale, Regola degli autovalori medi, Diagramma degli autovalori log, ecc.) Molti di questi sono abbastanza semplici da implementare in R.
In generale, se la trama del ghiaione è molto inconcludente, devi solo "raccogliere il tuo veleno". Non esiste un diritto o un errore assoluto per i dati poiché in realtà il numero di PC da utilizzare dipende in realtà dalla comprensione del problema. L'unico set di dati di cui puoi "veramente" conoscere la dimensionalità è quello che hai costruito tu stesso. :-) I componenti principali alla fine della giornata forniscono la decomposizione ottimale dei dati in base a una metrica RSS (dove come sottoprodotto si ottiene che ciascun componente rappresenti una modalità principale di variazione) e includendo o escludendo un determinato numero di componenti determina la tua percezione della dimensionalità del tuo problema.
Per quanto riguarda le preferenze personali, mi piace l'approccio di Minka su questa scelta automatica di dimensionalità per PCA che si basa su un'interpretazione probabilistica di PCA ma poi di nuovo, ti metti in gioco nel tentativo di modellare la probabilità dei tuoi dati per una data dimensionalità. (Link fornisce il codice Matlab se si desidera seguire questa logica.)
Cerca di capire di più i tuoi dati. per esempio. Credi davvero che il 99,99% della variazione del tuo set di dati sia dovuto alle covariate del tuo modello? In caso contrario, probabilmente non è necessario includere dimensioni che presentano una proporzione così piccola della varianza totale. Pensi che in realtà un componente rifletta una variazione al di sotto di una soglia di differenze appena evidenti? Questo probabilmente significa che c'è poca rilevanza nell'includere quel componente per la tua analisi.
In ogni caso, buona fortuna e controlla attentamente i tuoi dati. (Tracciarli fa anche meraviglie.)
Negli ultimi anni ci sono stati lavori molto piacevoli su questo problema da quando questa domanda è stata inizialmente posta e risposta. Consiglio vivamente il seguente articolo di Gavish e Donoho: la soglia ottimale ottimale per i valori singolari è 4 / sqrt (3)
Il loro risultato si basa sull'analisi asintotica (ovvero esiste una soluzione ottimale ben definita man mano che la matrice dei dati diventa infinitamente grande), ma mostrano risultati numerici impressionanti che mostrano che la procedura asintoticamente ottimale funziona per set di dati piccoli e realistici, anche con rumore diverso Modelli.
Spiegano anche il caso non quadrato nel documento. Hanno un buon supplemento di codice (in MATLAB) qui, ma gli algoritmi sarebbero facili da implementare in R o altrove: https://purl.stanford.edu/vg705qn9070
Avvertenze:
Il problema con il criterio di Kaiser (tutti gli autovalori maggiori di uno) è che il numero di fattori estratti è di solito circa un terzo del numero di elementi o scale nella batteria, indipendentemente dal fatto che molti dei fattori aggiuntivi siano rumore. L'analisi parallela e il criterio del ghiaione sono generalmente procedure più accurate per determinare il numero di fattori da estrarre (secondo i testi classici di Harmon e Ledyard Tucker, nonché i lavori più recenti di Wayne Velicer.
psyopsychin R, e SPSS, SAS e programmi MATLAB per determinare il numero di componenti e fattori. Utilizzo dell'analisi parallela e del test MAP di Velicer in generale.