Análise de componentes principais “invertida”: quanta variação dos dados é explicada por uma dada combinação linear das variáveis?


17

I ter realizado uma análise de componentes principais de seis variáveis , , , , e . Se entendi corretamente, o PC1 não rotacionado me diz qual combinação linear dessas variáveis ​​descreve / explica a maior variação nos dados e o PC2 me diz qual combinação linear dessas variáveis ​​descreve a próxima maior variação nos dados e assim por diante.ABCDEF

Só estou curioso - existe alguma maneira de fazer isso "ao contrário"? Digamos que eu escolha alguma combinação linear dessas variáveis ​​- por exemplo, , posso calcular quanta variação nos dados isso descreve?A+2B+5C


7
Estritamente, PC2 é a combinação linear ortogonal a PC1 que descreve a próxima maior variação nos dados.
— Henry

1
Você está tentando estimar ? Var(A+2B+5C)
— vqv

Todas as respostas legais (três + 1s). Estou curioso sobre a opinião das pessoas sobre se o problema formulado é solucionável por meio de abordagens de variáveis ​​latentes (SEM / LVM), se considerarmos uma ou mais variáveis ​​latentes "uma combinação linear das variáveis".
— Aleksandr Blekh

1
@ Aleksandr, minha resposta está realmente diretamente em desacordo com os outros dois. Editei minha resposta para esclarecer a discordância (e planejo editá-la ainda mais para esclarecer a matemática). Imagine um conjunto de dados com duas variáveis idênticos padronizados . Quanta variação é descrita por ? Duas outras soluções fornecem . Argumento que a resposta correta é . X=YX50%100%
— ameba diz Restabelecer Monica

1
@amoeba: Apesar de ainda estar lutando para entender completamente o material, entendo que sua resposta é diferente. Quando eu disse "todas as respostas legais", sugeri que gosto do nível das respostas em si, não da correção . Acho que tem um valor educacional para pessoas como eu, que estão em sua busca de auto-educação em um país de terreno acidentado, chamado Estatísticas :-). Espero que faça sentido.
— Aleksandr Blekh

Respostas:


11

Se começarmos com a premissa de que todas as variáveis ​​foram centralizadas (prática padrão no PCA), a variação total nos dados é apenas a soma dos quadrados:

T=∑i(Ai2+Bi2+Ci2+Di2+Ei2+Fi2)

Isso é igual ao traço da matriz de covariância das variáveis, que é igual à soma dos valores próprios da matriz de covariância. Essa é a mesma quantidade que o PCA fala em termos de "explicação dos dados" - ou seja, você deseja que os seus PCs expliquem a maior proporção dos elementos diagonais da matriz de covariância. Agora, se fizermos disso uma função objetiva para um conjunto de valores previstos, da seguinte forma:

S=∑i([Ai−A^i]2+⋯+[Fi−F^i]2)

Então o primeiro componente principal minimiza entre todos os valores ajustados da classificação 1 . Portanto, parece que a quantidade adequada que você procura é Para usar seu exemplo , precisamos transformar essa equação nas previsões de classificação 1. Primeiro, você precisa normalizar os pesos para obter a soma dos quadrados 1. Portanto, substituímos (soma dos quadrados ) por . Em seguida, "pontuamos" cada observação de acordo com os pesos normalizados:( O i , ... , M i ) P = 1 - SS(A^i,…,F^i) Uma+2B+5C(1,2,5,0,0,0)30(1

P=1−ST
A+2B+5C(1,2,5,0,0,0)30(130,230,530,0,0,0)

Zi=130Ai+230Bi+530Ci

Em seguida, multiplicamos as pontuações pelo vetor de peso para obter nossa previsão de classificação 1.

(A^iB^iC^iD^iE^iF^i)=Zi×(130230530000)

Em seguida, conecte essas estimativas em calcular . Você também pode colocar isso na notação de norma da matriz, o que pode sugerir uma generalização diferente. Se definirmos como a matriz dos valores observados das variáveis ​​( no seu caso) e como uma matriz correspondente de previsões. Podemos definir a proporção de variação explicada como:P O N × q q = 6 ESPON×qq=6E

||O||22−||O−E||22||O||22

Onde é a norma da matriz de Frobenius . Portanto, você pode "generalizar" isso para algum outro tipo de norma matricial e obterá uma medida de diferença da "variação explicada", embora não exista "variação", a menos que seja a soma dos quadrados.||.||2


Esta é uma abordagem razoável, mas a sua expressão pode ser muito simplificada e mostrou ser igual à soma dos quadrados dos dividido pela soma total dos quadrados . Além disso, acho que essa não é a melhor maneira de interpretar a questão; veja minha resposta para uma abordagem alternativa que, na minha opinião, faz mais sentido (em particular, veja meu exemplo aqui). TZiT
— ameba diz Restabelecer Monica

Pense assim. Imagine um conjunto de dados com duas variáveis idênticos padronizados . Quanta variação é descrita por ? Seu cálculo fornece . Argumento que a resposta correta é . X 50 % 100 %X=YX50%100%
— ameba diz Restabelecer Monica

@amoeba - se , em seguida, o primeiro PC é - Isto torna espesso dezenas de (assumindo ). Isso fornece previsões de classificação de e da mesma forma . Portanto, você obtém e . Portanto, você recebe 100% como sugere sua intuição. ( 1X=Y1zi=xi+yi(12,12)1 xi=yi1 xzi=xi+yi2=xi2xi=yi1y i = y i O - E = 0 S = 0x^i=xiy^i=yiO−E=0S=0
— probabilityislogic

Ei, sim, claro, o 1º PC explica 100% de variação, mas não foi isso que eu quis dizer. O que eu quis dizer é que , mas a questão é quanta variação é descrita por , ou seja, pelo vetor ? O que sua fórmula diz então? X ( 1 , 0 )X=YX(1,0)
— ameba diz Restabelecer Monica

@amoeba - isso indica 50%, mas observe que o vetor indica que o melhor preditor de classificação para é dado como e (observando que sob a sua escolha de vetor). Esta não é uma previsão ideal, e é por isso que você não recebe 100%. Você precisa prever e nesta configuração. 1 ( x i , y i ) X i = x i y i =(1,0)1(xi,yi)x^i=xiz i = x i X Yy^i=0zi=xiXY
— probabilityislogic

8

Digamos que eu escolha alguma combinação linear dessas variáveis ​​- por exemplo, , eu poderia calcular quanta variação nos dados isso descreve?A+2B+5C

Essa pergunta pode ser entendida de duas maneiras diferentes, levando a duas respostas diferentes.

Uma combinação linear corresponde a um vetor, que no seu exemplo é . Este vetor, por sua vez, define um eixo no espaço 6D das variáveis ​​originais. O que você está perguntando é: quanta variação a projeção nesse eixo "descreve"? A resposta é dada através da noção de "reconstrução" dos dados originais desta projeção e medindo o erro de reconstrução (consulte a Wikipedia sobre Fração de variação inexplicada ). Acontece que essa reconstrução pode ser razoavelmente feita de duas maneiras diferentes, produzindo duas respostas diferentes.[1,2,5,0,0,0]


Abordagem # 1

Seja seja o centrado conjunto de dados ( linhas correspondem às amostras, colunas correspondem às variáveis), deixar ser sua matriz de covariância, e deixar ser um vector de unidade . A variação total do conjunto de dados é a soma de todas as variações , ou seja, o traço da matriz de covariância: . A questão é: que proporção de faz n d Σ w R d d T = t r ( Σ ) TXndΣwRddT=tr(Σ)TX w T R 2 f i r s t = V a r ( X w )wdescrever? As duas respostas fornecidas por @todddeluca e @probabilityislogic são equivalentes às seguintes: calcular projeção , calcular sua variação e dividir por :XwT

Rfirst2=Var(Xw)T=w⊤Σwtr(Σ).

Isso pode não ser imediatamente óbvio, porque, por exemplo, @probabilityislogic sugere considerar a reconstrução e depois calcular mas com um pouco de álgebra, isso pode ser mostrado como uma expressão equivalente.‖ X ‖ 2 - ‖ X - X w w ⊤ ‖ 2Xww⊤

‖X‖2−‖X−Xww⊤‖2‖X‖2,

Abordagem # 2

OK. Agora considere um exemplo a seguir: é um conjunto dados com matriz de covariância e é simplesmente um vetor : d = 2Xd=2 w = ( 1 0 ) ⊤ x

Σ=(10.990.991)
w=(10)⊤x

variação explicada

A variação total é . A variação da projeção em (mostrada em pontos vermelhos) é igual a . Portanto, de acordo com a lógica acima, a variação explicada é igual a . E, em certo sentido, é: os pontos vermelhos ("reconstrução") estão longe dos pontos azuis correspondentes; portanto, grande parte da variação é "perdida".w 1 1 / 2T=2w11/2

Por outro lado, as duas variáveis ​​têm correlação de e são quase idênticas; dizer que um deles descreve apenas da variação total é estranho, porque cada um deles contém "quase todas as informações" sobre o segundo. Podemos formalizá-lo da seguinte forma: dada a projeção , encontre a melhor reconstrução possível com não necessariamente o mesmo que , depois calcule o erro de reconstrução e conecte-o ao expressão para a proporção da variância explicada: que é escolhido de forma que50 % X w X w v ⊤ v w0.9950%XwXwv⊤vwv"X

Rsecond2=‖X‖2−‖X−Xwv⊤‖2‖X‖2,
vR 2 R 2 X 1 X w‖X−Xwv⊤‖2 é mínimo (isto é, é máximo). Esta é exactamente equivalente a computação de regressão multivariada prevendo originais conjunto de dados da projecção -dimensional .R2R2X1Xw

É uma questão de álgebra direta usar a solução de regressão para para descobrir que toda a expressão se simplifica paraNo exemplo acima, isso é igual a , o que parece razoável.R 2 s e c o n d = ‖ Σ w ‖ doisv0.9901

Rsecond2=‖Σw‖2w⊤Σw⋅tr(Σ).
0.9901

Observe que se (e somente se) for um dos vetores próprios de , ou seja, um dos eixos principais, com valor próprio (de modo que ), as duas abordagens para calcular coincidem e reduzem à expressão familiar de PCA Σ λ ΣwΣλR 2 R 2 P C A = R 2 f i r s t = RΣw=λwR2

RPCA2=Rfirst2=Rsecond2=λ/tr(Σ)=λ/∑λi.

PS. Veja minha resposta aqui para uma aplicação da fórmula derivada no caso especial de sendo um dos vetores básicos : Variação dos dados explicados por uma única variável .w


Apêndice. Derivação da fórmula paraRsecond2

Encontrar minimizar a reconstrução é um problema de regressão (com como preditor univariado e como resposta multivariada). Sua solução é dada por - X - Xv‖X−Xwv⊤‖2XwX

v⊤=((Xw)⊤(Xw))−1(Xw)⊤X=(w⊤Σw)−1w⊤Σ.

Em seguida, a fórmula pode ser simplificada como devido ao teorema de Pitágoras, porque a matriz de chapéu em regressão é uma projeção ortogonal (mas também é fácil mostrar diretamente).R2

R2=‖X‖2−‖X−Xwv⊤‖2‖X‖2=‖Xwv⊤‖2‖X‖2

Conectando agora a equação para , obtemos para o numerador: ″ X w v ⊤ ″ 2 = t r (v

‖Xwv⊤‖2=tr(Xwv⊤(Xwv⊤)⊤)=tr(Xww⊤ΣΣww⊤X⊤)/(w⊤Σw)2=tr(w⊤ΣΣw)/(w⊤Σw)=‖Σw‖2/(w⊤Σw).

O denominador é igual a resultando na fórmula fornecida acima.‖X‖2=tr(Σ)


Eu acho que isso é uma resposta para uma pergunta diferente. Por exemplo, não é o caso de otimizar seu wrt dar ao primeiro PC a resposta única (nos casos em que é único). O fato de que e fornecem 100% quando é evidência suficiente. Seu método proposto parece assumir que a função objetivo "normalizada" para PCA sempre subestima a variação explicada (a sua não é uma função objetivo normalizada de PCA, pois normaliza pela quantidade otimizada em PCA). R2w(1,0)12(1,1)X=Y
— probabilityislogic

Concordo que nossas respostas são para perguntas diferentes, mas não está claro para mim qual OP tinha em mente. Observe também que minha interpretação não é algo muito estranho: é uma abordagem de regressão padrão: quando dizemos que explica tanto e muita variação em , calculamos o erro de reconstrução decom um ótimo , não apenas. Aqui está outro argumento: se todas as variáveis ​​forem padronizadas, em sua abordagem, cada uma delas explica quantidade de variação. Isso não é muito informativo: algumas variáveis ​​podem ser muito mais preditivas que outras! Minha abordagem reflete isso. y " y - x b " bxy‖y−xb‖b‖y−x‖n1/n
— ameba diz Restabelecer Monica

@amoeba (+1) Ótima resposta, é realmente útil! Você conhece alguma referência que resolva esse problema? Obrigado!
— Pierree

@PierreE Thanks. Não, acho que não tenho nenhuma referência a isso.
— Ameba diz Reinstate Monica

4

Seja a variação total, , em um conjunto de dados de vetores, a soma dos erros quadráticos (SSE) entre os vetores no conjunto de dados e o vetor médio do conjunto de dados, que é o vetor médio do conjunto de dados, é o i-ésimo vetor no conjunto de dados e é o produto escalar de dois vetores . Dito de outra forma, a variação total é o SSE entre cada e seu valor previsto, , quando definimos . T = ∑ i ( x i - ˉ xT

T=∑i(xi−x¯)⋅(xi−x¯)
x¯xi⋅xif(xi)f(xi)=x¯

Agora, deixe o preditor de , ser a projeção do vetor em um vetor unitário .xif(xi)xic

fc(xi)=(c⋅xi)c

Então o para um dado éc S S E c = ∑ i ( x i - f c ( x i ) ) ⋅ ( x i - f c ( x i ) )SSEc

SSEc=∑i(xi−fc(xi))⋅(xi−fc(xi))

Eu acho que se você escolher para minimizar , é o primeiro componente principal.S S E c ccSSEcc

Se você escolher como a versão normalizada do vetor , então é a variação nos dados descritos, usando como preditor.( 1 , 2 , 5 , . . . ) T - S S E c cc(1,2,5,...)T−SSEcc


Essa é uma abordagem razoável, mas acho que essa não é a melhor maneira de interpretar a pergunta; veja minha resposta para uma abordagem alternativa que, na minha opinião, faz mais sentido (em particular, veja meu exemplo aqui).
— ameba diz Restabelecer Monica

Pense assim. Imagine um conjunto de dados com duas variáveis idênticos padronizados . Quanta variação é descrita por ? Seu cálculo fornece . Argumento que a resposta correta é . X 50 % 100 %X=YX50%100%
— ameba diz Restabelecer Monica
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.