Loading AI tools
Da Wikipédia, a enciclopédia livre
A Análise de Componentes Principais (ACP) ou Principal Component Analysis (PCA) é um procedimento matemático que utiliza uma transformação ortogonal (ortogonalização de vetores) para converter um conjunto de observações de variáveis possivelmente correlacionadas num conjunto de valores de variáveis linearmente não correlacionadas chamadas de componentes principais. O número de componentes principais é sempre menor ou igual ao número de variáveis originais. Os componentes principais são garantidamente independentes apenas se os dados forem normalmente distribuídos (conjuntamente). O PCA é sensível à escala relativa das variáveis originais. Dependendo da área de aplicação, o PCA é também conhecido como transformada de Karhunen-Loève (KLT) discreta, transformada de Hotelling ou decomposição ortogonal própria (POD).
A tradução deste artigo está abaixo da qualidade média aceitável. (Setembro de 2021) |
O PCA foi inventado em 1901 por Karl Pearson.[1] Agora, é mais comumente usado como uma ferramenta de Análise Exploratória de Dados e para fazer modelos preditivos. PCA pode ser feito por decomposição em autovalores (Valores Próprios) de uma matriz covariância, geralmente depois de centralizar (e normalizar ou usar pontuações-Z) a matriz de dados para cada atributo.[2] Os resultados de PCA são geralmente discutidos em termos pontuações (scores) de componentes, também chamados de pontuações de fatores (os valores de variável transformados correspondem a um ponto de dado particular), e carregamentos (loadings), i.e., o peso pelo qual cada variável normalizada original deve ser multiplicada para se obter a pontuação de componente.[3]
O PCA é a mais simples das verdadeiras análises multivariadas por autovetores (Vetores Próprios). Com frequência, sua operação pode ser tomada como sendo reveladora da estrutura interna dos dados, de uma forma que melhor explica a variância nos dados. Se visualizarmos um conjunto de dados multivariados em um espaço de alta dimensão, com 1 eixo por variável, o PCA pode ser usado para fornecer uma visualização em dimensões mais baixas dos mesmos dados, uma verdadeira "sombra" do objeto original quando visto de seu ponto mais informativo. Isto é feito usando-se apenas os primeiros componentes principais, de forma que a dimensionalidade dos dados transformados é reduzida.
O PCA é fortemente ligado à análise fatorial (Factorial Analysis); de fato, alguns pacotes estatísticos propositadamente confluem as técnicas. A verdadeira análise de fatores faz suposições diferentes sobre a estrutura subjacente dos dados e encontra os autovetores de uma matriz levemente diferente.
O PCA é matematicamente definido[4] como uma transformação linear ortogonal que transforma os dados para um novo sistema de coordenadas de forma que a maior variância por qualquer projeção dos dados fica ao longo da primeira coordenada (o chamado primeiro componente), a segunda maior variância fica ao longo da segunda coordenada, e assim por diante.
Seja a matriz de dados, XT, com média empírica nula (i.e., a média empírica (amostral) da distribuição foi subtraída dos dados), onde cada uma das n linhas representa uma repetição diferente do experimento, e cada uma das m colunas dá um tipo particular de dado (e.g., os resultados de uma determinada sonda). (Note-se que XT é definida aqui e não X propriamente dito, e o que estamos chamando de XT é por vezes denotado por X.) A decomposição em valores singulares de X é X = WΣVT, onde a matriz m × m W é a matriz de autovetores da matriz de covariância XXT, a matriz Σ é m × n e é uma matriz diagonal retangular com números reais não negativos na diagonal, e a matriz n × n V é a matriz de autovetores de XTX. Assim, a transformação PCA que preserva a dimensionalidade (i.e., que dá o mesmo número de componentes principais do que o número de variáveis originais) é dada por:
V não é definida unicamente no caso usual de m < n − 1, mas Y vai, com frequência, ser definida unicamente. Como W (por definição da SVD de uma matriz real) é uma matriz ortogonal, e cada linha de YT é simplesmente uma rotação da linha correspondente de XT. A primeira coluna de YT é feita das "pontuações" dos casos relativamente ao componente "principal", a próxima coluna tem a pontuação relativamente ao segundo componente "principal", e assim por diante.
Se desejarmos uma representação de dimensionalidade reduzida, pode-se projetar X ao espaço reduzido definido apenas pelos primeiros L vetores singulares, WL:
A matriz W de vetores singulares de X 'e equivalentemente a matriz W de autovetores da matriz de covariâncias C = X XT,
Dado um conjunto de pontos no espaço euclidiano, o primeiro componente principal corresponde a uma linha que passa através da média multidimensional e minimiza a soma dos quadrados das distâncias dos pontos à linha. O segundo componente principal corresponde ao mesmo conceito, depois de subtrair-se toda a correlação com o primeiro componente principal dos pontos. Os valores singulares (em Σ) são as raízes quadradas dos autovalores da matriz XXT. Cada autovalor é proporcional à porção de "variância" (mais precisamente da soma dos quadrados das distâncias dos pontos à média multidimensional dos mesmos) que é correlacionada com cada autovetor. A soma de todos os autovalores é igual à soma dos quadrados dos pontos à média multidimensional dos mesmos. O PCA essencialmente rotaciona o conjunto de pontos em torno da média de forma a alinhá-los com os componentes principais. Isto move o máximo possível de variância (usando uma transformação ortogonal) a algumas das primeiras dimensões. Os valores nas dimensões restantes, portanto, tendem a serem pequenos e podem ser descartados com o mínimo de perda de informação. O PCA é comumente utilizado dessa maneira para redução de dimensionalidade. O PCA tem a distinção de ser a melhor transformação ortogonal para manter o subespaço que tem a maior "variância" (como definida ha pouco). No entanto, essa vantagem tem o preço de exigir mais recursos computacionais se comparado com, por exemplo, a transformada discreta de cosseno (quando esta também for aplicável). Técnicas de redução de dimensionalidade não linear tendem a ser ainda mais dispendiosas (computacionalmente) do que o PCA.
O PCA é sensível à escala das variáveis. Se tivermos apenas duas variáveis de variâncias amostrais iguais e positivamente correlacionadas, então o PCA irá consistir de uma rotação de 45°, e os "carregamentos" (ou loadings) para as duas variáveis relativos ao componente principal serão iguais. Mas se multiplicarmos todos os valores da primeira variável por 100, então o componente principal será quase igual a essa variável, com uma pequena contribuição da outra variável, ao passo que o segundo componente será quase que alinhado com a segunda variável original. Isso significa que, sempre que as diferentes variáveis têm unidades diferentes (como massa e temperatura), o PCA é de certa forma um método arbitrário de análise de dados. Por exemplo, resultados diferentes seriam obtidos se Farenheit fosse usado em vez de Celsius. Note-se que o artigo original de Pearson foi intitulado "On Lines and Planes of Closest Fit to Systems of Points in Space" – "in space" (no espaço) implica o espaço físico euclidiano, no qual tais ressalvas não ocorrem. Uma maneira de tornar o PCA menos arbitrário é usar as variáveis renormalizadas para variância unitária.
Faz-se necessária a subtração do vetor médio das componentes principais, ou seja, "centralização na média", quando se pretende usar o PCA para garantir que os primeiros componentes principais descrevam a direção de máxima variância. Se a subtração da média não for feita, os primeiros componentes principais podem corresponder mais ou menos à média dos dados. Uma média de zero é necessária para encontrar a base que minimiza o erro médio quadrático da aproximação dos dados.[5]
Assumindo-se uma média empírica nula, ou seja, a média empírica da distribuição foi subtraída do conjunto de dados, o componente principal w1 de um conjunto de dados X pode ser definido como:
(Ver arg max para a notação.) Com os primeiros k − 1 componentes, o k-ésimo componente pode ser encontrado subtraíndo-se os primeiros componentes principais de X:
e substituindo-se isso como o novo conjunto de dados cujo componente principal é obtido em
O PCA é equivalente a funções ortogonais empíricas (EOF), um nome que é usado em meteorologia.
Uma rede neural autoencoder com uma camada linear escondida é similar ao PCA. À convergência, os vetores de peso dos K neurônios na camada escondida formarão uma base para o espaço formado pelos primeiros K componentes principais. Diferente do PCA, essa técnica não necessariamente produz vetores ortogonais.
O PCA é uma técnica fundamental em reconhecimento de padrões. No entanto, não é otimizado para separabilidade de classes.[6] Uma alternativa é a LDA, que leva esse aspecto em consideração.
Como visto acima, os resultados do PCA dependem da escala das variáveis.
A aplicabilidade do PCA é limitada por certas premissas[7] feitas em sua derivação.
O cálculo do PCA usando o método da covariância é descrito nesta seção.[8] Note-se, porém, que é melhor usar a decomposição em valores singulares (com software padrão de álgebra linear).
O objetivo é transformar um dado conjunto de dados X de dimensão M num conjunto alternativo Y de dimensão menor L. Equivalentemente, deseja-se a matriz Y, onde Y é a Karhunen–Loève transform (KLT) da matriz X:
Suponha-se um conjunto de dados sobre um conjunto de observações de M variáveis, onde o objetivo é reduzir os dados de forma que cada observação possa ser descrita com apenas L variáveis, L < M. Suponha-se, ainda, que os dados podem ser dispostos como um conjunto de N vetores de dados com cada representando uma única observação agrupada das M variáveis.
A subtração de média é uma parte fundamental no cálculo de uma base de componentes principais que minimize o erro médio da aproximação dos dados.[9] Logo, centralizam-se os dados da seguinte forma:
Para casos onde B são matrizes simples o correto seria fazer B*.B e não o que esta listado acima, veja que se B é uma matriz de 300 linhas e 20 colunas ao fazermos sua transposta temos 20 linhas e 300 colunas e o produto B.B* se torna uma matriz 300 linhas por 300 colunas, logo não houve redução de dados e sim ampliação dos mesmos. Fazendo o inverso obtemos 20 linhas por 20 colunas como o esperado.
princomp
e prcomp
podem ser usadas para PCA; prcomp
usa a decomposição em valores singulares, que geralmente fornece uma melhor precisão numérica. Existe uma explosão recente em implementações de PCA em diversos pacotes do R, geralmente em pacotes de propósito específico. Veja: .princomp
calcula a componente principal.g03aa
(disponível tanto em Fortran[11] quanto na linguagem C[12]).Em implementações práticas, especialmente para dados de alta dimensão (m grande), o método de covariância não é muito usado por não ser eficiente. Uma maneira de calcular o primeiro componente principal eficientemente[13] é dado no pseudo-código a seguir, para uma matriz de dados XT com média zero, sem precisar calcular sua matriz de covariância. Note-se que, aqui, uma matriz de dados com média nula significa que as colunas de XT devem ter, cada uma, média zero.
um vetor aleatório faça c vezes: (um vetor de tamanho m) para cada linha retorne
Esse algoritmo é simplesmente uma maneira eficiente de calcular XXTp, normalizando, e colocando-se o resultado de volta em p (en:Power iteration). Ele evita as nm² operações de cálculo da matriz de covariância. p ficará tipicamente próximo à primeira componente principal de XT dentro de poucas iterações, c. (A magnitude de t será maior depois de cada iteração. A convergência será detectada quando aumenta muito pouco relativo à precisão da máquina.)
Componentes principais subsequentes podem ser calculados subtraindo-se o componente p de XT (ver Gram–Schmidt) e então repetindo-se tal algoritmo para encontrar a próxima componente principal. No entanto, esta estratégia simplista não é estável numericamente se mais de um pequeno número de componentes principais são exigidos, porque imprecisões nos cálculos afetarão aditivamente as estimativas de componentes principais subsequentes. Métodos mais avançados elaboram na ideia básica, como no caso do similar en:Lanczos algorithm.
Uma forma de se calcular o autovalor que corresponde a cada componente principal é medir a diferença na soma de distâncias ao quadrado entre as linhas e a média, antes e depois de subtrair-se o componente principal. O autovalor que corresponde ao componente que foi removido é igual a essa diferença.
Para dados de alta dimensionalidade, tais como os gerados nas ciências *omicas (e.g., genomica, en:metabolomics) e visão computacional, é geralmente necessário apenas calcular os primeiros componentes principais. O algoritmo en:non-linear iterative partial least squares (NIPALS) calcula t1 e p1' de X. O produto exterior, t1p1' pode então ser subtraído de X, restando a matriz residual E1. Isso pode então ser usado para calcular os componentes principais subsequentes.[14] Isso resulta numa redução dramática no tempo de cálculo já que se evita um calculo completo e explícito da matriz de covariância.
Numa situação "online" ou de "streaming", com dados chegando parte por parte em vez de serem guardados num único batch, é útil realizar uma estimativa da projeção PCA que pode ser atualizada sequêncialmente. Isso pode ser realizado eficientemente, mas exige algoritmos diferentes.[15]
A maioria dos métodos modernos para en:nonlinear dimensionality reduction encontram suas raízes teóricas e algorítmicas no PCA ou K-means. A ideia original de Pearson era tomar uma reta (ou plano) que seja o "melhor ajuste" a um conjunto de pontos/dados. Curvas principais e variedades[18] fornecem o framework natural para a generalização do PCA e estendem a interpretação do PCA ao construirem explicitamente uma variedade para aproximação de dados, e ao codificar usando projeção matemáticas padrão sobre a variedade, como ilustrado pela Fig. Ver também o algoritmo en:elastic map e en:principal geodesic analysis.
No en:multilinear subspace learning, o PCA é generalizado a multilinear PCA (MPCA), o qual extrai características diretamente de representações tensoriais. MPCA é resolvido fazendo-se PCA iterativamente em cada moda do tensor. MPCA tem sido aplicado ao reconhecimento de faces, reconhecimento de andar (gait), gestos, etc. O MPCA pode ser estendido ao uncorrelated MPCA, MPCA não negativo e MPCA robusto.
O N-way PCA pode ser realizado com modelos tais como en:Tucker decomposition, en:PARAFAC, multiple factor analysis, co-inertia analysis, STATIS, and DISTATIS.
Apesar do PCA encontrar o método matematicamente ótimo (no sentido de minimizar o erro quadrático), ele é sensível a outliers nos dados, que produzem grandes erros que o PCA tenta evitar. Portanto, é de praxe remover os outliers ao calcular o PCA. No entanto, em alguns contextos, os outliers podem ser difíceis de se identificar de antemão. Por exemplo, em algoritmos de mineração de dados como en:correlation clustering, a atribuição de pontos a clusters e outliers não é conhecida de antemão. Uma generalização proposta recentemente de PCA[19] baseada em um PCA com pesos aumenta a robustez, associando pesos diferentes aos dados de acordo com sua relevância estimada.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.