首页 > 解决方案 > PCA:我可以反转 R 中第一个主成分的轴吗?

问题描述

这是一个可重现的示例:

set.seed(10)
pick <- sample(nrow(iris),nrow(iris)/2)
iris.training <- iris[pick,] 
iris.testing <- iris[-pick,]
pca.training <- prcomp(iris.training[-5])
pca.testing <- prcomp(iris.testing[-5])
autoplot(pca.training,loadings.label=T,loadings=T)
autoplot(pca.testing,loadings.label=T,loadings=T)

产生以下输出:biplot_pca_training biplot_pca_testing

可以看到,data.training 和 data.testing 上的 pca 产生了非常相似的双图,但第一个主成分反转了它的符号,它们是镜像的。是否可以强制两个组件旋转 180 度?

标签: rpcacross-validationggbiplot

解决方案


您没有返回旋转的变量。修改后的代码如下。注意 retx=TRUE

set.seed(10)
pick <- sample(nrow(iris),nrow(iris)/2)
iris.training <- iris[pick,] 
iris.testing <- iris[-pick,]
pca.training <- prcomp(iris.training[-5], retx=TRUE)
pca.testing <- prcomp(iris.testing[-5], retx=TRUE)
autoplot(pca.training,loadings.label=TRUE,loadings=TRUE)
autoplot(pca.testing,loadings.label=TRUE,loadings=TRUE)

它产生了以下用于训练和测试的输出。 训练 PCA 图 测试 PCA 图


推荐阅读