PCA数据分析

PCA结果分析及可视化首推factoextra包,能处理各种R函数计算PCA的结果,有:

stats::prcomp()

FactoMiner::PCA()

ade4::dudi.pca()

ExPosition::epPCA()

如果我们想判断PCA中需要多少个主成分比较好,那么可以从主成分的特征值来考虑(Kaiser-Harris准则建议保留特征值大于1的主成分);特征值表示主成分所保留的变异量(所解释的方差);如用get_eigenvalue函来提取特征值,结果中第一列是特征值,第二列是可解释变异的比例,第三列是累计可解释变异的比例

> eig.val

> eig.val

eigenvalue variance.percent cumulative.variance.percent

Dim.1 4.1242133 41.242133 41.24213

Dim.2 1.8385309 18.385309 59.62744

Dim.3 1.2391403 12.391403 72.01885

Dim.4 0.8194402 8.194402 80.21325

Dim.5 0.7015528 7.015528 87.22878

Dim.6 0.4228828 4.228828 91.45760

Dim.7 0.3025817 3.025817 94.48342

Dim.8 0.2744700 2.744700 97.22812

Dim.9 0.1552169 1.552169 98.78029

Dim.10 0.1219710 1.219710 100.00000

除了卡特征值大于1作为主成分个数的阈值外,还可以设置总变异的阈值(累计)作为判断指标

除了看表格来判断,还可从图形上直观的感受下

fviz_eig(res.pca, addlabels = TRUE, ylim = c(0, 50))

fviz_eig_PCA_plot

如果我们想提取PCA结果中变量的信息,则可用get_pca_var()

var

比如我们用于展示变量与主成分之间的关系,以及变量之间的关联,可直接用head(var$coord)查看,或者图形展示

fviz_pca_var(res.pca, col.var = "black")

pca_var_corrd

图形解释,见原文吧:

Positively correlated variables are grouped together.

Negatively correlated variables are positioned on opposite sides of the plot origin (opposed quadrants).

The distance between variables and the origin measures the quality of the variables on the factor map. Variables that are away from the origin are well represented on the factor map

除了上面的Correlation circle外,还有Quality of representation(对应var$cos2),用于展示每个变量在各个主成分中的代表性(高cos2值说明该变量在主成分中有good representation,对应在Correlation circle图上则是接近圆周边上;低cos2值说明该变量不能很好的代表该主成分,对应Correlation circle图的圆心位置);对于变量来说,所有主成分上cos2值的和等于1,所以变量在越少主成分下累计cos2值接近于1,则其在Correlation circle上处于圆周圈上

library("corrplot")

corrplot(var$cos2, is.corr=FALSE)

pca_var_cos2

对于cos2值的原文总结:

The cos2 values are used to estimate the quality of the representation

The closer a variable is to the circle of correlations, the better its representation on the factor map (and the more important it is to interpret these components)

Variables that are closed to the center of the plot are less important for the first components.

针对上述的cos2值,还有一个与其相关的则是Contributions to the principal components,也就是cos2值在各个主成分中的比例。。

简单的说,如果一个变量在PC1和PC2的Contributions很高的话,则说明该变量可有效解释数据的变异,我们可以用图形展示各个变量在PC1和PC2上的Contributions

fviz_pca_var(res.pca, col.var = "contrib",

gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")

)

pca_var_contrib

以上均是对变量在PCA中的分析,下面则是观测值的分析

跟上述变量的分析一样,先用提取出individuals信息,会发现也有coord,cos2和contrib等信息

> ind

> ind

Principal Component Analysis Results for individuals

===================================================

Name Description

1 "$coord" "Coordinates for the individuals"

2 "$cos2" "Cos2 for the individuals"

3 "$contrib" "contributions of the individuals"

然后按照上面的模式来展示下individuals的点图,比如以cos2值来代表各个individuals点的圆圈大小

fviz_pca_ind(res.pca, pointsize = "cos2",

pointshape = 21, fill = "#E7B800",

repel = TRUE # Avoid text overlapping (slow if many points)

)

pca_ind_point

如果有分组信息,则可以将同一组的individuals圈在一起,如:

fviz_pca_ind(iris.pca,

geom.ind = "point", # show points only (nbut not "text")

col.ind = iris$Species, # color by groups

palette = c("#00AFBB", "#E7B800", "#FC4E07"),

addEllipses = TRUE, # Concentration ellipses

legend.title = "Groups"

)

pca_ind_group

上述图形可改进用于展示置信椭圆和不规则图形等

最后可以将vars和individuals同时在一张biplot图中展示(一般biplot图只用于展示变量较少的情况)

fviz_pca_biplot(iris.pca,

col.ind = iris$Species, palette = "jco",

addEllipses = TRUE, label = "var",

col.var = "black", repel = TRUE,

legend.title = "Species")

pca_biplot

r语言dataellipse_R语言 PCA分析相关推荐

  1. R语言中的PCA分析与可视化

    文章目录 1. 常用术语 (1)标准化(Scale) (2)特征值 (eigen value) (3)特征向量(eigen vector) (4)载荷(loading) (5)得分(score) 2. ...

  2. r语言dataellipse_R语言绘图:28个实用程序包

    原标题:R语言绘图:28个实用程序包 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言,请戳我的原创推文""与"" # 使用 ...

  3. r语言dataellipse_R语言中的划分聚类模型

    划分聚类是用于基于数据集的相似性将数据集分类为多个组的聚类方法. 分区聚类,包括: K均值聚类 (MacQueen 1967),其中每个聚类由属于聚类的数据点的中心或平均值表示.K-means方法对异 ...

  4. R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标

    全文下载链接:http://tecdat.cn/?p=27515 建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提 ...

  5. R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图

    学习笔记的主要内容是在R语言中利用ggplot2进行PCA分析和绘图,包括简单分析与操作流程,对比不同方式得到的结果差异,提供脚本代码供练习. PCA分析的原理 在处理基因差异表达数据时,有时候需要分 ...

  6. 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...

    原文链接:http://tecdat.cn/?p=27515  建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...

  7. R语言ggplot2 | PCA分析及其可视化

    主成分分析 主成分分析(PCA)的基本介绍 PCA常用的参数 标准化 特征值和特征向量 载荷 得分 R语言实现PCA分析 逐步计算PCA分析中的参数 prcomp函数 princomp函数 自定义函数 ...

  8. R语言对表达谱样本做PCA分析

    主成分分析(Principal component analysis, PCA)是一种数学算法,它可以在减少数据维度的同时,保留数据集中绝大多数的变量[1]. PCA通过对主成分进行辨别,找出一个方向 ...

  9. [R语言] R语言PCA分析教程 Principal Component Methods in R

    R语言PCA分析教程 Principal Component Methods in R(代码下载) 主成分分析Principal Component Methods(PCA)允许我们总结和可视化包含由 ...

最新文章

  1. controller如何保证当前只有一个线程执行_今天我们来聊一聊 Spring 中的线程安全性...
  2. python【数据结构与算法】树状数组(附例题)
  3. atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux
  4. jaxb 生成java类_重用生成的JAXB类
  5. 什么是无线路由器网络协议?
  6. 徐海学院计算机专业好吗,2019中国矿业大学徐海学院专业排名
  7. javascript-阻止默认行为发生
  8. STP安全特性——bpduguard特性、 bpdufilter特性、guard root 特性、loopguard技术总结与案列(附图,建议PC观看)
  9. python经典书籍推荐:Python核心编程
  10. java collection 遍历_Java for循环对集合的遍历
  11. 沃特玛采集均衡模块_采集均衡模块以及电池管理系统技术方案
  12. 用C语言写的爬虫项目
  13. Python爬虫——下载韩寒博客文章
  14. Java 绘制图标(饼状图)JFreeChart快速通过Java创建图表
  15. Udacity Self-Driving Car的训练
  16. 欧洲共同语言标准 c1,[转载]BEC,雅思等考试和欧洲共同语言参考标准的对照
  17. matlab ri值,基于Matlab的中国地面气候资料日值数据集(V3.0)快速处理
  18. 新三板精选层股票名单 新三板精选层概念股龙头
  19. DANet Daul Attention位置和通道注意力(PAM&CAM)keras实现
  20. RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count() is 1.

热门文章

  1. 四位辉光管时钟-学长毕设
  2. 安卓自定义相机录像并上传(详细参数设置)
  3. SQL Server中编辑更多的行。
  4. 博客之星竞选最后几天,放飞自我的博主们
  5. Eclipse-自动补全提示
  6. vue+d3v6实现动态知识图谱可视化展示
  7. 《惢客创业日记》2020.07.21(周二)悬疑爱好者的基地
  8. 浅析欧几里德算法 GCD和LCM
  9. 学Java有前途吗?
  10. 遇到u盘中删除的文件怎样才能恢复呢?