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).
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).
fonte
Respostas:
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 .X n d { v1 1, . . . , vk} vEu Var ( XvEu)
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 = d k < 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:R2 S
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 TR2 Eu x( I ) V Eu V p( I )= x( I )V k < 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
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 SR2 MSE Vartotal R2= 1 - MSE / Vartotal E S
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 2R2 k=d R2 k<d R2
fonte
try[ing] to reconstruct the data from the projections