下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5860字)。
认识主成分分析的原始数据的标准化
由于不同变量的量纲不同,例如100米赛跑时间的单位为秒,而跳远成绩的单位为米,直接将这些变量放入PCA模型中会导致方差较大的变量对结果有更大的影响。为了避免这种情况,我们对数据进行标准化处理,使每个变量的平均值为0,标准差为1。这样可以确保所有变量在同一个量级上,具有可比性。
可以通过R的scale()
函数来对数据进行标准化处理:
# 使用scale()函数对data.decathlon数据集进行标准化处理,生成新的标准化数据集sac.decathlon
sac.decathlon <- scale(data.decathlon, center = TRUE, scale = TRUE)
# 参数center = TRUE表示对每个变量进行去中心化处理,即每个变量的每个值减去该变量的均值,使数据的均值为0
# 参数scale = TRUE表示对每个变量按标准差进行缩放处理,即将每个变量的每个值除以该变量的标准差,使数据的标准差为1
# 这样处理的目的是消除不同量纲之间的差异,使各个变量在相同的尺度上,便于后续的主成分分析
参看前10行的情况
head(sac.decathlon,10)
结果为:
X100m Long.jump Shot.put High.jump X400m X110m.hurdle Discus Pole.vault
SEBRLE 0.16961999 0.7309898 0.34273202 0.7516136 0.51314871 0.41119004 -0.31969777 0.70789965
CLAY -0.82443206 0.1195250 -0.33874677 -1.4451128 0.06291188 -0.94999079 1.70943959 0.32409863
BERNARD 0.09861628 -0.4579695 -0.35070253 -0.8174767 -0.38732495 1.04924356 -1.15813616 1.85930269
YURKOV 1.23467576 -0.9335532 0.77313968 1.0654317 1.13734067 1.72983397 0.41102458 -0.44350339
ZSIVOCZKY 0.48913672 -0.2201776 -1.27129669 0.1239775 -0.70453726 -0.69476938 0.23926116 -1.59490643
McMULLEN -0.57591905 -0.1862074 -0.93653518 1.3792498 0.61547526 -0.24813192 -0.12755563 -1.59490643
MARTINEAU 2.29973153 -1.8847206 0.03188205 -0.5036586 0.85082633 0.92163285 0.80113133 0.32409863
HERNU 1.34118134 0.6630493 -0.15941024 -1.4451128 1.83316122 1.19812271 0.04129654 -0.05970238
BARRAS 1.19917390 -1.3411964 -0.54199483 -0.5036586 0.17547109 -0.03544742 -0.80005309 -0.44350339
NOOL 1.19917390 -0.3220884 -2.22775815 -0.1898406 -0.11104326 1.68729707 -2.01695326 -0.82730441
Javeline X1500m
SEBRLE 0.9313823 1.2914594
CLAY 0.3502507 2.2516981
BERNARD 0.8510944 0.1548503
YURKOV 0.9791728 -0.2076888
ZSIVOCZKY -0.5635022 -1.0307506
McMULLEN -0.3723405 0.6447680
MARTINEAU -1.1446338 -1.6088535
HERNU -0.2155879 0.6447680
BARRAS -0.5577674 0.3410190
NOOL -0.1677975 -1.1679275
为了更好地了解标准化后的数据分布,我们可以使用plot()
函数结合density()
函数来呈现数据的密度分布:
plot(density(sac.decathlon))
上述代码将标准化后的数据进行可视化,生成密度图。
上图是标准化后的数据集 sac.decathlon
的密度曲线图。它展示了数据集中所有变量的标准化后值的密度分布。
横轴 (X 轴) 表示标准化后的数据值。标准化后的数据均值为 0,标准差为 1,因此横轴上显示的是标准化后的标准分数 (z-scores),范围大致在 -3 到 3 之间。这些分数表示标准化后各变量相对于其均值的偏离程度,例如,-1 表示数据点比均值低一个标准差,而 2 表示数据点比均值高两个标准差。
纵轴 (Y 轴) 表示密度 (Density),表示每个标准化值附近的概率密度。这个密度的目的是描述数据在各个标准化值区域的分布情况。纵轴的数值可以理解为某个标准化值的频率的相对比例,但不是绝对频率。
曲线的形状 图中的密度曲线呈现出一个单峰的钟形,类似于标准正态分布。这表明标准化后的数据大致符合正态分布,数据集中大多数标准化值集中在 0 附近,表示大部分运动员的表现接近平均水平。两侧逐渐下降的曲线则代表有较少的运动员表现明显优于或低于平均水平。
峰值 密度曲线的峰值位于接近 0 的位置,表示大多数数据点集中在标准化后的均值附近。这符合标准化处理的预期,说明数据的中心位置在 0,且经过缩放后,变量的分布较为对称。
宽度 曲线的宽度表示数据的离散程度,数据分布越宽,表明标准化后的数据离散程度越大;越窄则表明数据的集中程度更高。从图中可以看到,数据集中约 95% 的值位于 -2 和 2 之间,这也符合标准正态分布的 95% 范围。
另外,N = 270 表示数据集中总共有 270 个观测值(27 个运动员 × 10 个变量)。Bandwidth = 0.2821: 表示密度估计时使用的带宽 (bandwidth) 参数。带宽控制了密度曲线的平滑程度,值越小曲线越细致,值越大曲线越平滑。在此图中,带宽的值为 0.2821,说明曲线是经过适度平滑处理的,以便更好地显示数据的整体趋势。
这张密度图用于直观地检查数据标准化后的分布情况。标准化的目标是消除不同量纲的影响,使得各变量在同一尺度上进行比较。图中呈现出的接近正态分布的形状,表明标准化处理有效地将数据平衡在了同一个尺度上,便于后续进行主成分分析等进一步的多变量分析。
通过观察该密度图,我们可以验证标准化的效果是否符合预期,并为后续的分析提供基础。如果密度分布明显偏斜或有多个峰值,这可能提示我们数据中存在异常值或不同类别的样本,这需要进一步的处理或分类分析。
在这里,你学到的并非仅仅是 R 的某一个技巧,而是能够从零开始,深入且系统地学习 R 语言。此外,本专栏每周至少定期更新三篇文章,每篇文章篇幅均在 5000 字以上。而且,对于已经发表的知识点,我们也会根据新的技术或理解及时进行更新,这是纸质版图书无法做到的。为了让更多的忠实粉丝和同学们享受到实惠,本专栏采用折扣定价策略。随着章节的不断完成,折扣力度会逐渐减小。所以,现在正是订阅的最佳时机!
https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482
第一章:认识数据科学和R
1章1节:数据科学的发展历程,何 R 备受青睐及我们专栏的独特之处(更新20240822)-CSDN博客
1章2节:关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究 (更新20240814)-CSDN博客
1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客
1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客
第二章:R的安装和数据读取
2章1节:R和RStudio的下载和安装(Windows 和 Mac)_rst语言选择哪个镜像-CSDN博客
2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客
2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20240823)_rstudio如何使用-CSDN博客
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
2章5节:认识和安装R的扩展包,什么是模糊搜索安装,工作目录和空间的区别与设置(更新20240807 )-CSDN博客
2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(更新20240807 )_r语言 复制数据集-CSDN博客
2章7节:读写RDS,CSV,TXT,Excel,SPSS、SAS、Stata、Minitab等的数据文件(更新20240807)_r语言读取rds文件-CSDN博客
2章8节:一文学会 R Markdown 的文档核心操作,切记文末有R资源的分享_r markdown文件(.rmd)-CSDN博客
2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客
2章10节:用 R 直接下载并分析 NHANES 数据库的数据,文末示例自创便捷下载函数(更新20240807)_nhanes数据分析-CSDN博客
第三章:认识数据
3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客
3章2节:继续讲R的数据结构,数组、数据框和列表-CSDN博客
3章3节:R的赋值操作与算术运算_r里面的赋值-CSDN博客
第四章:数据的预处理
4章1节:全面了解 R 中的数据预处理,通过 R 基本函数实施数据查阅_r数据预处理-CSDN博客
4章2节:从排序到分组和筛选,通过 R 的 dplyr 扩展包来操作-CSDN博客
4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南-CSDN博客
4章4节:临床数据科学中如何用R来进行缺失值的处理_临床生存分析缺失值r语言-CSDN博客
4章5节:数据科学中的缺失值的处理,删除和填补的选择,K最近邻填补法-CSDN博客
4章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客
4章7节:用R做数据重塑,数据去重和数据的匹配-CSDN博客
4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客
4章9节:用R做数据重塑,增加变量和赋值修改,和mutate()函数的复杂用法_r语言如何在数据集中添加变量-CSDN博客
4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍-CSDN博客
4章11节:用R做数据重塑,数据的特征缩放和特征可视化-CSDN博客
4章12节:R语言中字符串的处理,正则表达式的基础要点和特殊字符-CSDN博客
4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客
4章14节:R语言中字符串的处理,提取替换,分割连接和填充插值_r语言替换字符串-CSDN博客
4章15节:字符串处理,提取匹配的相关操作扩展,和Stringr包不同函数的重点介绍和举例-CSDN博客
4章16节:R 语言中日期时间数据的关键处理要点_r语言 时刻数据-CSDN博客
第五章:定量数据的统计描述
5章1节:用R语言进行定量数据的统计描述,文末有众数的自定义函数-CSDN博客
5章2节:离散趋势的描述,文末1个简单函数同时搞定20个结果-CSDN博客
5章3节:在R语言中,从实际应用的角度认识假设检验-CSDN博客
5章4节:从R语言的角度认识正态分布与正态性检验-CSDN博客
5章5节:认识方差和方差齐性检验(三种方法全覆盖)-CSDN博客
5章9节:组间差异的非参数检验,Wilcoxon秩和检验和Kruskal-Wallis检验-CSDN博客
第六章:定性数据的统计描述
6章1节:定性数据的统计描述之列联表,文末有优势比计算介绍-CSDN博客
6章2节:认识birthwt数据集,EpiDisplay和Gmodels扩展包的应用-CSDN博客
6章3节:独立性检验,卡方检验,费希尔精确概率检验和Cochran-Mantel-Haenszel检验-CSDN博客
6章4节:相关关系和连续型变量的Pearson相关分析-CSDN博客
6章5节:分类型变量的Spearman相关分析,偏相关分析和相关图分析-CSDN博客
6章6节:相关图的GGally扩展包,和制表的Tableone扩展包-CSDN博客
第七章:R的传统绘图
7章1节:认识R的传统绘图系统,深度解析plot()函数和par()函数的使用-CSDN博客
7章2节:R基础绘图之散点图、直方图和概率密度图-CSDN博客
7章5节:散点矩阵图,与小提琴图、Cleveland 点图、马赛克图和等高图-CSDN博客
7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客
第八章:R的进阶绘图
8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客
8章2节:深度讲解 ggplot2 的绘图步骤,理解其核心逻辑, 和 ggplot()函数-CSDN博客
8章3节:用R来绘制医学地理图,文末有具体完整代码-CSDN博客
8章4节:维恩图的认识与应用,和使用UpSet图-CSDN博客
8章8节:绘制自定义的高质量动态图和交互式动态图-CSDN博客
第九章:临床试验的统计
9章4节:两组例数相同的均数比较的样本量估计和绘制功效曲线-CSDN博客
9章5节:两组的例数不等的均数比较的样本量估计和可视化-CSDN博客
9章6节:自身配对设计的均数比较临床试验的样本量估计和可视化-CSDN博客
9章8节: 两、三组试验组率比较的样本量估算和可视化-CSDN博客
9章9节:试验的随机分组认识,用R做简单随机化-CSDN博客
9章11节:用R实现区组随机化和置换区组随机化-CSDN博客
9章12节:动态随机化方法介绍,和用R绘制随机化卡片-CSDN博客
第十章:Meta分析攻略
10章1节:认识循证医学中的Meta分析,并予代码演示分析绘图-CSDN博客
10章2节:Meta分析的7大步骤的扼要解读-CSDN博客
10章3节:二分类变量的Meta分析模型,分析公式构建和结果解读-CSDN博客
10章4节:二分类变量的Meta分析模型,绘制漏斗图和应用剪补法,最后绘制和解读轮廓增强漏斗图-CSDN博客
10章5节:二分类变量的Meta分析模型,敏感性分析和亚组分析,绘制森林图-CSDN博客
10章6节:连续型变量的Meta分析和可视化分析全解-CSDN博客
第十一章:主成分分析
11章2节:深度讲解用R进行主成分分析(中)-CSDN博客
11章3节:深度讲解用R进行主成分分析(下)-CSDN博客
第十二章:常见类型回归分析