原文链接:http:///?p=25067本文描述了如何 使用R执行主成分分析 ( PCA )。您将学习如何 使用 PCA_预测_ 新的个体和变量坐标。我们还将提供 _PCA 结果_背后的理论。 在 R 中执行 PCA 有两种通用方法:
根据 R 的帮助,SVD 的数值精度稍好一些。 可视化创建基于 ggplot2 的优雅可视化。 演示数据集我们将使用运动员在十项全能中的表现数据集(查看文末了解数据获取方式),这里使用的数据描述了运动员在两项体育赛事中的表现 数据描述: X100m 跳远 投篮 高跳 X400m X110m.hurdle 飞碟 撑杆跳高 绳索 X1500米 级别 点 运动会 简而言之,它包含:
加载数据并仅提取训练的个体和变量: head(dec)计算 PCA在本节中,我们将可视化 PCA。
点击标题查阅往期内容 R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题) 左右滑动查看更多
PCA 结果# 特征值eigva # 变量的结果 coord # 坐标 contrib # 对PC的贡献 cos2 # 代表性的质量 # 个人的结果 coord # 坐标 contrib # 对PC的贡献 cos2 # 代表性的质量 使用 PCA 进行预测在本节中,我们将展示如何仅使用先前执行的 PCA 提供的信息来预测补充个体和变量的坐标。 预测个人
in <- dec\[24:27, 1:10\]
fvca_ # 添加预测个体 fdd(p) 个体的预测坐标可以计算如下:
可以使用下面的 R 代码: # 对预测个体进行标准化ined <- scale # 个体个体的坐标 rtaton ird <- t(apply) 补充变量定性/分类变量 数据集 在第 13 列包含与比赛类型相对应的 补充定性变量 。 定性/分类变量可用于按组为样本着色。分组变量的长度应与训练个体的数量相同。 groups <- as.factorfvnd(res.pca ) 计算分组变量水平的坐标。给定组的坐标计算为组中个体的平均坐标。 library(magrittr) # 管道函数%>%。# 1. 单个坐标 getind(res) # 2. 组的坐标 coord %>% > as\_data\_frame%>% selec%>% mutate%>% group_b %>% 定量变量数据:11:12 栏。应与训练个体的数量相同(此处为 23) quup <- dec\[1:23, 11:12\]head(quup .sup) 给定定量变量的坐标被计算为定量变量与主成分之间的相关性。 # 预测坐标并计算cos2quaord <- cor quaos2 <- qord^2 # 变量的图形,包括补充变量 p <- fviar(reca) fvdd(p, quord, color ="blue", geom="arrow") PCA 结果背后的理论变量的 PCA 结果在这里,我们将展示如何计算变量的 PCA 结果:坐标、cos2 和贡献:
#:::::::::::::::::::::::::::::::::::::::: logs <- rotation sdev <- sdev vad <- t(apply)# 计算 Cos2 #:::::::::::::::::::::::::::::::::::::::: vaos2 <- vard^2 head(vars2\[, 1:4\])# 计算贡献 #:::::::::::::::::::::::::::::::::::::::: comos2 <- apply cnrib <- function var.otrb <- t(apply) head(vaib\[, 1:4\]) PCA 结果
#:::::::::::::::::::::::::::::::::: inod <- rpa$x head(in.c\[, 1:4\])# 个人的Cos2 #::::::::::::::::::::::::::::::::: # 1.个体与#PCA重心之间距离的平方 # PCA重心的平方 ceer<- center scle<- scale d <- apply(decaive,1,gnce, center, scale) # 2. 计算cos2。每一行的总和为1 is2 <- apply(inrd, 2, cs2, d2) head(is2\[, 1:4\])# 个人的贡献 #::::::::::::::::::::::::::::::: inib <- t(apply(iord, 1, conib, sdev, nrow)) head(inib\[, 1:4\]) 数据获取 |
|