R语言主成分分析PCA谱分解、奇异值分解SVD预测分析运动员表现数据和降维可视化

本文描述了如何 使用内置 R 执行主成分分析 ( PCA )。

由Kaizong Ye,Liao Bao撰写

您将学习如何 使用 PCA_预测_ 新的个体和变量坐标。我们还将提供 _PCA 结果_背后的理论。

在 R 中执行 PCA 有两种通用方法:

  • 谱分解 ,检查变量之间的协方差/相关性
  • 检查个体之间的协方差/相关性的_奇异值分解_

根据 R 的帮助,SVD 的数值精度稍好一些。

可视化

创建基于 ggplot2 的优雅可视化。

演示数据集

我们将使用运动员在十项全能中的表现数据集,这里使用的数据描述了运动员在两项体育赛事中的表现 

数据描述:
一个数据框,包含以下13个变量的27个观测值。

X100m
一个数字向量

跳远
一个数字向量

投篮
一个数字向量

高跳
一个数字向量

X400m
数字向量

X110m.hurdle
一个数字向量

飞碟
一个数字向量

撑杆跳高
一个数字向量

绳索
数字向量

X1500米
数字向量

级别
与等级相对应的数字向量


一个数字向量,指定获得的点数

运动会
水平变量 Decastar OlympicG

简而言之,它包含:

  • 训练个体(第 1 到 23 行)和训练变量(第 1 到 10 列),用于执行主成分分析
  • 预测个体(第 24 至 27 行)和预测变量(第 11 至 13 列),其坐标将使用 PCA 信息和通过训练个体/变量获得的参数进行预测。

加载数据并仅提取训练的个体和变量:


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

计算 PCA

在本节中,我们将可视化 PCA。

  • 进行可视化
  • 计算 PCA
  • 可视化 特征值 (_碎石图_)。显示每个主成分解释的方差百分比。
  • 具有相似特征的个人被归为一组。

R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据

阅读文章


  • 变量图。正相关变量指向图的同一侧。负相关变量指向图表的相反两侧。
  • 个体和变量的双标图


随时关注您喜欢的主题


PCA 结果

使用 PCA 进行预测

在本节中,我们将展示如何仅使用先前执行的 PCA 提供的信息来预测补充个体和变量的坐标。

预测个人

  • 数据:第 24 到 27 行和第 1 到 10 列。新数据必须包含与用于计算 PCA 的活动数据具有相同名称和顺序的列(变量)。
  • 预测新个体数据的坐标。使用 R 基函数 predict ():
  • 包括补充个人在内的个人图表:

个体的预测坐标可以计算如下:

  • 使用 PCA 的中心和比例对新的个人数据进行中心化和标准化
  • 通过将标准化值与主成分的特征向量(载荷)相乘来计算预测坐标。

可以使用下面的 R 代码:

补充变量

定性/分类变量

数据集 在第 13 列包含与比赛类型相对应的 补充定性变量 。

定性/分类变量可用于按组为样本着色。分组变量的长度应与活跃个体的数量相同。

计算分组变量水平的坐标。给定组的坐标计算为组中个体的平均坐标。

数据:11:12 栏。应与活跃个体的数量相同(此处为 23)

定量变量

给定定量变量的坐标被计算为定量变量与主成分之间的相关性。

PCA 结果背后的理论

变量的 PCA 结果

在这里,我们将展示如何计算变量的 PCA 结果:坐标、cos2 和贡献:

  • var.coord = 载荷 * 分量标准差
  • var.cos2 = var.coord ^ 2
  • var.contrib. 变量对给定主成分的贡献为(百分比):(var.cos2 * 100)/(成分的总 cos2)

PCA 结果

  • ind.coord = res.pca$x
  • 个人的 Cos2。两步:
  • 计算每个个体与 PCA 重心之间的平方距离:d2 = [(var1\_ind\_i – mean\_var1)/sd\_var1]^2 + …+ [(var10\_ind\_i – mean\_var10)/sd\_var10]^2 + …+..
  • 将 cos2 计算为 ind.coord^2/d2
  • 个人对主成分的贡献:100 (1 / number\_of\_individuals)(ind.coord^2 / comp_sdev^2)。请注意,每列所有贡献的总和为 100

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds