如何从 PCA 中获取特征向量
How to get eigenvectors from PCA
我正在使用 FactoMineR 的 PCA 函数来计算我的数据集的 PCA。
我知道我可以用 get_eigenvalue(res.pca)
获得特征值,但我如何获得 特征向量 ?
在主成分分析中,您将 n-by-k 变量矩阵分解为三个部分 - U、D 和 V。U 是表示分解矩阵行的左奇异向量。但是,U 矩阵本身并不是主成分。 U 的所有列都是相互正交的(如您所料),但它们也都具有相同的方差。主成分是 U 按特征值的平方根缩放的。这是一个例子:
library(FactoMineR)
data(decathlon)
dat <- decathlon[,1:10]
p <- PCA(dat)
#> Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
#> increasing max.overlaps
comp1 <- predict(p, newdata=dat)$coord[,1:3]
U <- p$svd$U
e <- p$eig[,"eigenvalue"]
comp2 <- U[,1:3] %*% diag(sqrt(e[1:3]))
head(comp1[,1:3])
#> Dim.1 Dim.2 Dim.3
#> SEBRLE 0.7916277 0.7716112 0.8268412
#> CLAY 1.2349906 0.5745781 2.1412470
#> KARPOV 1.3582149 0.4840209 1.9562580
#> BERNARD -0.6095151 -0.8746285 0.8899407
#> YURKOV -0.5859683 2.1309542 -1.2251568
#> WARNERS 0.3568895 -1.6849567 0.7665531
head(comp2[,1:3])
#> [,1] [,2] [,3]
#> [1,] 0.7916277 0.7716112 0.8268412
#> [2,] 1.2349906 0.5745781 2.1412470
#> [3,] 1.3582149 0.4840209 1.9562580
#> [4,] -0.6095151 -0.8746285 0.8899407
#> [5,] -0.5859683 2.1309542 -1.2251568
#> [6,] 0.3568895 -1.6849567 0.7665531
由 reprex package (v2.0.1)
创建于 2022-02-16
我正在使用 FactoMineR 的 PCA 函数来计算我的数据集的 PCA。
我知道我可以用 get_eigenvalue(res.pca)
获得特征值,但我如何获得 特征向量 ?
在主成分分析中,您将 n-by-k 变量矩阵分解为三个部分 - U、D 和 V。U 是表示分解矩阵行的左奇异向量。但是,U 矩阵本身并不是主成分。 U 的所有列都是相互正交的(如您所料),但它们也都具有相同的方差。主成分是 U 按特征值的平方根缩放的。这是一个例子:
library(FactoMineR)
data(decathlon)
dat <- decathlon[,1:10]
p <- PCA(dat)
#> Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
#> increasing max.overlaps
comp1 <- predict(p, newdata=dat)$coord[,1:3]
U <- p$svd$U
e <- p$eig[,"eigenvalue"]
comp2 <- U[,1:3] %*% diag(sqrt(e[1:3]))
head(comp1[,1:3])
#> Dim.1 Dim.2 Dim.3
#> SEBRLE 0.7916277 0.7716112 0.8268412
#> CLAY 1.2349906 0.5745781 2.1412470
#> KARPOV 1.3582149 0.4840209 1.9562580
#> BERNARD -0.6095151 -0.8746285 0.8899407
#> YURKOV -0.5859683 2.1309542 -1.2251568
#> WARNERS 0.3568895 -1.6849567 0.7665531
head(comp2[,1:3])
#> [,1] [,2] [,3]
#> [1,] 0.7916277 0.7716112 0.8268412
#> [2,] 1.2349906 0.5745781 2.1412470
#> [3,] 1.3582149 0.4840209 1.9562580
#> [4,] -0.6095151 -0.8746285 0.8899407
#> [5,] -0.5859683 2.1309542 -1.2251568
#> [6,] 0.3568895 -1.6849567 0.7665531
由 reprex package (v2.0.1)
创建于 2022-02-16