R统计绘图 您所在的位置:网站首页 r语言performance函数在哪个包 R统计绘图

R统计绘图

2023-05-10 07:01| 来源: 网络整理| 查看: 265

虽然PCA和RDA分析及绘图都写过教程,但是对于结果的解释都没有写的很详细,刚好最近有人询问怎样使用FactoMineR factoextra包进行PCA分析。所以使用R统计绘图-环境因子相关性热图中的不同土壤环境因子数据进行PCA绘图和结果解读推文。

一、 数据准备

# 1.1 设置工作路径 #knitr::opts_knit$set(root.dir="D:\\EnvStat\\PCA")# 使用Rmarkdown进行程序运行 Sys.setlocale('LC_ALL','C') # Rmarkdown全局设置 options(stringsAsFactors=F)# R中环境变量设置,防止字符型变量转换为因子 setwd("D:\\EnvStat\\PCA") # 1.2 读入环境因子数据-包含样本和环境因子分类信息 data 80%更好)的PC1和PC2进行可视化和后续分析(也可以选择累计方差解释率超过一定阈值的PC用作后续分析)。

## 2.4.2 样本PCA输出数据 res.pca$ind # 包含所有样本的输出结果的矩阵列表 #get_pca_ind(res.pca) # 可以使用factoextra包的函数提取样本输出数据。 res.pca$ind$coord # 样本在PC的坐标=左奇异值/sqrt(eig) res.pca$ind$cos2 # 样本坐标的平方/样本Euclid(L2)范数的平方(标准化数据)。 ## 未标准化数据,样本1的cos2=ind1.coord^2/每个个体与PCA重心之间的平方距离(d2)。d2=([(Var1-Var1.mean)/Var1.sd]^2+...+[(Varn-Varn.mean)/Varn.sd]^2) res.pca$ind$contrib # 所有样本对主成分的贡献度(%)=(res.pca$ind$coord^2)*100/eig^2/样本数 res.pca$ind$dist # 变量标准化之后,样本L2范数(Euclid范数),即每个样本包含变量的(值平方*变量权重)的和的平方根 ##可反应样本间距离。dist值差异越大,样本相似性越小。

注:L2范数指向量中所有数据平方和的平方根。范数介绍:https://blog.csdn.net/a493823882/article/details/80569888

## 2.4.3 响应变量PCA输出数据 res.pca$var # 包含所有响应变量相关结果的矩阵列表 #get_pca_var(res.pca) # 可以使用factoextra包的函数提取响应变量输出数据。 res.pca$var$coord # 所有响应变量(这里是环境因子)的坐标,等于右奇异值*特征根的平方根=载荷值(主成分能代表的响应变量的方差)*特征根(主成分的标准误差)。 res.pca$var$cor # 样本权重一样时,每个响应变量与轴的相关性=响应变量坐标/(变量值的平方和/样本数的平方根)。绝对值越大,表明相关性越强,正负表示方向。 res.pca$var$cos2 # 所有响应变量与轴相关性的平方,等于res.pca$var$cor^2。 res.pca$var$contrib # 响应变量对每个主成分的方差贡献值=(var$cos2*100)/apply(res.pca$var$cos2,2,sum)

注:PCA()也计算了响应变量的dist,计算方式为dist2.var % get_summary_stats(type="mean_sd") res.pca$call$centre # 响应变量的均值 res.pca$call$ecart.type # 响应变量的标准误差 res.pca$call$row.w.init # 样本权重 res.pca$call$col.w # 响应变量权重 res.pca$call$ncp # 主成分维度 #env[4:11] %>% group_by(env$tillage) %>% get_summary_stats(type="mean") res.pca$call$quali.sup # 附加定性变量统计值 res.pca$call$X # 原始数据 res.pca$call$call # 运行代码

三、PCA分析结果绘图

factoextra包中的绘图函数fviz_pca_biplot()可以用于绘制PCA双序图。fviz()是ggpubr包中ggscatter()函数的包装器,可以与ggpubr的函数联用。也可用提取的数据使用ggplot2绘图。这里先使用ggplot2绘图,下篇文章介绍factoextra包中的绘图函数。

3.1 提取绘图数据

FactoInvestigate包的Investigate()默认输出的图很多,但是信息没有整合,而且很多细节还需要调整。这里提取数据,自己使用ggplot2进行绘图。

# 3.1.1 提取样本坐标 # get_pca_ind(res.pca) # factoextra提取分析结果,可以很方便的提取prcomp()和princomp()函数的样本PCA分析结果。 sam=data.frame(res.pca$ind$coord) sam sam=data.frame(sam[1:2],env[1:3]) # 添加样本分组信息 sam # 3.1.2 提取特征值-每个主成分对样本方差的解释度。 fviz_eig(res.pca,addlabels = TRUE) # 对每个主成分对方差的解释度绘制柱形图。 #fviz_screeplot(res.pca)# 对每个主成分对方差的解释度绘制柱形图。 eig.val


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有