Je voudrais comprendre comment je peux obtenir le pourcentage de variance d'un ensemble de données, non pas dans l'espace de coordonnées fourni par PCA, mais contre un ensemble légèrement différent de vecteurs (tournés).
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"))
Donc, fondamentalement, je sais que la variance de l'ensemble de données le long de chacun des axes rouges, donnée par PCA, est représentée par les valeurs propres. Mais comment pourrais-je obtenir les variances équivalentes, totalisant le même montant, mais projeté les deux axes différents en vert, qui sont une rotation par pi / 10 des axes principaux des composants. IE étant donné deux vecteurs unitaires orthogonaux depuis l'origine, comment puis-je obtenir la variance d'un ensemble de données le long de chacun de ces axes arbitraires (mais orthogonaux), de telle sorte que toute la variance soit prise en compte (c'est-à-dire que les «valeurs propres» soient égales à celles de PCA).
la source
Réponses:
Si les vecteurs sont orthogonaux, vous pouvez simplement prendre la variance de la projection scalaire des données sur chaque vecteur. Supposons que nous ayons une matrice de données ( points x dimensions) et un ensemble de vecteurs de colonne orthonormés . Supposons que les données sont centrées. La variance des données selon la direction de chaque vecteur est donnée par .X n d {v1,...,vk} vi Var(Xvi)
S'il y a autant de vecteurs que de dimensions d'origine ( ), la somme des variances des projections sera égale à la somme des variances le long des dimensions d'origine. Mais, s'il y a moins de vecteurs que les dimensions d'origine ( ), la somme des variances sera généralement inférieure à celle de l'ACP. Une façon de penser à l'ACP est qu'elle maximise cette quantité même (sous réserve que les vecteurs soient orthogonaux).k=d k<d
Vous pouvez également vouloir calculer (la fraction de variance expliquée), qui est souvent utilisée pour mesurer dans quelle mesure un nombre donné de dimensions PCA représente les données. Soit la somme des variances le long de chaque dimension d'origine des données. Alors:R2 S
Il s'agit simplement du rapport des variances sommées des projections et des variances sommées le long des dimensions d'origine.
Une autre façon de penser à est qu'il mesure la qualité de l'ajustement si nous essayons de reconstruire les données à partir des projections. Il prend alors la forme familière utilisée pour d'autres modèles (par exemple la régression). Supposons que le ème point de données soit un vecteur ligne . Stocker chacun des vecteurs de base le long des colonnes de la matrice . La projection du ème point de données sur tous les vecteurs de est donnée par . Lorsqu'il y a moins de vecteurs que les dimensions d'origine (R2 i x(i) V i V p(i)=x(i)V k<d ), nous pouvons considérer cela comme une cartographie linéaire des données dans un espace à dimensionnalité réduite. On peut reconstituer approximativement le point de données à partir de la faible représentation dimensionnelle en arrière de mappage dans l'espace de données d' origine: . L'erreur de reconstruction quadratique moyenne est la distance euclidienne quadratique moyenne entre chaque point de données d'origine et sa reconstruction:x^(i)=p(i)VT
La qualité de l'ajustement est définie de la même manière que pour les autres modèles (c'est-à-dire comme un moins la fraction de variance inexpliquée). Étant donné l'erreur quadratique moyenne du modèle ( ) et la variance totale de la quantité modélisée ( ), . Dans le cadre de notre reconstruction de données, l'erreur quadratique moyenne est (l'erreur de reconstruction). La variance totale est (la somme des variances le long de chaque dimension des données). Alors:R2 MSE Vartotal R2=1−MSE/Vartotal E S
Les deux expressions pour sont équivalentes. Comme ci-dessus, s'il y a autant de vecteurs que de dimensions d'origine ( ) alors sera un. Mais, si , sera généralement inférieur à celui de PCA. Une autre façon de penser à l'ACP est qu'elle minimise l'erreur de reconstruction au carré.R2 k=d R2 k<d R2
la source
try[ing] to reconstruct the data from the projections