在R中绘制选定的PCA载荷图。

问题描述 投票:0回答:1

我刚刚对一个大约有20,000个变量的大型数据集进行了PCA分析。为此,我使用了以下代码。

df_pca <- prcomp(df, center=FALSE, scale.=TRUE)

我很好奇我的变量是如何影响PCA.1(PCA分析的维度1)和PCA.2(PCA分析的维度2)的。

我使用下面的代码来查看每个变量是如何影响维度分析的。

fviz_pca_var(df_pca, col.var = "black")

然而,这将创建一个包含我所有20,000个变量的图表,由于信息量太大,无法读取。

有没有办法选择对PCA.1和PCA.2影响最大的变量,只画出这些变量的图?

先谢谢您了!

r plot subset pca
1个回答
1
投票

你要做的是首先得到实际的表,将合成变量w实际变量关联起来。像这样做。

a <- df_pca$rotation

然后我们就可以用dplyr来操作数据框架 并提取我们想要的东西。

library(dplyr)
library(tibble)
a %>% as.data.frame %>% rownames_to_column %>% 
select(rowname, PC1, PC2) %>% arrange(desc(PC1)) %>% head(10)

上面将组织显示PC1最重要的10个变量。你可以对PC2运行同样的事情,将其改为 arrange(desc(PC2))......并通过改变 head(10).


2
投票

如果你想看到你想要的尺寸,你应该这样做。

library(factoextra)    
fviz_contrib(df_pca,
                 choice = "var",
                 axes = 5,
                 top = 10, color = 'darkorange3', barfill  = 'blue4',fill ='blue4')

axes 你可以选择你想看到的dim。在本例中,你看到的维数是5。enter image description here

如果你想看帮助你选择维数的变量和曲线,你可以使用这个。

fviz_screeplot(df_pca, ncp=14,linecolor = 'darkorange3', barfill  = 'blue4', 
               barcolor ='blue4', xlab = "Dimensioni", 
               ylab = '% varicance',
               main = 'Reduction of components')
get_eigenvalue(df_pca)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.