SVD
A decomposição de valor singular está na raiz das três técnicas afins. Seja X uma tabela de valores reais r×c . SVD é X=Ur×rSr×cV′c×c . Podemos usar apenas m [m≤min(r,c)] primeiros vetores latentes e raízes para obter X(m) como a melhor aproximação da classificação m de X : X(m)=Ur×mSm×mV′c×m . Além disso, notaremosU=Ur×m ,V=Vc×m ,S=Sm×m .
Os valores singulares S e seus quadrados, os autovalores, representam a escala , também chamada inércia , dos dados. Os autovetores esquerdos U são as coordenadas das linhas dos dados nos m eixos principais; enquanto os autovetores corretos V são as coordenadas das colunas dos dados nos mesmos eixos latentes. A escala inteira (inércia) é armazenada em S e, portanto, as coordenadas U e V são normalizadas por unidade (coluna SS = 1).
Análise de componentes principais por SVD
No PCA, é acordado considerar as linhas de X como observações aleatórias (que podem ir ou vir), mas considerar as colunas de X como um número fixo de dimensões ou variáveis. Portanto, é apropriado e conveniente remover o efeito do número de linhas (e apenas linhas) nos resultados, particularmente nos valores próprios, decompondo em svd de Z=X/r√ em vez deX. Observe que isso corresponde à decomposição por si própria deX′X/r,sendoro tamanho da amostran
. (Muitas vezes, principalmente com covariâncias - para torná-las imparciais - preferimos dividir porr−1, mas é uma nuance.)
A multiplicação de X por uma constante afetou apenas S ; U e V permanecem as coordenadas normalizadas por unidade de linhas e colunas.
A partir daqui e de todos os lugares abaixo, redefinimos S , U e V como dados pelo svd de Z , não por X ; Z é uma versão normalizada de X , e a normalização varia entre os tipos de análise.
Multiplicando Ur√=U∗trazemos oquadradomédionas colunas deUpara 1. Dado que as linhas são casos aleatórios para nós, é lógico. Obtivemos, assim, o que é chamado nopadrãoPCAou naspontuações padronizadasde observações doscomponentes principais,U∗. Não fazemos o mesmo comVporque as variáveis são entidades fixas.
Em seguida, pode conferir linhas com toda a inércia, para obter as coordenadas de linha não padronizados, também chamados em PCA matérias principais escores dos componentes de observações: U∗S . Essa fórmula chamaremos de "maneira direta". O mesmo resultado é retornado por XV ; nós o rotularemos de "maneira indireta".
Analogamente, podemos conferir colunas com toda a inércia, para obter coordenadas de coluna não padronizadas, também chamadas no PCA de cargas variáveis de componente : VS′ [pode ignorar a transposição se S for quadrado], - o "caminho direto". O mesmo resultado é retornado por Z′U , - o "caminho indireto". (Os principais pontuações de componentes padronizados acima pode também ser calculado a partir das cargas como X(AS−1/2) , em que A . São as cargas)
Biplot
Considere o biplot no sentido de uma análise de redução da dimensionalidade por si só, não simplesmente como "um gráfico de dispersão dupla". Essa análise é muito semelhante à PCA. Diferentemente do PCA, linhas e colunas são tratadas simetricamente como observações aleatórias, o que significa que X está sendo visto como uma tabela bidirecional aleatória de dimensionalidade variável. Em seguida, naturalmente, normalizar por ambos r e c antes SVD: Z=X/rc−−√ .
Após o svd, calcule as coordenadas da linha padrão como fizemos no PCA: U∗=Ur√ . Faça o mesmo (ao contrário do PCA) com vetores de coluna, para obtercoordenadas de coluna padrão:V∗=Vc√ . As coordenadas padrão, tanto de linhas como de colunas, possuemquadradomédio1.
Podemos conferir coordenadas de linhas e / ou colunas com inércia de valores próprios, como fazemos no PCA. Coordenadas de linha não padronizadas : U∗S (caminho direto). Coordenadas da coluna não padronizadas : V∗S′ (via direta). Qual é o caminho indireto? Você pode deduzir facilmente por substituições que a fórmula indireta para as coordenadas de linha não padronizadas é XV∗/c , e para as coordenadas de coluna não padronizadas é X′U∗/r .
PCA como um caso particular de Biplot . A partir das descrições acima, você provavelmente aprendeu que PCA e biplot diferem apenas na maneira como normalizam X em Z que é então decomposto. Biplot normaliza pelo número de linhas e pelo número de colunas; O PCA normaliza apenas pelo número de linhas. Conseqüentemente, há uma pequena diferença entre os dois nos cálculos pós-svd. Se ao fazer biplot você definir c=1 em suas fórmulas, obterá exatamente os resultados do PCA. Assim, o biplot pode ser visto como um método genérico e o PCA como um caso particular de biplot.
[ Centralização da coluna . Alguns usuários podem dizer: Pare, mas o PCA não requer também e antes de tudo a centralização das colunas de dados (variáveis) para explicar a variação ? Enquanto biplot pode não fazer a centralização? Minha resposta: somente o PCA em sentido estrito faz a centralização e explica a variação; Estou discutindo o PCA linear, no sentido geral, que explica algum tipo de soma dos desvios quadrados da origem escolhida; você pode optar por ser a média dos dados, o 0 nativo ou o que quiser. Portanto, a operação de "centralização" não é o que poderia distinguir o PCA do biplot.]
Linhas e colunas passivas
No biplot ou no PCA, é possível configurar algumas linhas e / ou colunas para serem passivas ou suplementares. Linha ou coluna passiva não influencia o SVD e, portanto, não influencia a inércia ou as coordenadas de outras linhas / colunas, mas recebe suas coordenadas no espaço dos eixos principais produzidos pelas linhas / colunas ativas (não passivas).
Para definir alguns pontos (linhas / colunas) como passivos, (1) defina r e c como o número apenas de linhas e colunas ativas . (2) Defina como zero linhas e colunas passivas em Z antes do svd. (3) Use as formas "indiretas" para calcular coordenadas de linhas / colunas passivas, pois seus valores de vetor próprio serão zero.
No PCA, quando você calcula as pontuações dos componentes para novos casos recebidos com a ajuda de cargas obtidas em observações antigas ( usando a matriz do coeficiente de pontuação ), na verdade você está fazendo o mesmo que tomar esses novos casos no PCA e mantê-los passivos. Da mesma forma, calcular correlações / covariâncias de algumas variáveis externas com as pontuações de componentes produzidas por um PCA é equivalente a pegar essas variáveis nesse PCA e mantê-las passivas.
Propagação arbitrária de inércia
Os quadrados médios da coluna (MS) das coordenadas padrão são 1. Os quadrados médios da coluna (MS) das coordenadas não padronizadas são iguais à inércia dos respectivos eixos principais: toda a inércia dos valores próprios foi doada aos autovetores para produzir as coordenadas não padronizadas.
No biplot : as coordenadas padrão da linha U∗ têm MS = 1 para cada eixo principal. Remar coordenadas unstandardized, também chamado de linha principais coordenadas U∗S=XV∗/c têm MS = valor próprio correspondente de Z . O mesmo vale para as coordenadas padrão da coluna e não padronizadas (principais).
Geralmente, não é necessário que se dote coordenadas de inércia na íntegra ou em nenhuma. A propagação arbitrária é permitida, se necessário por algum motivo. Seja p1 a proporção de inércia que deve ir para as linhas. Então a fórmula geral das coordenadas de linha é: U∗Sp1 (via direta) = XV∗Sp1−1/c (via indireta). Se p1=0 obtemos coordenadas de linha padrão, enquanto que com p1=1 obtemos coordenadas de linha principal.
Da mesma forma, p2 é a proporção de inércia que deve ir para as colunas. Então a fórmula geral das coordenadas da coluna é: V∗Sp2 (via direta) = X′U∗Sp2−1/r (via indireta). Se p2=0 obtemos as coordenadas da coluna padrão, enquanto que com p2=1 obtemos as coordenadas da coluna principal.
As fórmulas indiretas gerais são universais, pois permitem calcular coordenadas (padrão, principal ou intermediária) também para os pontos passivos, se houver algum.
Se p1+p2=1 eles dizem que a inércia é distribuída entre os pontos de linha e coluna. Os biplots p1=1,p2=0 , ou seja, linha-principal-coluna-padrão, às vezes são chamados de biplots "forma biplots" ou "preservação métrica de linha". Os biplots p1=0,p2=1 , isto é, linha-padrão-coluna-principal, são freqüentemente chamados na literatura da PCA biplots "covariância" ou "preservação métrica em coluna"; eles exibem cargas variáveis ( que são justapostas a covariâncias) mais pontuações padronizadas de componentes, quando aplicadas no PCA.
Na análise de correspondência , p1=p2=1/2 é frequentemente utilizado e é chamada "simétrica" ou normalização "canónica" por inércia - ele permite que (embora em alguns expence de rigor geométrico euclidiana) comparar proximidade entre fileiras e pontos de coluna, como podemos fazer no mapa de desdobramento multidimensional.
Análise de Correspondência (modelo euclidiano)
A análise de correspondência bidirecional (= simples) (CA) é um biplot usado para analisar uma tabela de contingência bidirecional, ou seja, uma tabela não negativa cujas entradas carregam o significado de algum tipo de afinidade entre uma linha e uma coluna. Quando a tabela é frequências, é utilizada a análise de correspondência do modelo qui-quadrado. Quando as entradas são, digamos, médias ou outras pontuações, um modelo euclidiano mais simples CA é usado.
O modelo euclidiano CA é apenas o biplot descrito acima, apenas que a tabela X é pré-processada adicionalmente antes de entrar nas operações do biplot. Em particular, os valores são normalizados não só por r e c mas também pela soma total N .
O pré-processamento consiste em centralizar e depois normalizar pela massa média. A centralização pode ser variada, com mais freqüência: (1) centralização de colunas; (2) centralização de linhas; (3) centralização bidirecional que é a mesma operação que o cálculo dos resíduos de frequência; (4) centralização das colunas após equalizar as somas das colunas; (5) centralização das linhas após equalizar as somas das linhas. A normalização pela massa média é dividida pelo valor médio da célula da tabela inicial. Na etapa de pré-processamento, as linhas / colunas passivas, se existirem, são padronizadas passivamente: elas são centralizadas / normalizadas pelos valores calculados das linhas / colunas ativas.
Em seguida, o biplot usual é feito no X pré-processado , começando em Z=X/rc−−√ .
Biplot ponderado
Imagine que a atividade ou importância de uma linha ou coluna possa ser qualquer número entre 0 e 1, e não apenas 0 (passivo) ou 1 (ativo), como no biplot clássico discutido até agora. Podemos ponderar os dados de entrada com esses pesos de linha e coluna e executar biplot ponderado. Com o biplot ponderado, quanto maior o peso, mais influente é essa linha ou coluna em relação a todos os resultados - a inércia e as coordenadas de todos os pontos nos eixos principais.
Zij=Xijwiwj−−−−√wiWj being the weights for row i and column j. Exactly zero weight designates the row or the column to be passive.
At that point we may discover that classic biplot is simply this weighted biplot with equal weights 1/r for all active rows and equal weights 1/c for all active columns; r and c the numbers of active rows and active columns.
Perform svd of Z. All operations are the same as in classic biplot, the only difference being that wi is in place of 1/r and wj is in place of 1/c. Standard row coordinates: U∗i=Ui/wi−−√ and standard column coordinates: V∗j=Vj/wj−−√. (These are for rows/columns with nonzero weight. Leave values as 0 for those with zero weight and use the indirect formulas below to obtain standard or whatever coordinates for them.)
Give inertia to coordinates in the proportion you want (with p1=1 and p2=1 the coordinates will be fully unstandardized, or principal; with p1=0 and p2=0 they will stay standard). Rows: U∗Sp1 (direct way) = X[Wj]V∗Sp1−1 (indirect way). Columns: V∗Sp2 (direct way) = ([Wi]X)′U∗Sp2−1 (indirect way). Matrices in brackets here are the diagonal matrices of the column and the row weights, respectively. For passive points (that is, with zero weights) only the indirect way of computation is suited. For active (positive weights) points you may go either way.
PCA as a particular case of Biplot revisited. When considering unweighted biplot earlier I mentioned that PCA and biplot are equivalent, the only difference being that biplot sees columns (variables) of the data as random cases symmetrically to observations (rows). Having extended now biplot to more general weighted biplot we may once again claim it, observing that the only difference is that (weighted) biplot normalizes the sum of column weights of input data to 1, and (weighted) PCA - to the number of (active) columns. So here is the weighted PCA introduced. Its results are proportionally identical to those of weighted biplot. Specifically, if c is the number of active columns, then the following relationships are true, for weighted as well as classic versions of the two analyses:
- eigenvalues of PCA = eigenvalues of biplot ⋅c;
- loadings = column coordinates under "principal normalization" of columns;
- standardized component scores = row coordinates under "standard normalization" of rows;
- eigenvectors of PCA = column coordinates under "standard normalization" of columns /c√;
- raw component scores = row coordinates under "principal normalization" of rows ⋅c√.
Correspondence Analysis (Chi-square model)
This is technically a weighted biplot where weights are being computed from a table itself rather then supplied by the user. It is used mostly to analyze frequency cross-tables. This biplot will approximate, by euclidean distances on the plot, chi-square distances in the table. Chi-square distance is mathematically the euclidean distance inversely weighted by the marginal totals. I will not go further in details of Chi-square model CA geometry.
The preprocessing of frequency table X is as follows: divide each frequency by the expected frequency, then subtract 1. It is the same as to first obtain the frequency residual and then to divide by the expected frequency. Set row weights to wi=Ri/N and column weights to wj=Cj/N, where Ri is the marginal sum of row i (active columns only), Cj is the marginal sum of column j (active rows only), N is the table total active sum (the three numbers come from the initial table).
Then do weighted biplot: (1) Normalize X into Z. (2) The weights are never zero (zero Ri and Cj are not allowed in CA); however you can force rows/columns to become passive by zeroing them in Z, so their weights are ineffective at svd. (3) Do svd. (4) Compute standard and inertia-vested coordinates as in weighted biplot.
In Chi-square model CA as well as in Euclidean model CA using two-way centering one last eigenvalue is always 0, so the maximal possible number of principal dimensions is min(r−1,c−1).
See also a nice overview of chi-square model CA in this answer.
Illustrations
Here is some data table.
row A B C D E F
1 6 8 6 2 9 9
2 0 3 8 5 1 3
3 2 3 9 2 4 7
4 2 4 2 2 7 7
5 6 9 9 3 9 6
6 6 4 7 5 5 8
7 7 9 6 6 4 8
8 4 4 8 5 3 7
9 4 6 7 3 3 7
10 1 5 4 5 3 6
11 1 5 6 4 8 3
12 0 6 7 5 3 1
13 6 9 6 3 5 4
14 1 6 4 7 8 4
15 1 1 5 2 4 3
16 8 9 7 5 5 9
17 2 7 1 3 4 4
28 5 3 3 9 6 4
19 6 7 6 2 9 6
20 10 7 4 4 8 7
Several dual scatterplots (in 2 first principal dimensions) built on analyses of these values follow. Column points are connected with the origin by spikes for visual emphasis. There were no passive rows or columns in these analyses.
The first biplot is SVD results of the data table analyzed "as is"; the coordinates are the row and the column eigenvectors.
Below is one of possible biplots coming from PCA. PCA was done on the data "as is", without centering the columns; however, as it is adopted in PCA, normalization by the number of rows (the number of cases) was done initially. This specific biplot displays principal row coordinates (i.e. raw component scores) and principal column coordinates (i.e. variable loadings).
Next is biplot sensu stricto: The table was initially normalized both by the number of rows and the number of columns. Principal normalization (inertia spreading) was used for both row and column coordinates - as with PCA above. Note the similarity with the PCA biplot: the only difference is due to the difference in the initial normalization.
Chi-square model correspondence analysis biplot. The data table was preprocessed in the special manner, it included two-way centering and a normalization using marginal totals. It is a weighted biplot. Inertia was spread over the row and the column coordinates symmetrically - both are halfway between "principal" and "standard" coordinates.
The coordinates displayed on all these scatterplots:
point dim1_1 dim2_1 dim1_2 dim2_2 dim1_3 dim2_3 dim1_4 dim2_4
1 .290 .247 16.871 3.048 6.887 1.244 -.479 -.101
2 .141 -.509 8.222 -6.284 3.356 -2.565 1.460 -.413
3 .198 -.282 11.504 -3.486 4.696 -1.423 .414 -.820
4 .175 .178 10.156 2.202 4.146 .899 -.421 .339
5 .303 .045 17.610 .550 7.189 .224 -.171 -.090
6 .245 -.054 14.226 -.665 5.808 -.272 -.061 -.319
7 .280 .051 16.306 .631 6.657 .258 -.180 -.112
8 .218 -.248 12.688 -3.065 5.180 -1.251 .322 -.480
9 .216 -.105 12.557 -1.300 5.126 -.531 .036 -.533
10 .171 -.157 9.921 -1.934 4.050 -.789 .433 .187
11 .194 -.137 11.282 -1.689 4.606 -.690 .384 .535
12 .157 -.384 9.117 -4.746 3.722 -1.938 1.121 .304
13 .235 .099 13.676 1.219 5.583 .498 -.295 -.072
14 .210 -.105 12.228 -1.295 4.992 -.529 .399 .962
15 .115 -.163 6.677 -2.013 2.726 -.822 .517 -.227
16 .304 .103 17.656 1.269 7.208 .518 -.289 -.257
17 .151 .147 8.771 1.814 3.581 .741 -.316 .670
18 .198 -.026 11.509 -.324 4.699 -.132 .137 .776
19 .259 .213 15.058 2.631 6.147 1.074 -.459 .005
20 .278 .414 16.159 5.112 6.597 2.087 -.753 .040
A .337 .534 4.387 1.475 4.387 1.475 -.865 -.289
B .461 .156 5.998 .430 5.998 .430 -.127 .186
C .441 -.666 5.741 -1.840 5.741 -1.840 .635 -.563
D .306 -.394 3.976 -1.087 3.976 -1.087 .656 .571
E .427 .289 5.556 .797 5.556 .797 -.230 .518
F .451 .087 5.860 .240 5.860 .240 -.176 -.325