1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 拓端tecdat|R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图

拓端tecdat|R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图

时间:2021-12-24 02:09:03

相关推荐

拓端tecdat|R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图

原文链接:/?p=22492

原文出处:拓端数据部落公众号

我们将使用葡萄酒数据集进行主成分分析。

数据

数据包含177个样本和13个变量的数据框;vintages包含类标签。这些数据是对生长在意大利同一地区但来自三个不同栽培品种的葡萄酒进行化学分析的结果:内比奥罗、巴贝拉和格里格诺葡萄。来自内比奥罗葡萄的葡萄酒被称为巴罗洛。

这些数据包含在三种类型的葡萄酒中各自发现的几种成分的数量。

# 看一下数据head(no)

输出

转换和标准化数据

对数转换和标准化,将所有变量设置在同一尺度上。

# 对数转换no_log <- log(no)# 标准化log_scale <- scale(no_log)head(log_scale)

主成分分析(PCA)

使用奇异值分解算法进行主成分分析

prcomp(log_scale, center=FALSE)summary(PCA)

基本图形(默认设置)

带有基础图形的主成分得分和载荷图

plot(scores[,1:2], # x和y数据pch=21, # 点形状cex=1.5, # 点的大小legend("topright", # legend的位置legend=levels(vint), # 图例显示plot(loadings[,1:2], # x和y数据pch=21, # 点的形状text(loadings[,1:2], # 设置标签的位置

此外,我们还可以在分数图中的组别上添加95%的置信度椭圆。

置信度椭圆图函数

## 椭圆曲线图elev=0.95, # 椭圆概率水平pcol=NULL, # 手工添加颜色,必须满足长度的因素cexsize=1, # 点大小ppch=21, # 点类型,必须满足因素的长度legcexsize=2, # 图例字体大小legptsize=2, # 图例点尺寸## 设定因子水平if(is.factor(factr) {f <- factr} else {f <- factor(factr, levels=unique(as.character(factr)))}intfactr <- as.integer(f) # 设置与因子水平相匹配的整数向量## 获取椭圆的数据edf <- data.frame(LV1 = x, LV2=y, factr = f) # 用数据和因子创建数据框ellipses <- dlply(edf, .(factr), function(x) {Ellipse(LV1, LV2, levels=elev, robust=TRUE, draw=FALSE) #从dataEllipse()函数中按因子水平获取置信度椭圆点})## 获取X和Y数据的范围xrange <- plotat(range(c(as.vector(sapply(ellipses, function(x) x[,1])), min(x), max(x))))## 为图块设置颜色if(is.null(pcol) != TRUE) { # 如果颜色是由用户提供的pgcol <- paste(pcol, "7e", sep="") # 增加不透明度# 绘图图形plot(x,y, type="n", xlab="", ylab="", main=""abline(h=0, v=0, col="gray", lty=2) #在0添加线条legpch <- c() # 收集图例数据的矢量legcol <- c() # 收集图例col数据的向量## 添加点、椭圆,并确定图例的颜色## 图例legend(x=legpos, legend=levels(f), pch=legpch, ## 使用prcomp()函数的PCA输出的轴图示pcavar <- round((sdev^2)/sum((sdev^2))

基础图形

绘制主成分得分图,使用基本默认值绘制载荷图

plot(scores[,1], # X轴的数据scores[,2], # Y轴的数据vint, # 有类的因素pcol=c(), # 用于绘图的颜色(必须与因素的数量相匹配)pbgcol=FALSE, #点的边框是黑色的?cexsize=1.5, # 点的大小 ppch=c(21:23), # 点的形状(必须与因子的数量相匹配)legpos="bottom right", # 图例的位置 legcexsize=1.5, # 图例文字大小legptsize=1.5, # 图例点的大小 axissize=1.5, # 设置轴的文字大小linewidth=1.5 # 设置轴线尺寸)title(xlab=explain[["PC1"]], # PC1上解释的方差百分比ylab=explain[["PC2"]], # PC2解释的方差百分比 main="Scores", # 标题cex.lab=1.5, # 标签文字的大小cex.main=1.5 # 标题文字的大小plot(loadings[,1:2], # x和y数据pch=21, # 点的形状cex=1.5, # 点的大小# type="n", # 不绘制点数axes=FALSE, # 不打印坐标轴xlab="", # 删除x标签ylab="" # 删除y标签)pointLabel(loadings[,1:2], #设置标签的位置labels=rownames(PCAloadings), # 输出标签cex=1.5 # 设置标签的大小) # pointLabel将尝试将文本放在点的周围axis(1, # 显示x轴cex.axis=1.5, # 设置文本的大小lwd=1.5 # 设置轴线的大小)axis(2, # 显示y轴las=2, # 参数设置文本的方向,2是垂直的cex.axis=1.5, # 设置文本的大小lwd=1.5 # 设置轴线的大小)title(xlab=explain[["PC1"]], # PC1所解释的方差百分比ylab=explain[["PC2"]], # PC2解释的方差百分比 cex.lab=1.5, # 标签文字的大小cex.main=1.5 # 标题文字的大小)

最受欢迎的见解

1.matlab偏最小二乘回归(PLSR)和主成分回归(PCR)

2.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析

3.主成分分析(PCA)基本原理及分析实例

4.基于R语言实现LASSO回归分析

5.使用LASSO回归预测股票收益数据分析

6.r语言中对lasso回归,ridge岭回归和elastic-net模型

7.r语言中的偏最小二乘回归pls-da数据分析

8.r语言中的偏最小二乘pls回归算法

9.R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。