Questa domanda riguarda un modo efficiente per calcolare i componenti principali.
Molti testi su PCA lineare sostengono l'uso della decomposizione a valore singolare dei dati casewise . Cioè, se abbiamo dati e vogliamo sostituire le variabili (le sue colonne ) con i componenti principali, facciamo SVD: , valori singolari (radici quadrate degli autovalori) che occupano la diagonale principale di , autovettori di destra sono la matrice di rotazione ortogonale delle variabili degli assi in componenti degli assi, gli autovettori di sinistra sono come , solo per i casi. Possiamo quindi calcolare i valori dei componenti come .
Un altro modo di fare PCA di variabili è attraverso la decomposizione della matrice quadrata (cioè può essere correlazioni o covarianze ecc., Tra le variabili). La decomposizione può essere decomposizione di autigeni o decomposizione di valore singolare: con matrice semidefinita positiva simmetrica quadrata, daranno lo stesso risultato con autovalori della diagonale di e come descritto in precedenza. I valori dei componenti saranno .
Ora, la mia domanda: se data è una matrice grande, e il numero di casi è (che è spesso un caso) molto maggiore del numero di variabili, allora la via (1) dovrebbe essere molto più lenta della via (2 ), perché way (1) applica un algoritmo piuttosto costoso (come SVD) a una matrice grande; calcola e memorizza enormi matrici cui non abbiamo davvero bisogno nel nostro caso (il PCA delle variabili). Se è così, allora perché così tanti libri di testo sembrano difendere o menzionare solo il modo (1)? Forse è efficiente e mi manca qualcosa?
Joliffe, Principal component analysis, 2nd ed.
realtà, Joliffe descrive entrambi i modi, ma nel capitolo principale su PCA dice solo il modo 1, per quanto io possa ricordare.
R
svd