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([AiA^i]2++[FiF^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=1ST
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||OE||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=yiOE=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 w2Xww

X2XXww2X2,

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 vv w0.9950%XwXwvvwv"X

Rsecond2=X2XXwv2X2,
vR 2 R 2 X 1 X wXXwv2 é 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=Σw2wΣwtr(Σ).
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 - XvXXwv2XwX

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=X2XXwv2X2=Xwv2X2

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

Xwv2=tr(Xwv(Xwv))=tr(XwwΣΣwwX)/(wΣw)2=tr(wΣΣw)/(wΣw)=Σw2/(wΣw).

O denominador é igual a resultando na fórmula fornecida acima.X2=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 " bxyyxbbyxn1/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(xix¯)(xix¯)
x¯xixif(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)=(cxi)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(xifc(xi))(xifc(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,...)TSSEcc


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.