Pesquisa · Mapa mental

Análise de componentes principais

A Análise de Componentes Principais (ACP) ou Principal Component Analysis (PCA) é um procedimento matemático que utiliza uma transformação ortogonal 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).

Fonte: Wikipédia (pt)Atualizado em 29/06/2026
01

Detalhes

O PCA é matematicamente definido 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:

02

Discussão

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. 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 k − 1 {\displaystyle k-1} componentes principais de X: e substituindo-se isso como o novo conjunto de dados cujo componente principal é obtido em

03

Propriedades e limitações do PCA

Como visto acima, os resultados do PCA dependem da escala das variáveis. A aplicabilidade do PCA é limitada por certas premissas feitas em sua derivação.

04

Calculando o PCA através do método da covariância

O cálculo do PCA usando o método da covariância é descrito nesta seção. 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:

Organizar o conjunto de dados

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 x 1 … x N {\displaystyle \mathbf {x} _{1}\ldots \mathbf {x} _{N}} com cada x n {\displaystyle \mathbf {x} _{n}} representando uma única observação agrupada das M variáveis.

Calcule os desvios da média

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. Logo, centralizam-se os dados da seguinte forma:

Encontre a matriz de covariância

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.

05

Cálculo eficiente de componentes principais

Algoritmos iterativos

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 é 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. 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.)

O método NIPALS

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. 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.

Estimação online ou sequencial

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.

06

Generalizações

Generalizações não lineares

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 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.

Generalizações multilineares

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.

Ordens mais altas

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.

Robustez - PCA com pesos

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 baseada em um PCA com pesos aumenta a robustez, associando pesos diferentes aos dados de acordo com sua relevância estimada.

Vídeos recomendados

Fontes consultadas

Continue pesquisando