En estatística, a análise de compoñentes principais (en galego ACP, en inglés, PCA) é unha técnica utilizada para reducir a dimensionalidade dun conxunto de datos.
Tecnicamente, a ACP busca a proxección segundo a cal os datos queden mellor representados en termos de mínimos cadrados. Esta converte un conxunto de observacións de variables posiblemente correlacionadas nun conxunto de valores de variables sen correlación linear chamadas compoñentes principais.
A ACP emprégase sobre todo en análise exploratorio de datos e para construír modelos predictivos. A ACP implica o cálculo da descomposición en autovalores da matriz de covarianza, normalmente tras centrar os datos na media de cada atributo.
Debe diferenciarse da análise factorial coa que ten similitudes formais e na que se pode empregar como un método de aproximación para a extracción de factores.
A ACP foi inventada en 1901 por Karl Pearson,[1] como análogo ao teorema do eixe principal na mecánica; foi desenvolvido de xeito independente na década de 1930 por Harold Hotelling, quen lle deu o nome.[2]
A ACP constrúe unha transformación linear que escolle un novo sistema de coordenadas para o conxunto orixinal de datos no que a varianza de maior tamaño do conxunto de datos é capturada no primeiro eixe (chamado a primeira compoñente principal), a segunda varianza máis grande é o segundo eixe, e así sucesivamente.[3] Para construír esta transformación linear debe construírse primeiro a matriz de covarianza ou matriz de coeficientes de correlación. Debido á simetría desta matriz existe unha base completa de vectores propios da mesma. A transformación que leva das antigas coordenadas ás coordenadas da nova base é precisamente a transformación linear necesaria para reducir a dimensionalidade de datos. Ademais as coordenadas na nova base dan a composición en factores subxacentes dos datos iniciais.
Unha das vantaxes da ACP para reducir a dimensionalidade dun grupo de datos é que retén aquelas características do conxunto de datos que contribúen máis á súa varianza, mantendo unha orde de baixo nivel dos compoñentes principais e ignorando os de alto nivel. O obxectivo é que eses compoñentes de baixa orde ás veces conteñen o aspecto "máis importante" desa información.
Supóñase que existe unha mostra con n individuos para cada un dos cales se mediron m variables aleatorias F j . {\displaystyle F_{j}.\;} A ACP permite atopar un número de factores subxacentes p<m que explican aproximadamente o valor das m variables para cada individuo. O feito de que existan estes p factores subxacentes pode interpretarse como unha redución da dimensionalidade dos datos: onde antes necesitabamos m valores para caracterizar cada individuo agora bástannos p valores. Cada un dos p atopados chámase compoñente principal, de aí o nome do método.
Existen dúas formas básicas de aplicar a ACP:
Considérese o valor de cada unha das m variables aleatorias F j {\displaystyle F_{j}\,} . Para cada un dos n individuos tómese o valor destas variables e escríbase o conxunto de datos en forma de matriz:
Obsérvese que cada conxunto
pode considerarse unha mostra aleatoria para a variable F j {\displaystyle F_{j}\,} . A partir dos m×n datos correspondentes ás m variables aleatorias, pode construírse a matriz de correlación muestral, que vén definida por:
R = [ r i j ] ∈ M m × m donde r i j = cov ( F i , F j ) var ( F i ) var ( F j ) {\displaystyle \mathbf {R} =[r_{ij}]\in M_{m\times m}\qquad {\mbox{donde}}\ \qquad r_{ij}={\frac {{\mbox{cov}}(F_{i},F_{j})}{\sqrt {{\mbox{var}}(F_{i}){\mbox{var}}(F_{j})}}}}
Posto que a matriz de correlacións é simétrica entón resulta diagonalizable e os seus valores propios λ i {\displaystyle \lambda _{i}\,} verifican:
∑ i = 1 m λ i = 1 {\displaystyle \sum _{i=1}^{m}\lambda _{i}=1}
Debido á propiedade anterior estes m valores propios reciben o nome de pesos de cada unha das m compoñentes principais. Os factores principais identificados matematicamente represéntanse pola base de vectores propios da matriz R {\displaystyle \mathbf {R} } . Está claro que cada unha das variables pode ser expresada como combinación linear dos vectores propios ou compoñentes principais.
O obxectivo é transformar un conxunto dado de datos X de dimensión n×m a outro conxunto de datos Y de menor dimensión n×l coa menor perda de información útil posible utilizando para iso a matriz de covarianza.[4]
Pártese dun conxunto n de mostras cada unha das cales ten m variables que as describen e o obxectivo é que, cada unha desas mostras, descríbase con só I variables, onde l<m. Ademais, o número de compoñentes principais l ten que ser inferior á menor das dimensións de X.
l ≤ min { n , m } {\displaystyle l\leq \min\{n,m\}}
Os datos para a análise teñen que estar centrados na media 0 (restándolles a media de cada columna) e/ou autoescalados (centrados a media 0 e dividindo cada columna pola súa desviación típica).
X = ∑ a = 1 l t a p a T + E {\displaystyle \mathbf {X} =\sum _{a=1}^{l}\mathbf {t} _{a}\mathbf {p} _{a}^{T}+\mathbf {E} }
Os vectores t a {\displaystyle \scriptstyle \mathbf {t} _{a}} coñécense como scores e conteñen a información de como as mostras están relacionadas unhas coas outras; ademais, teñen a propiedade de ser ortogonais. Os vectores p a {\displaystyle \scriptstyle \mathbf {p} _{a}} chámanse loadings e informan da relación existente entre as variables e teñen a calidade de ser ortonormais.
Ao coller menos compoñentes principais que variables e debido ao erro de axuste do modelo cos datos, prodúcese un erro que se acumula na matriz E {\displaystyle \scriptstyle \mathbf {E} } .
A ACP baséase na descomposición en vectores propios da matriz de covarianza, a cal se calcula coa seguinte ecuación:
cov ( X ) = X T X n − 1 {\displaystyle {\mbox{cov}}(X)={\frac {X^{T}X}{n-1}}} cov ( X ) p a = λ a p a {\displaystyle {\mbox{cov}}(X)\ {\mathbf {p} _{a}}={\lambda _{a}}\ {\mathbf {p} _{a}}} ∑ a = 1 m λ a = 1 {\displaystyle \sum _{a=1}^{m}\lambda _{a}=1}
onde λ a {\displaystyle \scriptstyle \lambda _{a}} é o valor propio asociado ao vector propio p a {\displaystyle \scriptstyle \mathbf {p} _{a}} . Por último,
t a = X p a {\displaystyle \mathbf {t} _{a}=X\ \mathbf {p} _{a}}
Esta ecuación pódese entender como que t a {\displaystyle \scriptstyle \mathbf {t} _{a}} son as proxeccións de X en p a {\displaystyle \scriptstyle \mathbf {p} _{a}} , onde os valores propios λ a {\displaystyle \scriptstyle \lambda _{a}} miden a cantidade de varianza capturada, é dicir, a información que representan cada unha das compoñentes principais. A cantidade de información que captura cada compoñente principal vai diminuíndo segundo o seu número, é dicir, a compoñente principal número un representa máis información que a dúas e así sucesivamente.
A aplicación da ACP está limitada por varios supostos:[5]