Como obter "autovalores" (porcentagens de variância explicada) de vetores que não são autovetores de PCA?


10

Gostaria de entender como posso obter a porcentagem de variação de um conjunto de dados, não no espaço de coordenadas fornecido pelo PCA, mas em um conjunto ligeiramente diferente de vetores (rotacionados).

insira a descrição da imagem aqui

set.seed(1234)
xx <- rnorm(1000)
yy <- xx * 0.5 + rnorm(1000, sd = 0.6)
vecs <- cbind(xx, yy)
plot(vecs, xlim = c(-4, 4), ylim = c(-4, 4))
vv <- eigen(cov(vecs))$vectors
ee <- eigen(cov(vecs))$values
a1 <- vv[, 1]
a2 <- vv[, 2]
theta = pi/10
rotmat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), 2, 2)
a1r <- a1 %*% rotmat
a2r <- a2 %*% rotmat
arrows(0, 0, a1[1], a1[2], lwd = 2, col = "red")
arrows(0, 0, a2[1], a2[2], lwd = 2, col = "red")
arrows(0, 0, a1r[1], a1r[2], lwd = 2, col = "green3")
arrows(0, 0, a2r[1], a2r[2], lwd = 2, col = "green3")
legend("topleft", legend = c("eigenvectors", "rotated"), fill = c("red", "green3"))

Então, basicamente, eu sei que a variação do conjunto de dados ao longo de cada um dos eixos vermelhos, dada pelo PCA, é representada pelos valores próprios. Mas como eu poderia obter as variações equivalentes, totalizando a mesma quantidade, mas projetando os dois eixos diferentes em verde, que são uma rotação por pi / 10 dos eixos dos componentes principais. No IE, dados dois vetores de unidade ortogonais da origem, como posso obter a variação de um conjunto de dados ao longo de cada um desses eixos arbitrários (mas ortogonais), de modo que toda a variação seja contabilizada (ou seja, "valores próprios" somam à mesma que a de PCA).


Respostas:


7

Se os vetores são ortogonais, você pode apenas ter a variação da projeção escalar dos dados em cada vetor. Digamos que temos uma matriz de dados ( pontos x dimensões) e um conjunto de vetores de colunas ortonormais . Suponha que os dados estejam centralizados. A variação dos dados na direção de cada vetor é dada por .Xnd{v1,...,vk}viVar(Xvi)

Se houver tantos vetores quanto as dimensões originais ( ), a soma das variações das projeções será igual à soma das variações ao longo das dimensões originais. Porém, se houver menos vetores do que as dimensões originais ( ), a soma das variações será geralmente menor que a do PCA. Uma maneira de pensar no PCA é que ele maximiza essa quantidade (sujeito à restrição de que os vetores são ortogonais).k=dk<d

Você também pode calcular (a fração de variação explicada), que geralmente é usada para medir quão bem um determinado número de dimensões de PCA representa os dados. Seja a soma das variações ao longo de cada dimensão original dos dados. Então:R2S

R2=1Si=1kVar(Xvi)

Essa é apenas a razão entre as variações somadas das projeções e as variações somadas ao longo das dimensões originais.

Outra maneira de pensar sobre é que ele mede a qualidade do ajuste se tentarmos reconstruir os dados das projeções. Ele assume a forma familiar usada para outros modelos (por exemplo, regressão). Digamos que o th ponto de dados é uma linha vetor . Armazenar cada um dos vectores de base ao longo das colunas da matriz . A projecção do th ponto de dados para todos os vectores em é dada por . Quando houver menos vetores que as dimensões originais ( i X ( i ) V I V P ( i ) = x ( i ) V k < d x ( i ) = p ( i ) V TR2ix(i)ViVp(i)=x(i)Vk<d), podemos pensar nisso como mapear os dados linearmente em um espaço com dimensionalidade reduzida. Podemos aproximadamente reconstruir o ponto de dados a partir da representação tridimensional baixo por mapeamento de volta para o espaço de dados original: . O erro médio de reconstrução ao quadrado é a distância euclidiana ao quadrado médio entre cada ponto de dados original e sua reconstrução:x^(i)=p(i)VT

E=1nx(i)x^(i)2

A qualidade do ajuste é definida da mesma maneira que para outros modelos (isto é, um menos a fração da variação inexplicada). Dado o erro quadrático médio do modelo ( ) e a variação total da quantidade modelada ( ), . No contexto de nossa reconstrução de dados, o erro quadrado médio é (o erro de reconstrução). A variação total é (a soma das variações ao longo de cada dimensão dos dados). Então: MSE Var total R 2 = 1 - MSE / Var total E SR2MSEVartotalR2=1MSE/VartotalES

R2=1ES

R 2S também é igual à distância euclidiana quadrática média de cada ponto de dados para a média de todos os pontos de dados; portanto, também podemos pensar em comparando o erro de reconstrução com o do 'modelo de pior caso' que sempre retorna o significa como a reconstrução.R2

As duas expressões para são equivalentes. Como acima, se houver tantos vetores quanto as dimensões originais ( ), então será um. Mas, se , geralmente será menor que para PCA. Outra maneira de pensar sobre o PCA é que ele minimiza o erro de reconstrução ao quadrado. k = d R 2 k < d R 2R2k=dR2k<dR2


+1, explicação muito clara. Eu só quero mencionar, para completar, que é o que você escreveu, apenas se " " entendermos a reconstrução através do mesmo que foi usado para projetar. Em geral, para um vetor de projeção arbitrário , haverá uma melhor reconstrução, produzindo mais alto . Eu tenho uma resposta onde explico em detalhes . No entanto, concordo que, para esta pergunta em particular, o que você escreveu é exatamente o que é necessário. V v R 2R2try[ing] to reconstruct the data from the projectionsVvR2
Ameba

Sim, isso é um ponto bom e uma explicação agradável
user20160

E se eu não tiver uma matriz de dados, mas apenas uma matriz de covariância? A soma da diagonal da matriz de covariância me dá a variação total e, se eu aplicasse o PCA a essa matriz de covariância, os valores próprios dariam a variação ao longo de cada nova direção, para que a variação explicada seja o valor próprio / variação total. Mas quais são meus vetores não são autovetores?
Confundido

... Até onde eu sei, se começarmos com uma matriz de covariância C , nesse caso, é preciso tomar | Cv_i | / sum (diag ( C )) para obter a% de variação explicada.
Confundido
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.