我在R中执行PCA,如下所示。
# Load data
data(mtcars)
# Run PCA
car.pca <- prcomp(mtcars, scale = TRUE, center = TRUE)
我使用car.pca$x
获取每辆车的PC分数。因此,例如,我知道对于马自达RX4,PC1值为-0.6468627420。我想知道的是,我如何计算每个变量对实现该值的贡献?我知道car.pca$rotation
会给我变量加载。所以,我希望像mtcars[1,] * car.pca$rotation[, 1]
这样的东西可以工作(即,PC1的加载乘以马自达RX4的数据),但是,我不认为这会解释这样的事实:数据以prcomp
函数为中心并进行缩放。在考虑居中和缩放时如何进行计算?
答案 0 :(得分:2)
car.pca$rotation[, 1] * (mtcars[1,] - summary(car.pca)$center) / summary(car.pca)$scale