Questa domanda riguarda in gran parte le definizioni di PCA / FA, quindi le opinioni potrebbero essere diverse. La mia opinione è che PCA + varimax non dovrebbe essere chiamato PCA o FA, ma piuttosto esplicitamente definito ad esempio come "PCA ruotato da varimax".
Dovrei aggiungere che questo è un argomento piuttosto confuso. In questa risposta voglio spiegare quello che una rotazione in realtà è ; questo richiederà un po 'di matematica. Un lettore casuale può saltare direttamente all'illustrazione. Solo così possiamo discutere se la rotazione di PCA + dovrebbe o non debba essere chiamata "PCA".
Un riferimento è il libro di Jolliffe "Analisi dei componenti principali", sezione 11.1 "Rotazione dei componenti principali", ma trovo che potrebbe essere più chiaro.
Sia una matrice di dati che supponiamo sia centrata. PCA ammonta ( vedi la mia risposta qui ) a una decomposizione di valore singolare: . Esistono due viste equivalenti ma complementari su questa scomposizione: una vista "proiezione" più in stile PCA e una vista "variabili latenti" più stile FA. n × p X = U S V ⊤Xn×pX=USV⊤
Secondo la vista in stile PCA, abbiamo trovato un gruppo di direzioni ortogonali (si tratta di autovettori della matrice di covarianza, chiamate anche "direzioni principali" o "assi") e "componenti principali" ( chiamati anche "punteggi" del componente principale) sono le proiezioni dei dati in queste direzioni. I componenti principali non sono correlati, il primo ha la varianza massima possibile, ecc. Possiamo scrivere:U S X = U S ⋅ V ⊤ = Punteggi ⋅ Direzioni principali .VUS
X=US⋅V⊤=Scores⋅Principal directions.
Secondo la visione in stile FA, abbiamo trovato alcuni "fattori latenti" di varianza unitaria non correlata che danno origine alle variabili osservate tramite "caricamenti". Infatti, sono componenti principali standardizzati (non correlati e con varianza dell'unità) e se definiamo i carichi come , quindi (Nota che .) Entrambe le viste sono equivalenti. Si noti che i caricamenti sono autovettori ridimensionati in base ai rispettivi autovalori ( sono autovalori della matrice di covarianza).U˜=n−1−−−−−√UL=VS/n−1−−−−−√
X=n−1−−−−−√U⋅(VS/n−1−−−−−√)⊤=U˜⋅L⊤=Standardized scores⋅Loadings.
S⊤=SS/n−1−−−−−√
(Dovrei aggiungere tra parentesi che PCA FA≠ ; FA mira esplicitamente a trovare fattori latenti che sono mappati linearmente alle variabili osservate tramite caricamenti; è più flessibile di PCA e produce caricamenti diversi. Ecco perché preferisco chiamare quanto sopra "Vista in stile FA su PCA" e non FA, anche se alcune persone lo considerano uno dei metodi FA.)
Ora, cosa fa una rotazione? Ad esempio una rotazione ortogonale, come varimax. Innanzitutto, considera solo i componenti , ovvero:Quindi prende una quadrata ortogonale matrice e inserisce in questa scomposizione: dove i caricamenti ruotati sono dati dak<p
X≈UkSkV⊤k=U˜kL⊤k.
k×kTTT⊤=IX≈UkSkV⊤k=UkTT⊤SkV⊤k=U˜rotL⊤rot,
˜ U r o t = ˜ U k T T L r o tLrot=LkTE ruotato punteggi standardizzati sono date da . (Lo scopo di questo è di trovare tale che diventato il più vicino possibile ad essere rado, per facilitarne l'interpretazione.)
U˜rot=U˜kTTLrot
Si noti che ciò che viene ruotato sono: (1) punteggi standardizzati, (2) caricamenti. Ma non i punteggi grezzi e non le direzioni principali! Quindi la rotazione avviene nello spazio latente , non nello spazio originale. Questo è assolutamente cruciale.
Dal punto di vista in stile FA, non è successo molto. (A) I fattori latenti sono ancora non correlati e standardizzati. (B) Sono ancora mappati alle variabili osservate tramite caricamenti (ruotati). (C) La quantità di varianza catturata da ciascun componente / fattore è data dalla somma dei valori al quadrato della colonna dei carichi corrispondenti in . (D) Dal punto di vista geometrico, i caricamenti si estendono ancora nello stesso sottospazio -dimensionale in (il sottospazio espanso dai primi autovettori PCA). (E) L'approssimazione a e l'errore di ricostruzione non sono cambiati affatto. (F) La matrice di covarianza è ancora approssimata ugualmente bene: k R p k XLrotkRpkX
Σ≈LkL⊤k=LrotL⊤rot.
Ma il punto di vista in stile PCA è praticamente crollato. I caricamenti ruotati non corrispondono più alle direzioni / assi ortogonali in , ovvero le colonne di non sono ortogonali! Peggio ancora, se si proiettano [ortogonalmente] i dati sulle direzioni fornite dai carichi ruotati, si otterranno proiezioni correlate (!) E non sarà possibile recuperare i punteggi. [Invece, per calcolare i punteggi standardizzati dopo la rotazione, è necessario moltiplicare la matrice di dati con la pseudo-inversa di . In alternativa, si può semplicemente ruotare i punteggi standardizzati originali con la matrice di rotazione:RpLrotU˜rot=X(L+rot)⊤U˜rot=U˜T ] Inoltre, i componenti ruotati non catturano successivamente la massima quantità di varianza: la varianza viene ridistribuita tra i componenti (anche sebbene tutti i componenti ruotati catturino esattamente la stessa varianza di tutti i componenti principali originali).kk
Ecco un'illustrazione. I dati sono un'ellisse 2D allungata lungo la diagonale principale. La prima direzione principale è la diagonale principale, la seconda è ortogonale ad essa. I vettori di carico della PCA (autovettori scalati in base agli autovalori) sono mostrati in rosso - puntando in entrambe le direzioni e allungati anche da un fattore costante per la visibilità. Quindi ho applicato una rotazione ortogonale di ai caricamenti. I vettori di caricamento risultanti sono visualizzati in magenta. Nota come non sono ortogonali (!).30∘
Un'intuizione in stile FA qui è la seguente: immagina uno "spazio latente" in cui i punti riempiono un piccolo cerchio (provengono da un gaussiano 2D con varianze di unità). Questa distribuzione di punti viene quindi allungata lungo i caricamenti di PCA (rosso) per diventare l'ellisse di dati che vediamo in questa figura. Tuttavia, la stessa distribuzione di punti può essere ruotata e quindi allungata lungo i caricamenti di PCA ruotati (magenta) per diventare la stessa ellisse di dati .
[Per vedere effettivamente che una rotazione ortogonale dei carichi è una rotazione , è necessario guardare un biplot PCA; lì i vettori / raggi corrispondenti alle variabili originali ruoteranno semplicemente.]
Riassumiamo. Dopo una rotazione ortogonale (come varimax), gli assi "principali ruotati" non sono ortogonali e le proiezioni ortogonali su di essi non hanno senso. Quindi si dovrebbe piuttosto abbandonare questo intero punto di vista assi / proiezioni. Sarebbe strano chiamarlo ancora PCA (che riguarda le proiezioni con la varianza massima ecc.).
Dal punto di vista in stile FA, abbiamo semplicemente ruotato i nostri fattori latenti (standardizzati e non correlati), che è un'operazione valida. Non ci sono "proiezioni" in FA; invece, i fattori latenti generano le variabili osservate tramite caricamenti. Questa logica è ancora preservata. Tuttavia, abbiamo iniziato con i componenti principali, che in realtà non sono fattori (in quanto PCA non è lo stesso di FA). Quindi sarebbe strano chiamarlo anche FA.
Invece di discutere se uno "dovrebbe" piuttosto chiamarlo PCA o FA, suggerirei di essere meticoloso nello specificare l'esatta procedura utilizzata: "PCA seguito da una rotazione varimax".
Postscriptum. Si è possibile considerare una procedura rotazione alternativa, dove viene inserito tra e . Ciò ruoterebbe punteggi grezzi ed autovettori (anziché punteggi e caricamenti standardizzati). Il problema più grande con questo approccio è che dopo una tale "rotazione", i punteggi non saranno più non correlati, il che è abbastanza fatale per la PCA. Uno può farlo, ma non è come le rotazioni vengono generalmente comprese e applicate.TT⊤USV⊤