最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出。

本文描述了如何 使用R执行主成分分析 ( PCA )。您将学习如何 使用 PCA预测 新的个体和变量坐标。我们还将提供 PCA 结果背后的理论。

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

,时长04:30

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

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

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

可视化

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

演示数据集

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

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

X100m
一个数字向量

跳远
一个数字向量

投篮
一个数字向量

高跳
一个数字向量

X400m
数字向量

X110m.hurdle
一个数字向量

飞碟
一个数字向量

撑杆跳高
一个数字向量

绳索
数字向量

X1500米
数字向量

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


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

运动会
水平变量 Decastar OlympicG

简而言之,它包含:

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

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


head(dec)

计算 PCA

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

  1. 进行可视化
  1. 计算 PCA
prcomp
  1. 可视化 特征值 (碎石图)。显示每个主成分解释的方差百分比。

  1. 具有相似特征的个人被归为一组。
viz(res )

  1. 变量图。正相关变量指向图的同一侧。负相关变量指向图表的相反两侧。
vzpca(res )

  1. 个体和变量的双标图
fvbiplot(res )

PCA 结果

# 特征值
eigva# 变量的结果
coord # 坐标
contrib # 对PC的贡献
cos2 # 代表性的质量
# 个人的结果
coord # 坐标
contrib # 对PC的贡献
cos2 # 代表性的质量 

使用 PCA 进行预测

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

预测个人

  1. 数据:第 24 到 27 行和第 1 到 10 列。新数据必须包含与用于计算 PCA 的活动数据具有相同名称和顺序的列(变量)。
#  预测个体的数据
in <- dec[24:27, 1:10]

  1. 预测新个体数据的坐标。使用 R 基函数 predict ():
predict

  1. 包括补充个人在内的个人图表:
# 活跃个体的图谱
fvca_
# 添加补充个体
fdd(p)

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

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

可以使用下面的 R 代码:


# 对补充个体进行居中和标准化
ined <- scale
# 个体个体的坐标rtaton
ird <- t(apply)

补充变量

定性/分类变量

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

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

groups <- as.factor
fvnd(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)

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


# 预测坐标并计算cos2
quaord <- cor
quaos2 <- qord^2
# 变量的图形,包括补充变量
p <- fviar(reca)
fvdd(p, quord, color ="blue", geom="arrow")

PCA 结果背后的理论

变量的 PCA 结果

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

  • var.coord = 载荷 * 分量标准差
  • var.cos2 = var.coord ^ 2
  • var.contrib. 变量对给定主成分的贡献为(百分比):(var.cos2 * 100)/(成分的总 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 结果

  • 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
# 个人的坐标
#::::::::::::::::::::::::::::::::::
inod <- rpa$x
head(in.c[, 1:4])

# 个人的Cos2
#:::::::::::::::::::::::::::::::::
# 1.个体与#PCA重心之间距离的平方
# PCA重心的平方
ceer<- center
scle<- scaled <- 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])


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

  1. R语言主成分分析PCA和因子分析EFA、主成分(因子)个数、主成分(因子)得分、主成分(因子)旋转(正交旋转、斜交旋转)、主成分(因子)解释

    R语言主成分分析PCA和因子分析EFA.主成分(因子)个数.主成分(因子)得分.主成分(因子)旋转(正交旋转.斜交旋转).主成分(因子)解释 目录

  2. R 语言主成分分析(PCA)实战教程

    作者:落痕的寒假 原文:https://blog.csdn.net/LuohenYJ/article/details/97950522 声明:本文章经原作者同意后授权转载. 主成分分析 Princip ...

  3. r语言实现岭回归_预测分析:R语言实现

    预测分析:R语言实现 作者:(希)鲁伊·米格尔·福特(Rui Miguel Forte) 著 出版日期:2016年10月 文件大小:53.55M 支持设备: ¥40.00仅供试读 适用客户端: 言商书 ...

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

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

  5. 数据分享|R语言关联规则挖掘apriori算法挖掘评估汽车性能数据

    全文链接:http://tecdat.cn/?p=32092 我们一般把一件事情发生,对另一件事情也会产生影响的关系叫做关联.而关联分析就是在大量数据中发现项集之间有趣的关联和相关联系(形如" ...

  6. R语言时间序列(time series)分析实战:简单指数平滑法预测

    R语言时间序列(time series)分析实战:简单指数平滑法预测 目录

  7. R语言时间序列(time series)分析实战:HoltWinters平滑法预测

    R语言时间序列(time series)分析实战:HoltWinters平滑法预测 目录

  8. R语言时间序列(time series)分析实战:霍尔特指数Holt‘s平滑法预测

    R语言时间序列(time series)分析实战:霍尔特指数Holt's平滑法预测 目录

  9. R语言时间序列(time series)分析实战:使用ARIMA模型预测时间序列

    R语言时间序列(time series)分析实战:使用ARIMA模型预测时间序列 目录

最新文章

  1. JavScript中的循环
  2. 【DDS】基于FPGA的DDS研究与设计
  3. 数据结构-----二叉树,树,森林之间的转换
  4. 为了在简历上写掌握【Java虚拟机JVM】,做了该篇总结
  5. Python天天美味(35) - 细品lambda(转)
  6. 能跳过节假日的闹钟_苏宁小Biu智能闹钟体验:聪明好看,别具风格的“小物件”...
  7. 高通900e驱动变9008_技术驱动的治理变得更加聪明
  8. 消灭害虫V1.0 | EliminatePests V1.0
  9. 为员工 尚德机构建教育圈最大期权池
  10. 3.4.3 区域与图像的平均灰度值
  11. Apollo6.0 + lgSVL 联合仿真平台搭建
  12. delphi控制excel ,在指定单元格后插入行
  13. OpenCV38:特征匹配
  14. maven使用c3p0——详细(很详细)
  15. 车载网络测试 - UDS诊断篇 - 故障码(DTC)
  16. 无线专题 wifi、AP、mac、phy、MII 、Ethernet Switch相关概念
  17. 电子计算机在电法勘探中的应用,期末作业—测控技术与仪器专业论文模板.doc...
  18. exew文件加密:利用破解版exe文件加密器对exe文件进行加密保护(图文教程)
  19. 遥感数字图像处理【特征提取】 —— 西安
  20. 2023 299的怀旧QQ直播视频直播间搭建 附软件和教程

热门文章

  1. 数学辅导微信小程序设计与实现的源码+文档
  2. Ubuntu18.04下安装搜狗输入法
  3. 项目质量管理中的新老7工具
  4. iptables白名单
  5. Ubuntu18.04下更改apt源为阿里云源
  6. 中文文件名一键批量转换成英文名称
  7. 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件
  8. 微信小程序--公共组件使用
  9. shiro手机无状态登录访问和电脑端登录访问两种方式处理
  10. 小白学python(爬虫写着玩系列1)