Compreendendo a análise de componentes principais, vetores próprios e valores próprios


976

Na aula de reconhecimento de padrões de hoje, meu professor falou sobre PCA, autovetores e autovalores.

Eu entendi a matemática disso. Se me pedem para encontrar valores próprios, etc., farei isso corretamente como uma máquina. Mas eu não entendi . Eu não entendi o propósito disso. Eu não tive a sensação disso.

Eu acredito firmemente na seguinte citação:

Você realmente não entende alguma coisa, a menos que possa explicar à sua avó. -- Albert Einstein

Bem, não posso explicar esses conceitos a um leigo ou a uma avó.

  1. Por que PCA, vetores próprios e valores próprios? Qual era a necessidade desses conceitos?
  2. Como você explicaria isso a um leigo?

95
Boa pergunta. Também concordo com a citação. Acredito que existem muitas pessoas em estatística e matemática que são altamente inteligentes e podem se aprofundar muito no trabalho, mas não entendem profundamente no que estão trabalhando. Ou o fazem, mas são incapazes de explicá-lo a outras pessoas. Esforço-me para fornecer respostas aqui em inglês simples e faço perguntas que exigem respostas em inglês planejadas.
Neil McGuigan

7
Isso foi perguntado no site de Matemática em julho, mas não tão bem e não obteve muitas respostas (não é surpreendente, dado o foco diferente). math.stackexchange.com/questions/1146/…
whuber

6
Semelhante à explicação de Zuur et al em Analisando dados ecológicos, eles falam sobre projetar sua mão em um projetor. Você continua girando sua mão para que a projeção na parede pareça muito semelhante à que você acha que uma mão deve ter.
Roman Luštrik

12
Essa pergunta me levou a um bom artigo e, apesar de achar que é uma ótima citação, não é de Einstein. Essa é uma má atribuição comum, e a citação original mais provável é provavelmente a de Ernest Rutherford, que disse: "Se você não pode explicar sua física a uma garçonete, provavelmente não é uma física muito boa". Mesmo assim, obrigado por iniciar este tópico.
precisa saber é o seguinte

23
Alice Calaprice, O último Einstein cotável, Princeton UP 2011 sinaliza a citação aqui como um dos muitos "Provavelmente não por Einstein". Veja a p.482.
Nick Cox

Respostas:


1293

Imagine um grande jantar em família, onde todo mundo começa a perguntar sobre o PCA. Primeiro você explica à sua bisavó; então para sua avó; depois para sua mãe; depois ao seu cônjuge; finalmente, para sua filha (que é matemática). Cada vez que a próxima pessoa é menos leiga. Aqui está como a conversa pode ser.

Bisavó: Ouvi dizer que você está estudando "Pee-See-Ay". Eu imagino o que isso seja...

Você: Ah, é apenas um método de resumir alguns dados. Olha, temos algumas garrafas de vinho aqui em cima da mesa. Podemos descrever cada vinho por sua cor, por sua força, por sua idade e assim por diante (veja esta bela visualização das propriedades do vinho tiradas daqui ). Podemos compor uma lista completa de características diferentes de cada vinho em nossa adega. Mas muitos deles medirão propriedades relacionadas e, portanto, serão redundantes. Nesse caso, poderemos resumir cada vinho com menos características! É isso que o PCA faz.

Avó: Isso é interessante! Portanto, essa coisa do PCA verifica quais características são redundantes e as descarta?

Você: Excelente pergunta, vovó! Não, o PCA não está selecionando algumas características e descartando outras. Em vez disso, constrói algumas novas características que acabam resumindo bem nossa lista de vinhos. É claro que essas novas características são construídas usando as antigas; por exemplo, uma nova característica pode ser calculada como a idade do vinho menos o nível de acidez do vinho ou alguma outra combinação como essa (chamamos de combinações lineares ).

De fato, o PCA encontra as melhores características possíveis, aquelas que resumem a lista de vinhos, bem como somente são possíveis (entre todas as combinações lineares concebíveis). É por isso que é tão útil.

Mãe: Hmmm, isso certamente parece bom, mas não tenho certeza se entendi. O que você realmente quer dizer quando diz que essas novas características do PCA "resumem" a lista de vinhos?

Você: Acho que posso dar duas respostas diferentes para esta pergunta. A primeira resposta é que você está procurando algumas propriedades (características) do vinho que diferem fortemente entre os vinhos. De fato, imagine que você tenha uma propriedade igual para a maioria dos vinhos. Isso não seria muito útil, não seria? Os vinhos são muito diferentes, mas sua nova propriedade faz com que todos pareçam iguais! Este certamente seria um resumo ruim. Em vez disso, o PCA procura propriedades que mostrem o máximo de variação possível entre os vinhos.

A segunda resposta é que você procura as propriedades que permitem prever ou "reconstruir" as características originais do vinho. Mais uma vez, imagine que você tenha uma propriedade que não tenha relação com as características originais; se você usar apenas essa nova propriedade, não há como reconstruir as originais! Novamente, isso seria um resumo ruim. Portanto, o PCA procura propriedades que permitam reconstruir as características originais da melhor maneira possível.

Surpreendentemente, verifica-se que esses dois objetivos são equivalentes e, portanto, o PCA pode matar dois coelhos com uma cajadada só.

Cônjuge: Mas, querida, esses dois "objetivos" do PCA parecem tão diferentes! Por que eles seriam equivalentes?

Você: Hmmm. Talvez eu deva fazer um pequeno desenho (pega um guardanapo e começa a rabiscar) . Vamos escolher duas características do vinho, talvez a escuridão do vinho e o teor alcoólico - não sei se elas estão correlacionadas, mas vamos imaginar que sim. Aqui está a aparência de um gráfico de dispersão de diferentes vinhos:

Dados exemplares do PCA

Cada ponto nesta "nuvem de vinho" mostra um vinho em particular. Você vê que as duas propriedades ( x e y nesta figura) estão correlacionadas. Uma nova propriedade pode ser construída traçando uma linha através do centro dessa nuvem de vinho e projetando todos os pontos nessa linha. Essa nova propriedade será dada por uma combinação linear w1x+w2y , em que cada linha corresponde a alguns valores particulares de w1 e w2 .

Agora olhe aqui com muito cuidado - eis como essas projeções se parecem com linhas diferentes (pontos vermelhos são projeções dos pontos azuis):

Animação PCA: erro de variação e reconstrução

Como eu disse antes, o PCA encontrará a linha "melhor" de acordo com dois critérios diferentes do que é o "melhor". Primeiro, a variação dos valores nessa linha deve ser máxima. Preste atenção em como a "dispersão" (que chamamos de "variação") dos pontos vermelhos muda enquanto a linha gira; você pode ver quando atinge o máximo? Segundo, se reconstruirmos as duas características originais (posição de um ponto azul) a partir da nova (posição de um ponto vermelho), o erro de reconstrução será dado pelo comprimento da linha vermelha de conexão. Observe como o comprimento dessas linhas vermelhas muda enquanto a linha gira; você pode ver quando o comprimento total atinge o mínimo?

Se você observar esta animação por algum tempo, notará que "a variação máxima" e "o erro mínimo" são atingidos ao mesmo tempo, ou seja, quando a linha aponta para os tiques magenta que marquei nos dois lados da nuvem de vinho . Esta linha corresponde à nova propriedade do vinho que será construída pela PCA.

A propósito, PCA significa "análise de componentes principais" e essa nova propriedade é chamada "primeiro componente principal". E, em vez de dizer "propriedade" ou "característica", geralmente dizemos "característica" ou "variável".

Filha: Muito bom, papai! Acho que posso entender por que os dois objetivos produzem o mesmo resultado: é essencialmente por causa do teorema de Pitágoras, não é? De qualquer forma, ouvi dizer que o PCA está de alguma forma relacionado a autovetores e autovalores; onde eles estão nessa foto?

Você: Observação brilhante. Matematicamente, a dispersão dos pontos vermelhos é medida como a distância quadrada média do centro da nuvem de vinho a cada ponto vermelho; como você sabe, é chamado de variação . Por outro lado, o erro total de reconstrução é medido como o comprimento quadrado médio das linhas vermelhas correspondentes. Mas como o ângulo entre as linhas vermelhas e a linha preta é sempre 90, a soma dessas duas quantidades é igual à distância quadrada média entre o centro da nuvem de vinho e cada ponto azul; esse é precisamente o teorema de Pitágoras. É claro que essa distância média não depende da orientação da linha preta; portanto, quanto maior a variação, menor o erro (porque a soma é constante). Esse argumento ondulado à mão pode ser preciso ( veja aqui ).

A propósito, você pode imaginar que a linha preta é uma haste sólida e cada linha vermelha é uma mola. A energia da mola é proporcional ao seu comprimento ao quadrado (isso é conhecido na física como lei de Hooke), de modo que a haste se orientará de modo a minimizar a soma dessas distâncias ao quadrado. Fiz uma simulação de como será, na presença de algum atrito viscoso:

Animação PCA: pêndulo

Em relação aos autovetores e autovalores. Você sabe o que é uma matriz de covariância ; no meu exemplo é um 2×2 matriz que é dada por

(1.070.630.630.64).
O que isso significa é que a variação davariávelxé1.07, a variação davariávelyé0.64e a covariância entre elas é0.63. Por ser uma matriz quadrada simétrica, pode ser diagonalizada escolhendo um novo sistema de coordenadas ortogonais, dado por seus vetores próprios (aliás, isso é chamado deteorema espectral); os autovalores correspondentes serão localizados na diagonal. Nesse novo sistema de coordenadas, a matriz de covariância é diagonal e tem a seguinte aparência:
(1.52000.19),
o que significa que a correlação entre pontos agora é zero. Torna-se claro que a variação de qualquer projeção será dada por uma média ponderada dos valores próprios (estou apenas esboçando a intuição aqui). Conseqüentemente, a variação máxima possível ( 1.52 ) será alcançada se simplesmente fizermos a projeção no primeiro eixo de coordenadas. Segue-se que a direção do primeiro componente principal é dada pelo primeiro vetor próprio da matriz de covariância. ( Mais detalhes aqui. )

Você também pode ver isso na figura rotativa: há uma linha cinza ortogonal à preta; juntos, eles formam um quadro de coordenadas rotativo. Tente perceber quando os pontos azuis não se correlacionam nesse quadro rotativo. A resposta, novamente, é que isso acontece exatamente quando a linha preta aponta para a magenta. Agora posso dizer como os encontrei: eles marcam a direção do primeiro vetor próprio da matriz de covariância, que neste caso é igual a (0.81,0.58) .


Por solicitação popular, compartilhei o código do Matlab para produzir as animações acima .


79
+1 Bom conto e ilustrações. ...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...Eu continuaria: e depois do jantar - para você mesmo. E aqui você de repente ficou preso ...
ttnphns

68
Eu absolutamente amo as ilustrações que você faz para essas respostas.
shadowtalker

57
Normalmente, eu apenas navego pelo Cross Validated para ler sobre as coisas, mas nunca tive motivos para criar uma conta ... principalmente porque os tipos de perguntas aqui estão fora dos meus conhecimentos e não consigo responder a nenhuma. Normalmente, estou apenas no StackOverflow e estou na rede StackExchange há cerca de um ano. No entanto, apenas decidi criar uma conta hoje principalmente para fazer um voto positivo em sua postagem. Esta é provavelmente a melhor exposição de PCA que eu já li e já li muitas. Obrigado por este post maravilhoso - a excelente narrativa, os gráficos e é tão fácil de ler! 1
rayryeng 23/08/2015

14
Nota para mim: minha resposta atualmente tem 100 votos positivos, a do JDLong tem 220 votos positivos; se assumimos um crescimento constante, o meu tem 100 votos / ano e o dele 40 votos / ano. Ou melhor, 55 / ano, se computado desde que passou de 100 upvotes [recebeu um distintivo de ouro] em janeiro de 2014. Isso significa que vou me atualizar em 2,5 a 3 anos, no final de 2018. Vamos ver :-)
ameba

3
Nota para mim cont: Eu tenho que atualizar minha estimativa. Um mês depois, essa resposta obteve 18 votos positivos vs 5 para o JDLong. Isso indica que eu posso recuperar o atraso daqui a um ano. Curiosamente, 5 / mês está muito próximo da minha estimativa acima de 55 / ano, mas 18 / mês é mais do que duas vezes acima de 100 / ano. Como minha resposta não mudou, parece que chegar ao segundo lugar acelerou a votação (provavelmente devido ao aumento da visibilidade).
Ameba

376

O manuscrito "Um tutorial sobre Análise de Componentes Principais", de Lindsay I Smith, realmente me ajudou a entender o PCA. Eu acho que ainda é muito complexo para explicar à sua avó, mas não é ruim. Você deve pular os primeiros bits no cálculo de eigens, etc. Vá para o exemplo no capítulo 3 e veja os gráficos.

Tenho alguns exemplos em que trabalhei com alguns exemplos de brinquedos para entender a regressão linear PCA vs. OLS. Vou tentar desenterrá-los e publicá-los também.

edit: Você realmente não perguntou sobre a diferença entre os Mínimos Quadrados Ordinários (OLS) e o PCA, mas desde que desenterrei minhas anotações, fiz um post sobre isso . A versão muito curta é OLS de y ~ x minimiza o erro perpendicular ao eixo independente como este (linhas amarelas são exemplos de dois erros):

texto alternativo

Se você regredisse x ~ y (em oposição a y ~ x no primeiro exemplo), isso minimizaria erros como este:

texto alternativo

e o PCA minimizam efetivamente os erros ortogonais ao modelo em si, assim:

texto alternativo

Mais importante, como já foi dito, em uma situação em que você tem um GRUPO INTEIRO de variáveis ​​independentes, o PCA ajuda a descobrir quais combinações lineares dessas variáveis ​​são mais importantes. Os exemplos acima apenas ajudam a visualizar como é o primeiro componente principal em um caso realmente simples.

No meu blog, eu tenho o código R para criar os gráficos acima e calcular o primeiro componente principal. Pode valer a pena brincar com isso para criar sua intuição em torno do PCA. Eu costumo não possuir algo até escrever um código que o reproduza. 


9
Boa ligação ao manuscrito de Lindsay I Smith - basta ler hoje; muito útil.
Stedy 23/10/10

7
Portanto, o PCA é equivalente ao total dos mínimos quadrados se otimizar distâncias ortogonais dos pontos até a linha de ajuste?
Marcin

3
@ Marcin - isso está correto. Você pode re-frase PCA como encontrar a melhor classificação estimativa ( 1 m p ) dos originais p variáveis ( x i jm1mppx^iji=1,,nj=1,,p ), com uma função de objectivo . Escolher o número de PCs é equivalente a escolher a classificação das previsões. i=1nj=1p(xijx^ij)2
probabilityislogic

3
Pequeno erro de matemática em Smith: "todos os autovetores de uma matriz são perpendiculares ... não importa quantas dimensões você tenha" se aplica apenas a matrizes simétricas, aqui está uma delas com 45 graus de diferença . Smith observa a simetria das matrizes de covariância anteriormente, mas não a implicação - a simetria garante nvetores autônomos perpendiculares. De fato, nem todas as n x nmatrizes reais têm valores próprios reais (por exemplo, {{0,1}, {- 1,0}}) e, ndentre as que possuem, nem todas têm vetores próprios independentes (por exemplo, {{1,1}, {0 , 1}})! A simetria é importante!
Silverfish

8
Como matemático que ensina autovetores, tenho que me encolher ao ler este manuscrito de Lindsay Smith. "... vetor resultante é um múltiplo inteiro do original ..." - qual é o sentido de mencionar inteiro ? Um vetor próprio da matriz A é qualquer vetor X tal que AX é um múltiplo de X. Não é um múltiplo inteiro, apenas um múltiplo! Um múltiplo não inteiro também está ok! Eita por que criar confusão desnecessária onde não há?
Dmitri Zaitsev

144

Vamos fazer (2) primeiro. O PCA ajusta um elipsóide aos dados. Um elipsóide é uma generalização multidimensional de formas esféricas distorcidas, como charutos, panquecas e ovos. Tudo isso é descrito com precisão pelas direções e comprimentos de seus principais (semi-) eixos, como o eixo do charuto ou ovo ou o plano da panqueca. Não importa como o elipsóide é girado, os autovetores apontam nessas direções principais e os autovalores fornecem os comprimentos. Os menores autovalores correspondem às direções mais finas com menor variação; portanto, ignorá-las (que as colapsam) perde relativamente pouca informação: essa é a PCA.

(1) Além da simplificação (acima), temos necessidades de descrição, visualização e discernimento expressivos. Conseguir reduzir dimensões é uma coisa boa : facilita a descrição dos dados e, se tivermos sorte em reduzi-los para três ou menos, vamos desenhar uma imagem. Às vezes, podemos até encontrar maneiras úteis de interpretar as combinações de dados representadas pelas coordenadas na figura, que podem fornecer informações sobre o comportamento conjunto das variáveis.


A figura mostra algumas nuvens de pontos cada, juntamente com elipsóides contendo 50% de cada nuvem e eixos alinhados com as direções principais. Na primeira linha, as nuvens têm essencialmente um componente principal, compreendendo 95% de toda a variação: estas são as formas de charuto. Na segunda linha, as nuvens têm essencialmente dois componentes principais, um com aproximadamente o dobro do tamanho do outro, que juntos representam 95% de toda a variação: essas são as formas de panqueca. Na terceira linha, todos os três componentes principais são consideráveis: estas são as formas dos ovos.200

Figuras

Qualquer nuvem de pontos 3D que seja "coerente" no sentido de não exibir aglomerados, gavinhas ou outliers se parecerá com um desses. Qualquer ponto de nuvem 3D em tudo não todos os pontos são coincidentes --provided - pode ser descrito por uma destas figuras como um ponto de partida inicial para a identificação de mais agrupamento ou padronização.

A intuição que você desenvolve ao contemplar essas configurações pode ser aplicada a dimensões superiores, mesmo que seja difícil ou impossível visualizá-las.


2
Para adicionar a isso, quando você tem semiaxes (quase) iguais (ou seja, o elipsóide possui uma fatia (quase) circular)), isso indica que os dois dados correspondentes a esses eixos têm (quase) dependência; pode-se falar dos eixos principais de uma elipse, mas os círculos têm apenas um raio. :)
JM não é um estatístico

6
Eu seria mais cauteloso aqui, JM First, apenas para esclarecer, por "quase dependência" você deve significar "quase independente". Isso seria verdade para uma variável multinormal, mas em muitos casos o PCA é executado com dados marcadamente não normais. De fato, as análises de agrupamento que seguem alguns cálculos de PCA podem ser vistas como uma maneira de avaliar uma forte forma de não normalidade. Matematicamente, círculos que têm eixos principais, mas eles não são apenas determinadas unicamente: você pode escolher qualquer par ortogonal de raios como seus eixos principais.
whuber

1
Sim, desculpe, suponho que "os principais eixos de um círculo sejam indeterminados" teriam sido uma maneira melhor de colocá-lo.
JM não é estatístico

2
Muito boa interpretação! Tentando entender melhor .. onde, na matemática do PCA, podemos ver que "o PCA se encaixa nos dados com um elipsóide"?
Kochede

4
@Kochede Um elipsóide é um contorno de uma forma quadrática. A matriz de covariância é uma forma quadrática. O PCA identifica seus eixos e seus comprimentos.
whuber

106

Hmm, aqui vamos para uma abordagem completamente não matemática do PCA ...

Imagine que você acabou de abrir uma loja de cidra. Você tem 50 variedades de sidra e deseja descobrir como alocá-las nas prateleiras, para que sidras com sabor semelhante sejam colocadas na mesma prateleira. Existem muitos gostos e texturas diferentes na sidra - doçura, acidez, amargura, levedura, frutado, clareza, efervescência, etc. etc. Então, o que você precisa fazer para colocar as garrafas em categorias é responder a duas perguntas:

1) Quais são as qualidades mais importantes para identificar grupos de sidras? por exemplo, classificar com base na doçura facilita agrupar suas sidras em grupos com gostos semelhantes do que classificar com base no sabor frutado?

2) Podemos reduzir nossa lista de variáveis ​​combinando algumas delas? por exemplo, existe realmente uma variável que é uma combinação de "levedura, clareza e efervescência" e que faz uma escala realmente boa para classificar variedades?

Isso é essencialmente o que o PCA faz. Os componentes principais são variáveis ​​que explicam utilmente a variação em um conjunto de dados - nesse caso, que diferenciam utilmente entre grupos. Cada componente principal é uma das suas variáveis ​​explicativas originais ou uma combinação de algumas das suas variáveis ​​explicativas originais.


4
E os vetores próprios e os valores próprios?
Ηλίας

3
Ok: o valor próprio associado a cada componente principal informa quanta variação no conjunto de dados explica (no meu exemplo, com que clareza ele separa suas garrafas em grupos). Eles geralmente são expressos como uma porcentagem da variação total no conjunto de dados. Quanto aos autovetores, bem, é aí que, como garras, eu sigo a saída de uma análise como uma máquina;) Na minha cabeça, eles estão relacionados à forma como você gira o celular de Vince para a sua melhor orientação, mas isso pode não ser o maneira certa de pensar neles.
Frei Harrison

17
Os vetores próprios são apenas as combinações lineares das variáveis ​​originais (no espaço fatorial simples ou girado); eles descreveram como as variáveis ​​"contribuem" para cada eixo fatorial. Basicamente, pense no PCA como uma maneira de construir novos eixos que apontam para as direções da variação máxima (no espaço variável original), conforme expresso pelo valor próprio, e como as contribuições das variáveis ​​são ponderadas ou transformadas linearmente nesse novo espaço.
chl

como seria a matriz de covariância deste problema? o que nos diz sobre as variáveis ​​(doçura, acidez, amargura, levedura, frutado, clareza, efervescência etc etc)?
JustCurious 9/08/13

1
Eu não sei o que é sobre estatísticos e bebidas alcoólicas, mas Whiskey classificados faz exatamente isso por whiskies escoceses ...
nekomatic

96

Eu responderia em "termos leigos" dizendo que o PCA visa ajustar linhas retas aos pontos de dados (todo mundo sabe o que é uma linha reta). Chamamos essas linhas retas de "componentes principais". Existem tantos componentes principais quanto variáveis. O primeiro componente principal é a melhor linha reta que você pode ajustar aos dados. O segundo componente principal é a melhor linha reta que você pode ajustar aos erros do primeiro componente principal. O terceiro componente principal é a melhor linha reta que você pode ajustar aos erros do primeiro e do segundo componentes principais, etc., etc.

Se alguém perguntar o que você quer dizer com "melhor" ou "erros", isso indica que eles não são "leigos"; portanto, podem entrar em detalhes um pouco mais técnicos, como erros perpendiculares, não sabem onde está o erro. direção x ou y, mais de 2 ou 3 dimensões, etc. Além disso, se você evitar fazer referência à regressão OLS (que o "leigo" provavelmente também não entenderá)), a explicação é mais fácil.

Os vetores próprios e os valores próprios não são conceitos necessários em si, mas sim conceitos matemáticos que já existiam. Quando você resolve o problema matemático do PCA, acaba sendo equivalente a encontrar os autovalores e autovetores da matriz de covariância.


8
+1, isso é realmente em "termos leigos", e eu sei que você pode derivar isso com muito rigor, se você quiser!
gung

2
A melhor resposta até agora, eu diria. E eu uso muito o PCA.
A11msp

2
Uau - esta é realmente uma ótima e simples explicação! Obrigado!
Nick

52

Eu posso lhe dar minha própria explicação / prova do PCA, que eu acho realmente simples e elegante, e não requer nada, exceto conhecimentos básicos de álgebra linear. O resultado foi bastante demorado, porque eu queria escrever em linguagem acessível e simples.

Suponha que tenhamos algumas amostras de dados de um espaço n- dimensional. Agora, queremos projetar esses dados em algumas linhas no nMnn espaço dimensional, de maneira a manter a maior variação possível (ou seja, a variação dos dados projetados deve ser tão grande em comparação com a variação dos dados originais quanto possível).

Agora, vamos observar que se traduzirmos (mover) todos os pontos por algum vetor , a variância permanecerá a mesma, pois mover todos os pontos por β moverá sua média aritmética por ββββ , e a variação é linearmente proporcional a . Portanto, traduzimos todos os pontos por - μ , para que sua média aritmética se torne 0 , para conforto computacional. Vamos denotar os pontos traduzidos como x i = x i - μi=1Mxiμ2μ0xi=xiμ. Vamos observar também, que a variância pode ser agora expressa simplesmente como .i=1Mxi2

Agora a escolha da linha. Podemos descrever qualquer linha como um conjunto de pontos que satisfazem a equação , para alguns vetores v , w . Observe que se movermos a linha por algum vetor γ ortogonal para v , todas as projeções na linha também serão movidas por γ , portanto, a média das projeções será movida por γx=αv+wv,wγvγγ, portanto, a variação das projeções permanecerá inalterada. Isso significa que podemos mover a linha paralela a ela mesma e não alterar a variação das projeções nessa linha. Novamente, por motivos de conveniência, vamos nos limitar apenas às linhas que passam pelo ponto zero (isso significa as linhas descritas por ).x=αv

Tudo bem, agora suponha que tenhamos um vetor que descreve a direção de uma linha que é um possível candidato para a linha que procuramos. Precisamos calcular a variação das projeções na linha αv . O que precisaremos são pontos de projeção e sua média. De álgebra linear sabemos que, neste caso simples a projeção de x ' i em α v éx i , v /v 2 . De agora em diante, nos limitemos a apenas vetores unitários v . Isso significa que podemos escrever o comprimento da projeção do ponto x αvxiαvxi,v/v2v emvsimplesmente comox ' i ,v.xivxi,v

Em algumas das respostas anteriores, alguém disse que o PCA minimiza a soma dos quadrados das distâncias da linha escolhida. Agora podemos ver que é verdade, porque a soma dos quadrados das projeções mais a soma dos quadrados das distâncias da linha escolhida é igual à soma dos quadrados das distâncias do ponto . Ao maximizar a soma dos quadrados das projeções, minimizamos a soma dos quadrados das distâncias e vice-versa, mas essa foi apenas uma digressão ponderada, voltando à prova agora.0

Quanto à média das projeções, vamos observar que faz parte de alguma base ortogonal de nosso espaço e que se projetarmos nossos pontos de dados em cada vetor dessa base, sua soma será cancelada (é assim porque projetar no vetores da base é como escrever os pontos de dados na nova base ortogonal). Portanto, a soma de todas as projeções no vetor v (vamos chamar a soma S v ) e a soma das projeções em outros vetores a partir da base (vamos chamá-lo de S o ) é 0, porque é a média dos pontos de dados. Mas S v é ortogonal a S o ! Isso significa S o = S vvvSvSoSvSo .So=Sv=0

Portanto, a média de nossas projeções é . 0Bem, isso é conveniente, porque isso significa que a variação é apenas a soma dos quadrados dos comprimentos das projeções ou nos símbolos

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

Bem, de repente a matriz de covariância apareceu. Vamos denotar-lo simplesmente por . Isso significa que agora estamos procurando um vetor unitário v que maximize v TX v , para alguma matriz definida semi-positiva XXvvTXvX .

Agora, vamos pegar os autovetores e autovalores da matriz e denotá-los por e 1 , e 2 , , e n e λ 1 , , λ n respectivamente, de modo que λ 1λ 2 , λ 3 . Se os valores λ não duplicarem, os vetores próprios formarão uma base ortonormal. Se o fizerem, escolhemos os autovetores de maneira a formar uma base ortonormal.Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

Agora vamos calcular para um vetor próprio e i . Temos de e t iX e i = e t i( λ i e i ) = λ i ( e i 2 ) 2 = λ i .vTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

Muito bom, isso nos dá para e 1 . Agora vamos pegar um vetor arbitrário v . Desde autovetores formam uma base ortonormal, podemos escrever v = Σ n i = 1 e iv , e i , e temos Σλ1e1vv=i=1neiv,ei. Vamos denotarβi=v,eii=1nv,ei2=1βi=v,ei .

Agora vamos contar . Nós reescrever v como uma combinação linear de e i , e tem: ( n Σ i = 1 β i e i ) TX ( n Σ i = 1 β i e i ) = ( n Σ i = 1 β i e i ) ( n ivTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

A última equação vem do fato de os vetores próprios terem sido escolhidos para serem ortogonais em pares, de modo que seus produtos pontuais são zero. Agora, como todos os vetores próprios também têm comprimento unitário, podemos escrever , ondeβ 2 i são todos positivos e somam1.vTXv=i=1nλiβi2βi21

Isso significa que a variação da projeção é uma média ponderada dos valores próprios. Certamente, é sempre menor que o maior autovalor, e é por isso que deve ser a nossa escolha do primeiro vetor PCA.

lin(e2,e3,,en)e2 . E assim por diante ...

A propósito, agora deve ficar claro por que a variação retida pode ser expressa por i=1kλi/i=1nλi .

kkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,uj . Porqueei2=1j=1kβij2+j=1nkθj2=1γi1i

i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1 Resposta muito boa! Ainda não o li completamente, mas sua resposta é o tipo que eu estava procurando. Todos os passos explicados =)
jjepsuomi

9
Mostre-me um leigo que conheça álgebra linear básica e eu lhe mostrarei uma graduação em matemática.
probabilityislogic

xiαvxi,v/v2xi,v/v

1
Penso que esta é de longe a melhor explicação para PCA que já vi. Obrigado.
Nimitz14

1
Essa é a minha explicação favorita que também mostra por que os vetores próprios maximizam a variação.
Romwell

47

Tudo bem, vou tentar. Alguns meses atrás, procurei uma boa quantidade de literatura para encontrar uma explicação intuitiva que poderia explicar a um não estatístico. Eu achei as derivações que usam multiplicadores Lagrange as mais intuitivas.

Digamos que temos dados de alta dimensão - digamos 30 medições feitas em um inseto. Os bugs têm genótipos diferentes e características físicas ligeiramente diferentes em algumas dessas dimensões, mas com esses dados de alta dimensão, é difícil dizer quais insetos pertencem a qual grupo.

O PCA é uma técnica para reduzir a dimensão:

  1. Tomando combinações lineares das variáveis ​​originais.
  2. Cada combinação linear explica a maior variação possível nos dados.
  3. Cada combinação linear não está correlacionada com as outras

Ou, em termos matemáticos:

  1. Yj=ajx
  2. k>jV(Yk)<V(Yj)
  3. akaj=0

Encontrar combinações lineares que satisfaçam essas restrições nos leva a autovalores. Por quê?

Eu recomendo verificar o livro Uma Introdução à Análise Multivariada de Dados para obter a derivação completa (p. 50), mas a idéia básica são problemas sucessivos de otimizações (maximização da variância) restringidos de forma que a'a = 1 para os coeficientes a (para evitar o caso) quando a variação pode ser infinita) e restrita para garantir que os coeficientes sejam ortogonais.

Isso leva à otimização com multiplicadores Lagrange, que por sua vez, revela por que os autovalores são usados. Estou com preguiça de digitar (desculpe!), Mas este PDF passa pela prova muito bem a partir deste ponto.

Eu nunca tentaria explicar isso para minha avó, mas se tivesse que falar geralmente sobre técnicas de redução de dimensão, apontaria para este exemplo trivial de projeção (não PCA). Suponha que você tenha um celular Calder muito complexo. Alguns pontos no espaço 3D próximos um do outro, outros não. Se pendurássemos este móvel no teto e iluminássemos a luz de um ângulo, obteríamos uma projeção em um plano de menor dimensão (uma parede bidimensional). Agora, se esse celular for principalmente largo em uma direção, mas fino na outra, podemos rotacioná-lo para obter projeções que diferem em utilidade. Intuitivamente, uma forma fina em uma dimensão projetada na parede é menos útil - todas as sombras se sobrepõem e não nos dão muita informação. No entanto, se girarmos para que a luz brilhe no lado largo, temos uma imagem melhor dos dados de dimensão reduzida - os pontos estão mais espalhados. Muitas vezes é isso que queremos. Eu acho que minha avó podia entender isso :-)


6
Isso é muito leigo ;-)

2
É um pouco matemático, mas a melhor maneira de entender algo é derivá-lo.
Vince

29
Você tem uma avó excepcionalmente bem-educada :-).
whuber

7
eu gosto da explicação com a luz que brilha sobre uma estrutura 3-d
Neil McGuigan

(+1) Todas são ótimas respostas, mas essa também eu daria.
Digio

37

Tentando não ser técnico ... Imagine que você tem dados multivariados, uma nuvem multidimensional de pontos. Quando você calcula a matriz de covariância daqueles que realmente (a) centraliza a nuvem, ou seja, coloca a origem como a média multidimensional, os eixos do sistema de coordenadas agora se cruzam no centro da nuvem, (b) criptografam as informações sobre a forma da nuvem e como ele é orientado no espaço por meio de entradas de variância-covariância. Portanto, a maioria das informações importantes sobre a forma dos dados como um todo é armazenada na matriz de covariância.

Em seguida, você faz a decomposição em si própria dessa martriz e obtém a lista de valores próprios e o número correspondente de vetores próprios. Agora, o 1º componente principal é a nova variável latente que pode ser exibida como o eixo que passa pela origem e orientada ao longo da direção da variação máxima (espessura) da nuvem. A variação ao longo deste eixo, ou seja, a variação das coordenadas de todos os pontos nele, éo primeiro valor próprio e a orientação do eixo no espaço referenciado aos eixos originais (as variáveis) são definidos pelo primeiro vetor próprio: suas entradas são os cossenos entre ele e esses eixos originais. As coordenadas acima mencionadas dos pontos de dados no 1º componente são os valores do 1º componente principal ou pontuações do componente; eles são computados como o produto da matriz de dados (centralizada) e o vetor próprio.

"Depois" do 1º pr. O componente foi medido e, por assim dizer, "removido" da nuvem com toda a variação que representava, e a dimensionalidade da nuvem cai um. Em seguida, tudo é repetido com o segundo autovalor e o segundo autovetor - o 2º pr. componente está sendo gravado e, em seguida, "removido". Etc.

Então, mais uma vez: os autovetores são cossenos de direção para os componentes principais, enquanto os autovalores são a magnitude (a variância) dos componentes principais. A soma de todos os valores próprios é igual à soma das variações que estão na diagonal da matriz de variância-covariância. Se você transferir as informações "magnitudinais" armazenadas em valores próprios para vetores próprios para adicioná-las às informações "orientacionais" armazenadas nele, obtém o que é chamado de carregamento de componentes principais ; essas cargas - porque carregam os dois tipos de informação - são as covariâncias entre as variáveis ​​originais e os componentes principais.

Mais tarde, no PS , quero enfatizar aqui duas vezes a diferença terminológica entre autovetores e cargas . Muitas pessoas e alguns pacotes (incluindo alguns R) usam irreverentemente os dois termos de forma intercambiável. É uma prática ruim porque os objetos e seus significados são diferentes. Os autovetores são os cossenos de direção, o ângulo da "rotação" ortogonal à qual o PCA corresponde. As cargas são vetores próprios inoculados com as informações sobre a variabilidade ou magnitude dos dados rotacionados. As cargas são os coeficientes de associação entre os componentes e as variáveis ​​e são diretamente comparáveis ​​aos coeficientes de associação calculados entre as variáveis ​​- covariâncias, correlações ou outros produtos escalares1) Os autovetores são os coeficientes para predizer as variáveis ​​por escores dos componentes brutos. As cargas são os coeficientes para prever variáveis ​​por escores de componentes em escala (normalizados) (não é de admirar: as cargas precipitaram informações sobre a variabilidade; consequentemente, os componentes utilizados devem ser privados dela). Mais um motivo para não misturar autovetores e carregamentos é que outras técnicas de redução de dimensionalidade além do PCA - como algumas formas de análise fatorial - calculam os carregamentos diretamente, ignorando os autovetores. Os autovetores são o produto da decomposição de autógenos ou de valor singular; algumas formas de análise fatorial não usam essas decomposições e chegam a cargas ao contrário. Finalmente, são carregamentos, e não vetores próprios, pelos quais você interpreta os componentes ou fatores (se precisar interpretá-los). O carregamento é sobre uma contribuição do componente para uma variável: na PCA (ou análise fatorial), o componente / fator carrega-se na variável, e não vice-versa. Nos resultados abrangentes do PCA, deve-se reportar tanto autovetores quanto cargas, como mostrado, por exemplo,aqui ou aqui .

Veja também sobre loadings vs eigenvectors.


1


@amoeba, não insisto e você pode usar qualquer terminologia a que esteja acostumado. Expliquei claramente por que acho que os termos "loadings" e "eigenvectors" são melhores para manter separados. Sigo a tradição clássica, como na Harman. Análise fatorial moderna, se ao menos me lembro da tradição corretamente.
precisa saber é o seguinte

(Cont.) De qualquer forma, você sabe que o termo "cargas", embora seja realmente bastante duvidoso, nunca é confundido com "vetor próprio" em outras análises multivariadas, como análise discriminante, por exemplo. Mais uma vez, como eu disse, nas cargas de PCA 1) incorporam informações sobre a magnitude da variação; 2) São as covariâncias / correlações e, portanto, são usadas para interpretação. Valores de vetores próprios - não são.
precisa saber é o seguinte

2
+1 Estive lendo suas postagens no PCA e outros assuntos relacionados e aprendi muito.
Antoni Parellada 12/03

29

OK, uma resposta totalmente não matemática:

Se você possui várias variáveis ​​em vários assuntos e deseja reduzi-lo a um número menor de variáveis ​​nesses mesmos assuntos, enquanto perde o mínimo de informação possível, o PCA é uma ferramenta para fazer isso.

Difere da análise fatorial, embora muitas vezes produzam resultados semelhantes, pois a FA tenta recuperar um pequeno número de variáveis ​​latentes de um número maior de variáveis ​​observadas que se acredita estarem relacionadas às variáveis ​​latentes.


Ei Peter! Bom ver você aqui. Essa é uma resposta realmente boa, simples e sem matemática.
JD Longo

3
+1 por mencionar a FA, que ninguém mais parece discutir, e que as explicações de algumas pessoas parecem se misturar.
gung

Parece não haver diferença nos objetivos do PCA e do FA - ambos têm o objetivo de girar para que você possa ver os fatores mais importantes (vetores latentes ou dimensões próprias ou vetores singulares ou qualquer outra coisa). Mas a FA parece não ser um algoritmo, mas uma família de técnicas relacionadas (entre si e SVD e PCA) com objetivos correspondentemente mal definidos (ou seja, diversos e mutuamente inconsistentes, portanto, variantes diferentes 'otimizam' coisas diferentes).
David MW Powers

Seria correto dizer que o PCA é uma das muitas maneiras possíveis de fazer a análise fatorial?
abalter 17/09/18

A terminologia nesta área é notoriamente inconsistente.
Peter Flom

29

É mais fácil fazer as contas em 2-D.

Toda matriz corresponde a uma transformação linear. As transformações lineares podem ser visualizadas pegando uma figura memorável no plano e vendo como essa figura é distorcida pela transformação linear:

linear transformations (foto: Flanigan e Kazdan )

  • Autovetores vetores são os mesmos vetores. Eles apontam na mesma direção após a transformação como costumavam. mona lisa eigenvectors(azul permaneceu o mesmo, de modo que a direção é um vetor próprio desheumar.)
  • Os autovalores são o quanto os vetores permanecem iguais aumentam ou diminuem. (o azul ficou do mesmo tamanho, então o valor próprio seria×1.)
  • O PCA gira seus eixos para "alinhar" melhor com seus dados. (fonte: weigend.com ) O PCA usa os vetores próprios da matriz de covariância para descobrir como você deve girar os dados. Como a rotação é um tipo de transformação linear , suas novas dimensões serão somas das antigas, comoPCA football
    1=23%[1]+46.%[2]+39.%[3].

A razão pela qual as pessoas que trabalham com dados reais estão interessadas em autovetores e transformações lineares é que, em diferentes contextos, "linear" (f(umax+by)=umaf(x)+bf(y)) pode cobrir coisas realmente interessantes. Por exemplo, pense no que essa propriedade significa se+ e recebem novos significados, ou se uma e b vêm de algum campo interessante, ou x e yde algum espaço interessante. Por exemplo :

faces

O próprio PCA é outro exemplo, o mais familiar para os estatísticos. Algumas das outras respostas, como a de Freya, oferecem aplicações reais do PCA.

Acho totalmente surpreendente que algo tão simples como "rotação" possa fazer muitas coisas em diferentes áreas, como alinhar produtos para um sistema de recomendação -----semelhante como?explicando o conflito geopolítico. Mas talvez não seja tão surpreendente se você pensar em física, onde escolher uma base melhor (por exemplo,x eixo a direção do movimento, em vez de 42,8%[x]57,2%[y] mudará equações inescrutáveis ​​em simples).


2
Na verdade, é meio coincidente que as rotações sejam lineares e, portanto, uma maneira conveniente de descrever o que está acontecendo com dados não geométricos. A coincidência refere-se à natureza quadrática do espaço cartesiano / euclidiano e do teorema do limite central / gaussiano. Viz. os sigmas se somam quadraticamente como dimensões ortogonais, e é aí que nossa terminologia rotacional / ortogonal ND se origina por analogia com o espaço 2D e 3D.
Powers David MW

@DavidMWPowers Interesting. Estou pensando em rotações do ponto de vista da álgebra linear.
Isomorphismes

27

Após o excelente post de JD Long neste encadeamento, procurei um exemplo simples e o código R necessário para produzir o PCA e, em seguida, voltar aos dados originais. Isso me deu uma intuição geométrica em primeira mão e quero compartilhar o que recebi. O conjunto de dados e o código podem ser diretamente copiados e colados no formulário R do Github .

Usei um conjunto de dados que encontrei on-line em semicondutores aqui e o reduzi para apenas duas dimensões - "número atômico" e "ponto de fusão" - para facilitar a plotagem.


Como uma ressalva, a idéia é meramente ilustrativa do processo computacional: o PCA é usado para reduzir mais de duas variáveis ​​para alguns componentes principais derivados ou para identificar colinearidade também no caso de vários recursos. Portanto, não encontraria muita aplicação no caso de duas variáveis, nem haveria a necessidade de calcular autovetores de matrizes de correlação, conforme apontado por @amoeba.


Além disso, truncei as observações de 44 a 15 para facilitar a tarefa de rastrear pontos individuais. O resultado final foi um esqueleto de dados ( dat1):

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

A coluna "compostos" indica a constituição química do semicondutor e desempenha o papel de nome da linha.

Isso pode ser reproduzido da seguinte forma (pronto para copiar e colar no console R):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

Os dados foram então escalados:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

Os passos da álgebra linear seguiram:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10,296melt_p0,2961]

The correlation function cor(dat1) gives the same output on the non-scaled data as the function cov(X) on the scaled data.

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

Since the first eigenvector initially returns as [0.7,0.7] we choose to change it to [0.7,0.7] to make it consistent with built-in formulas through:

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

The resultant eigenvalues were 1.2964217 and 0.7035783. Under less minimalistic conditions, this result would have helped decide which eigenvectors to include (largest eigenvalues). For instance, the relative contribution of the first eigenvalue is 64.8%: eigen(C)$values[1]/sum(eigen(C)$values) * 100, meaning that it accounts for 65% of the variability in the data. The variability in the direction of the second eigenvector is 35.2%. This is typically shown on a scree plot depicting the value of the eigenvalues:

enter image description here

We'll include both eigenvectors given the small size of this toy data set example, understanding that excluding one of the eigenvectors would result in dimensionality reduction - the idea behind PCA.

The score matrix was determined as the matrix multiplication of the scaled data (X) by the matrix of eigenvectors (or "rotations"):

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

The concept entails a linear combination of each entry (row / subject / observation / superconductor in this case) of the centered (and in this case scaled) data weighted by the rows of each eigenvector, so that in each of the final columns of the score matrix, we'll find a contribution from each variable (column) of the data (the entire X), BUT only the corresponding eigenvector will have taken part in the computation (i.e. the first eigenvector [0.7,0.7]T will contribute to PC1 (Principal Component 1) and [0.7,0.7]T to PC2, as in:

enter image description here

Therefore each eigenvector will influence each variable differently, and this will be reflected in the "loadings" of the PCA. In our case, the negative sign in the second component of the second eigenvector [0.7,0.7] will change the sign of the melting point values in the linear combinations that produce PC2, whereas the effect of the first eigenvector will be consistently positive:

enter image description here

The eigenvectors are scaled to 1:

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

whereas the (loadings) are the eigenvectors scaled by the eigenvalues (despite the confusing terminology in the in-built R functions displayed below). Consequently, the loadings can be calculated as:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

It is interesting to note that the rotated data cloud (the score plot) will have variance along each component (PC) equal to the eigenvalues:

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

Utilizing the built-in functions the results can be replicated:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

Alternatively, the singular value decomposition (UΣVT) method can be applied to manually calculate PCA; in fact, this is the method used in prcomp(). The steps can be spelled out as:

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

The result is shown below, with first, the distances from the individual points to the first eigenvector, and on a second plot, the orthogonal distances to the second eigenvector:

enter image description here

If instead we plotted the values of the score matrix (PC1 and PC2) - no longer "melting.point" and "atomic.no", but really a change of basis of the point coordinates with the eigenvectors as basis, these distances would be preserved, but would naturally become perpendicular to the xy axis:

enter image description here

The trick was now to recover the original data. The points had been transformed through a simple matrix multiplication by the eigenvectors. Now the data was rotated back by multiplying by the inverse of the matrix of eigenvectors with a resultant marked change in the location of the data points. For instance, notice the change in pink dot "GaN" in the left upper quadrant (black circle in the left plot, below), returning to its initial position in the left lower quadrant (black circle in the right plot, below).

Now we finally had the original data restored in this "de-rotated" matrix:

enter image description here

Beyond the change of coordinates of rotation of the data in PCA, the results must be interpreted, and this process tends to involve a biplot, on which the data points are plotted with respect to the new eigenvector coordinates, and the original variables are now superimposed as vectors. It is interesting to note the equivalence in the position of the points between the plots in the second row of rotation graphs above ("Scores with xy Axis = Eigenvectors") (to the left in the plots that follow), and the biplot (to the right):

enter image description here

The superimposition of the original variables as red arrows offers a path to the interpretation of PC1 as a vector in the direction (or with a positive correlation) with both atomic no and melting point; and of PC2 as a component along increasing values of atomic no but negatively correlated with melting point, consistent with the values of the eigenvectors:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

This interactive tutorial by Victor Powell gives immediate feedback as to the changes in the eigenvectors as the data cloud is modified.


1
+1 for the effort and in particular for the animation! But one should keep in mind that PCA on the correlation matrix of two variables is a bit of a special case because all correlation matrices of two variables have identical eigenvectors: one of them will always be [0.7 0.7] (0.7 being a 1/sqrt(2)). This is not the case for covariance matrices, or for correlation matrices in higher dimensions.
amoeba

14

From someone who has used PCA a lot (and tried to explain it to a few people as well) here's an example from my own field of neuroscience.

When we're recording from a person's scalp we do it with 64 electrodes. So, in effect we have 64 numbers in a list that represent the voltage given off by the scalp. Now since we record with microsecond precision, if we have a 1-hour experiment (often they are 4 hours) then that gives us 1e6 * 60^2 == 3,600,000,000 time points at which a voltage was recorded at each electrode so that now we have a 3,600,000,000 x 64 matrix. Since a major assumption of PCA is that your variables are correlated, it is a great technique to reduce this ridiculous amount of data to an amount that is tractable. As has been said numerous times already, the eigenvalues represent the amount of variance explained by the variables (columns). In this case an eigenvalue represents the variance in the voltage at a particular point in time contributed by a particular electrode. So now we can say, "Oh, well electrode x at time point y is what we should focus on for further analysis because that is where the most change is happening". Hope this helps. Loving those regression plots!


12

I might be a bad person to answer this because I'm the proverbial grandmother who has had the concept explained to me and not much more, but here goes:

Suppose you have a population. A large portion of the population is dropping dead of heart attacks. You are trying to figure out what causes the heart attacks.

You have two pieces of data: height and weight.

Now, it's clear that there's SOME relationship between weight and heart attacks, but the correlation isn't really strong. There are some heavy people who have a lot of heart attacks, but some don't.

Now, you do a PCA, and it tells you that weight divided by height ('body mass') is a much more likely predictor of heart attacks then either weight or height, because, lo and behold, the "reality" is that it's body mass that causes the heart attacks.

Essentially, you do PCA because you are measuring a bunch of things and you don't really know if those are really the principal components or if there's some deeper underlying component that you didn't measure.

[Please feel free to edit this if it's completely off base. I really don't understand the concept any more deeply than this].


1
Welcome to the stats site @Joel! If you get a chance, you might also contribute to the discussion on our proposed distributed StackExchange data analysis project: stats.stackexchange.com/questions/2512/….
Shane

9
Excellent example, but technically PCA can't find the body mass explanation as it can only find linear explanations, that is weighted sums of the original variables. However, if you take logs of your input variables, the ratio becomes a difference, and if it is the right explanation, PCA will be able to find it.
David M W Powers

10

Here's one for Grandma:

In our town there are streets going north and south, some going east and west, and even some going northwest and southeast, some NE to SW. One day a guy measures all the traffic on all the streets, he finds that the most traffic is going diagonally, from northwest to southeast, the second biggest is perpendicular to this going northeast to southwest and all the rest is fairly small. So he draws a big square and puts a big line left to right and says that is the NW to SE, then draws another line vertically up and down through the middle. He says that's the second most crowded direction for traffic (NE to SW). The rest is small so it can be ignored.

The left right line is the first eigenvector and the up down line is the second eigenvector. The total number of cars going left and right are the first eigenvalue and those going up and down are the second eigenvalue.


1
This analogy appears to break down under examination. What if the largest and second largest traffic direction are not orthogonal? How does your analogy help us understand a PCA in such a case?
whuber

I guess grandma understand what orthogonal means? Yes, some flaws there but it's a start. I think it's great that there have been so many answers here.
BajaBob

2
Whether or not "grandma" understands a post, it needs to be reasonably clear and correct. Your analogy does not appear to accomplish either of those aims. That may be because I do not understand the analogy: I cannot connect it to what PCA is or does. Perhaps you could clarify how the analogy works so that other readers do not become as mystified as I am.
whuber

The fact that they are not orthogonal means you need ICA or FA not PCA. If grandma was watching Star Trek (yes she's that generation) when they show the disabled ship at an angle - PCA would tend to recover the reference plane relevant to the scale and view (the galactic plane or the ship's axes).
David M W Powers

-1. I agree with @whuber that this analogy does not work. What is supposed to be the data here, what covariance matrix are these "eigenvectors" of? I don't understand it at all.
amoeba

10

This answer gives an intuitive and not-mathematical interpretation:

The PCA will give you a set of orthogonal vectors within a high-dimensional point cloud. The order of the vectors is determined by the information conveyed aftter projecting all points onto the vectors.

In different words: The first principal component vector will tell you the most about the point cloud after projecting all points onto the vector. This is an intuitve interpretation of course.

Look at this ellipsoid (follow link for a 3D model):

enter image description here

If you would have to choose one vector forming a one-dimensional sub-space onto which the points of the ellipsoids points will be projected. Which one would you choose because it conveys the most information about the original set in 3 dimensions?

I guess the red one along the longest axis. And this is actually the calculated 1st principal component! Which one next - I would choose the blue one along the next longest axis.

Typically you want to project a set of points from a high-dimensional space onto a two dimensional plane or into a three dimensional space.

enter image description here


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

Although there are many examples given to provide an intuitive understanding of PCA, that fact can almost make it more difficult to grasp at the outset, at least it was for me.

"What was the one thing about PCA that all these different examples from different disciplines have in common??"

What helped me intuitively understand were a couple of math parallels, since it's apparent the maths is the easy part for you, although this doesn't help explain it to your grandmother...

Think of a regularization problem, trying to get

||XBY||=0

Or in English, break down your data Y into two other matrices which will somehow shed light on the data? If those two matrices work well, then the error between them and Y shouldn't be too much.

PCA gives you a useful factorizaton of Y, for all the reasons other people have said. It breaks the matrix of data you have, Y, down into two other useful matrices. In this case, X would be a matrix where the columns are first k PCs you kept, and B is a matrix giving you a recipe to reconstruct the columns of matrix Y using the columns of X. B is the first k rows of S, and all of V transpose. The eigenvalues on the diagonal of S basically weights which PCs are most important. That is how the math explicitly tells you which PCs are the most important: they are each weighted by their eigenvalues. Then, the matrix VT tells the PCs how to combine.

I think people gave many intuitive examples, so I just wanted to share that. Seeing that helped me understand how it works. There are a world of interesting algorithms and methods which do similar things as PCA. Sparse coding is a subfield of machine learning which is all about factoring matrix A into two other useful and interesting ones that reflect patterns in A.


9

Here is a math answer: the first principal component is the longest dimension of the data. Look at it and ask: where is the data widest? That's the first component. The next component is the perpendicular. So a cigar of data has a length and a width. It makes sense for anything that is sort of oblong.


6
Unfortunately, the correctness of this answer depends on how the vague expression "longest" is interpreted. Many natural and relevant interpretations, such as the diameter, would be wrong.
whuber

PCA actually works pretty well with different types of natural way to measure the dimension/size. You just need to replace the covariance matrix with a matrix to measure "dimension" in any direction (the matrix just needs to be positive defined, or symmetrical.) This is just like QuickSort works for different ordering operator, but you will get different results for different ordering operators.
James LI

9

The way I understand principal components is this: Data with multiple variables (height, weight, age, temperature, wavelength, percent survival, etc) can be presented in three dimensions to plot relatedness.

Now if you wanted to somehow make sense of "3D data", you might want to know which 2D planes (cross-sections) of this 3D data contain the most information for a given suite of variables. These 2D planes are the principal components, which contain a proportion of each variable.

Think of principal components as variables themselves, with composite characteristics from the original variables (this new variable could be described as being part weight, part height, part age, etc). When you plot one principal component (X) against another (Y), what you're doing is building a 2D map that can geometrically describe correlations between original variables. Now the useful part: since each subject (observation) being compared is associated with values for each variable, the subjects (observations) are also found somewhere on this X Y map. Their location is based on the relative contributions of each underlying variable (i.e. one observation may be heavily affected by age and temperature, while another one may be more affected by height and weight). This map graphically shows us the similarities and differences between subjects and explains these similarities/differences in terms of which variables are characterizing them the most.


8

I'll give a non-mathy response and a more detailed birds-eye view of the motivation-through-math in the second part.


Non-Mathy:

The non-math explanation is that PCA helps for high dimensional data by letting you see in which directions your data has the most variance. These directions are the principal components. Once you have this information you can then, in some cases, decide to use the principal components as the meaningful variables themselves, and vastly reduce the dimensionality of your data by only keeping the principal components with the most variance (explanatory power).

For example, suppose you give out a political polling questionnaire with 30 questions, each can be given a response of 1 (strongly disagree) through 5 (strongly agree). You get tons of responses and now you have 30-dimensional data and you can't make heads or tails out of it. Then in desperation you think to run PCA and discover the 90% of your variance comes from one direction, and that direction does not correspond to any of your axis. After further inspection of the data you then conclude that this new hybrid axis corresponds to the political left-right spectrum i.e. democrat/republican spectrum, and go on to look at the more subtle aspects in the data.


Mathy:

It sometimes helps to zoom out and look at the mathematical motivation to shed some light on the meaning.

There is a special family of matrices which can be transformed into diagonal matrices simply by changing your coordinate axis. Naturally, they are called the diagonalizeable matrices and elegantly enough, the new coordinate axis that are needed to do this are indeed the eigenvectors.

As it turns out the covariance matrix are symmetric and will always be diagonalizeable! In this case the eigenvectors are called the principal components and when you write out the covariance matrix in eigenvector coordinates, the diagonal entries (the only ones left) correspond to the variance in the direction of your eigenvectors. This allows us to know which directions have the most variance. Moreover since the covariance matrix is diagonal in these coordinates, you have cleverly eliminated all correlation between your variables.

As is common in practical applications, we assume that our variables are normally distributed and so its quite natural to try and change our coordinates to see the simplest picture. By knowing your principal components and their respective eigenvalues (variance) you'll be able to reduce the dimensionality of your data if needed and also have a quick general summary of where the variation in your data lies.

But at the end of the day, the root of all this desirability comes from the fact that diagonal matrices are way easier to deal with in comparison to their messier, more general cousins.


2
Thank you for your contribution. It seems to address an unnecessarily narrow interpretation of PCA, however. (1) PCA has been fruitfully applied to highly non-Gaussian datasets. (2) PCA is not a formal parametric procedure; it perhaps is better to think of it as exploratory in spirit. (3) All covariance matrices, of any kind of multivariate distribution or data, are diagonalizable. Neither Gaussianity (Normality) nor non-degeneracy are requirements. (Symmetry of the matrix and having real components guarantee diagonalizability.)
whuber

I must admit, I'm embarrassed to have forgotten, but good point about covariance matrices being diagonalizable in general. I'm going to edit to reflect that. Also, could you elaborate on point (2)? I'm not familiar with the difference between parametric or non-parametric procedures.
Christian Bueno

7

I view PCA as a geometric tool. If you are given a bunch of points in 3-space which are pretty much all on a straight line, and you want to figure out the equation of that line, you get it via PCA (take the first component). If you have a bunch of points in 3-space which are mostly planar, and want to discover the equation of that plane, do it via PCA (take the least significant component vector and that should be normal to the plane).


7

Why so eigenvalues/eigenvectors ?

When doing PCA, you want to compute some orthogonal basis by maximizing the projected variance on each basis vector.

Having computed previous basis vectors, you want the next one to be:

  • orthogonal to the previous
  • norm 1
  • maximizing projected variance, i.e with maximal covariance norm

This is a constrained optimization problem, and the Lagrange multipliers (here's for the geometric intuition, see wikipedia page) tell you that the gradients of the objective (projected variance) and the constraint (unit norm) should be "parallel" at the optimium.

This is the same as saying that the next basis vector should be an eigenvector of the covariance matrix. The best choice at each step is to pick the one with the largest eigenvalue among the remaining ones.


5
Definitely not an explanation to a layman - orthogonal basis vectors? maximising projection variance? constrained optimisation problem? Lagrange multiplier? These are highly "jargonised" terms. Show a layman who understands what these mean and i'll show you a mathematician/statistician
probabilityislogic

6

Basically PCA finds new variables which are linear combinations of the original variables such that in the new space, the data has fewer dimensions. Think of a data set consisting of the points in 3 dimensions on the surface of a flat plate held up at an angle. In the original x, y, z axes you need 3 dimensions to represent the data, but with the right linear transformation, you only need 2.

Basically what @Joel said, but only linear combinations of the input variables.


6

Some time back I tried to understand this PCA algorithm and I wanted to make a note about eigen vectors and eigen values. That document stated that the purpose of EVs is to convert a model of the large sized model to a very small sized model.

For example, instead of constructing first the full sized bridge and then carrying out experiments and tests on it, it is possible to use EVs to create a very small sized bridge where all the factors/quantities will be reduced by the same margin and moreover the actual result of tests and stress related tests carried out on it can be calculated and enlarged appropriately as needed for the original model. In a way EVs help to create abstracts of the original.

To me, this explaination had profound meaning to what I was trying to do! Hope it helps you too!


-1. Perhaps I did not fully appreciate the analogy, but it looks pretty misleading to me. PCA does indeed (in a way) allow to "convert" a "large" model to a "small" model, but it does so by reducing dimensionality of the dataset. But how is the small bridge of lower dimensionality than the large one?! They are both 3D, aren't they.
amoeba

@amoeba : this extract is out of a paper I read, these are not exactly my words. I havn't studied this topic since a long time now and I have lost trace.
Rorschach

6

Imagine grandma has just taken her first photos and movies on the digital camera you gave her for Christmas, unfortunately she drops her right hand as she pushes down on the button for photos, and she shakes quite a bit during the movies too. She notices that the people, trees, fences, buildings, doorways, furniture, etc. aren't straight up and down, aren't vertical, and that the floor, the ground, the sea, the horizon isn't well horizontal, and well the movies are rather shaky as well. She asks if you can you help her fix them, all 3000 holiday photos and about 100 videos at home and beach (she's Australian), opening presents, walking in the country. She's got this photo software that allows you to do that she says. You tell her that that would take days, and won't work on the videos anyway, but you know techniques called PCA and ICA that might help. You explain that your research actually involves just this kind of rotation of data into the natural dimensions, that these techniques find the most important directions in the data, the photo in this case, and rotate so the most important one is horizontal, the second one is vertical (and it can even go on for more dimensions we can't imagine very well, although time is also a dimension in the movies).

--

Technical Aside. In fact, you could probably earn your PhD doing this for her, and there is an important paper by Bell and Sejnowski (1997) about independent components of images corresponding to edges. To relate this to PCA: ICA uses PCA or SVD as a first step to reduce the dimensionality and initial approximations, but then improves them that takes into account not only second order error (SSE) like PCA, but high order errors - if it's true ICA, all higher orders, although many algorithms confine themselves to 3rd or 4th. The low order PCA components do tend to be influenced strongly by the horizontals and verticals. Dealing with camera motion for the movies can also make use of PCA/ICA. Both for the 2D photos and the 2½D movies you need a couple of representational tricks to achieve this.

Another application you could explain to grandma is eigenfaces - higher order eigenvectors can approximate the '7 basic emotions' (the average face for each of them and the 'scaled rotation' or linear combination to do that averaging), but often we find components that are sex and race related, and some might distinguish individuals or individual features (glasses, beard, etc.). This is what happens if you have few photos of any one individual and many emotions/expressions, but you get a different bias if you have many faces with neutral expressions. Using ICA instead of PCA doesn't really seem to help much for basic emotions, but Bartlett and Sejnowsiki (1997) showed it found useful features for face recognition.


1
I appreciate the effort to communicate with examples and by analogy. The use of images, though, is unfortunate because of the high likelihood grandma will not understand that your sense of "rotate" has little to do with actually rotating the axes of an image, nor is she likely to understand that you are using "dimension" in an abstract sense in which the photos have millions of dimensions and not just two.
whuber

Yes, you need to represent it as a point cloud, as with the images in other answers. Preprocessing with some form of edge detection and/or thresholding would be likely part of the "tricks" I mentioned. But to operate on a complex photo requires a PhD's worth of tricks.
David M W Powers

@whuber I have actually used PCA (well SVD) to find these rotations in doing stereo image calibration! It definitely is the same sense of rotate.
David M W Powers

2

I think that everyone starts explaining PCA from the wrong end: from eigenvectors. My answer starts at the right place: coordinate system. Eigenvectors, and eigenproblem in general, are the mathematical tool that is used to address the real issue at hand which is a wrong coordinate system. I'll explain.

Let's start with a line. What is a line? It's a one dimensional object. So, you need only one dimension to move from one point to another. On a plane though you attach two coordinate any point of a line. That is because with respect to a line itself the coordinate system is chosen arbitrarily. The coordinate system, I would argue, does not reflect the inner one dimensional nature of the line. If only I would always put the origin of my Cartesian coordinate system on the line, and turned it so that its x-axis was on the line, then I would not need y-axis anymore! All my points are on one axis, because a line is a one dimensional object.

That's where PCA explanations should start. The eigen problem is a tool that does the rotation which I described, and de-meaning of variables puts the origin onto the line. PCA helps reveal true dimensions of the data so long the relationships between the variables are linear.


1

Remember that an eigenvector is a vector whose transform is parallel to the same input vector. Thus an eigenvector with a high eigenvalue means that the eigenvector has a high degree of 'parallelity' to the data, meaning that you can represent the data with this vector only and expect a low error in the new representation. If you pick additional eigenvectors with lower eigenvalues, you will be able to represent more details of the data because you'll be representing other 'parallelities' - which are not as prominent as the first one because of lower eigenvalues.


0

PCA basically is a projection of a higher-dimensional space into a lower dimensional space while preserving as much information as possible.

I wrote a blog post where I explain PCA via the projection of a 3D-teapot...

enter image description here

...onto a 2D-plane while preserving as much information as possible:

enter image description here

Details and full R-code can be found in the post:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
The images notwithstanding, at present this is more of a comment than an answer. Could you expand it, perhaps by giving a summary of the information at the link? Posts in the SE network are supposed to be able to stand on their own.
gung

@gung: fair enough - the gist is that PCA basically is a projection of a higher-dimensional space (in this case a 3D-teapot) onto a lower dimensional space (in this case a 2D-plane) while preserving as much information as possible. Will change it in the answer.
vonjd

That's certainly true (& explained in many other existing answers on this thread), but there should generally be more to answers posted in the SE system, & they should be able to stand on their own if, eg, the link goes dead.
gung

1
The teapot example is interesting. You say that PCA is a projection to lower dimensional space while preserving as much 'information'. But.... what is information? In the case of PCA this means keeping the total variance as high as possible. The tea-pot example is more like stating that the information is "most preserved" by using a projection in a particular plane, but this explains little how PCA does this and whether it is also the 'best' choice of 'information'. For instance, LDA is also a projection that intends to preserve information, but not the same as PCA.
Martijn Weterings

If your teapot would have been more round/circular (less tall) than PCA would have 'chosen' a different intersection to preserve most of the "information".
Martijn Weterings

-4

Perhaps late in these analyses is the implicit assumption that data from group I is different from group II and one is trying to find which component is likely to be the major contributing factor to the difference.

Performing a PCA analysis that results in identical ellipsoids for 2 different sets then tells you that the two sets are not different by any of the parameters you have measured.


2
I wonder if you are thinking of MANOVA. If you ran two sepa4ate PCAs, you would only show that the correlation al structure was similar.
gung

2
-1. This is a completely misleading answer, for the reason outlined by @gung. Also, it does not even attempt to explain what PCA is.
amoeba
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.