我正在做主成分分析,得到分析结果后,如何识别前几个主预测变量?因为剧情很乱。很难看到预测变量的名称:
我应该查看 PCA 结果的哪一部分?这更像是如何确定可以解释数据方差的最重要的预测变量,比如说 80%。我们知道,例如,前 5 个组件做到了这一点,而主组件只是预测变量的组合。如何识别那些“重要”的预测因子。
请参阅此答案主成分分析 - 如何获得每个参数对 Prin.Comp 的贡献(%)?
该信息存储在您的pca
结果中。如果你用过prcomp()
,那么$rotation
就是你所追求的,或者如果你用过princomp()
,那么$loadings
就是关键。例如。
require(graphics)
data("USArrests")
pca_1<-prcomp(USArrests, scale = TRUE)
load_1<-with(pca_1,unclass(rotation))
aload_1<-abs(load_1)
sweep(aload_1, 2, colSums(aload_1), "/")
# PC1 PC2 PC3 PC4
#Murder 0.2761363 0.2540139 0.1890303 0.40186493
#Assault 0.3005008 0.1141873 0.1485443 0.46016113
#UrbanPop 0.1433452 0.5301651 0.2094067 0.08286886
#Rape 0.2800177 0.1016337 0.4530187 0.05510509
pca_2<-princomp(USArrests,cor=T)
load_2<-with(pca_2,unclass(loadings))
aload_2<-abs(load_2)
sweep(aload_2, 2, colSums(aload_2), "/")
# Comp.1 Comp.2 Comp.3 Comp.4
#Murder 0.2761363 0.2540139 0.1890303 0.40186493
#Assault 0.3005008 0.1141873 0.1485443 0.46016113
#UrbanPop 0.1433452 0.5301651 0.2094067 0.08286886
#Rape 0.2800177 0.1016337 0.4530187 0.05510509
如您所见,Murder
、Assault
和Rape
每个对 PC1 的贡献约为 30%,而对 PC1UrbanPop
的贡献仅为 ~14%,但对 PC2 的贡献最大(~53%)。