Esta pergunta é sobre uma maneira eficiente de calcular os componentes principais.
Muitos textos sobre PCA linear advogam o uso da decomposição de valor singular dos dados casewise . Ou seja, se temos dados e queremos substituir as variáveis (suas colunas ) por componentes principais, fazemos SVD: , valores singulares (raízes quadradas dos valores próprios) que ocupam a diagonal principal de , os autovetores direitos são a matriz de rotação ortogonal dos eixos-variáveis em eixos-componentes; os autovetores esquerdos são como , apenas para os casos. Podemos então calcular os valores dos componentes como .
Outra maneira de realizar o PCA de variáveis é via decomposição da matriz quadrada (isto é, R pode ser correlações ou covariâncias etc., entre as variáveis). A decomposição pode ser uma decomposição autônoma ou decomposição de valor singular: com matriz semidefinida positiva simétrica quadrada, eles obterão o mesmo resultado R = V L V ′ com valores próprios na diagonal de L e V, conforme descrito anteriormente. Os valores dos componentes serão C = X V .
Agora, minha pergunta: se os dados são uma matriz grande e o número de casos é (geralmente um caso) muito maior que o número de variáveis, então o caminho (1) deve ser muito mais lento que o caminho (2), porque a maneira (1) aplica um algoritmo bastante caro (como SVD) a uma grande matriz; ele calcula e armazena uma enorme matriz U que realmente não precisamos no nosso caso (o PCA de variáveis). Se sim, então por que tantos livros didáticos parecem advogar ou apenas mencionar a única maneira (1)? Talvez seja eficiente e estou perdendo alguma coisa?
Joliffe, Principal component analysis, 2nd ed.
verdade, Joliffe descreve os dois lados, mas no capítulo principal do PCA ele diz apenas o modo 1, tanto quanto me lembro.
R
svd