主成分分析中的数据标准化处理与可视化
创作时间:
作者:
@小白创作中心
主成分分析中的数据标准化处理与可视化
引用
CSDN
1.
https://m.blog.csdn.net/2301_79425796/article/details/142710843
主成分分析(PCA)是一种常用的数据降维技术,广泛应用于数据科学和统计学领域。在进行PCA之前,对原始数据进行标准化处理是非常重要的一步。本文将详细介绍为什么需要对数据进行标准化处理,以及如何使用R语言实现这一过程,并通过可视化手段展示标准化后的数据分布情况。
为什么需要对数据进行标准化处理?
在进行主成分分析时,不同变量的量纲不同可能会导致方差较大的变量对结果产生更大的影响。例如,100米赛跑时间的单位为秒,而跳远成绩的单位为米。如果直接将这些变量放入PCA模型中,方差较大的变量可能会主导分析结果,从而影响模型的准确性和可靠性。
为了避免这种情况,我们需要对数据进行标准化处理,使每个变量的平均值为0,标准差为1。这样可以确保所有变量在同一个量级上,具有可比性。
如何使用R语言进行数据标准化处理?
在R语言中,可以使用scale()
函数对数据进行标准化处理。下面是一个具体的示例:
# 使用scale()函数对data.decathlon数据集进行标准化处理,生成新的标准化数据集sac.decathlon
sac.decathlon <- scale(data.decathlon, center = TRUE, scale = TRUE)
# 参数center = TRUE表示对每个变量进行去中心化处理,即每个变量的每个值减去该变量的均值,使数据的均值为0
# 参数scale = TRUE表示对每个变量按标准差进行缩放处理,即将每个变量的每个值除以该变量的标准差,使数据的标准差为1
# 这样处理的目的是消除不同量纲之间的差异,使各个变量在相同的尺度上,便于后续的主成分分析
标准化处理后的数据可以通过head()
函数查看前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))
上述代码将生成标准化后的数据密度图。以下是密度图的解读:
- 横轴 (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,说明曲线是经过适度平滑处理的,以便更好地显示数据的整体趋势。
这张密度图用于直观地检查数据标准化后的分布情况。标准化的目标是消除不同量纲的影响,使得各变量在同一尺度上进行比较。图中呈现出的接近正态分布的形状,表明标准化处理有效地将数据平衡在了同一个尺度上,便于后续进行主成分分析等进一步的多变量分析。
通过观察该密度图,我们可以验证标准化的效果是否符合预期,并为后续的分析提供基础。如果密度分布明显偏斜或有多个峰值,这可能提示我们数据中存在异常值或不同类别的样本,这需要进一步的处理或分类分析。
热门推荐
年轻人不喝白酒了?烟酒批发商面临生死转型
四象星座全解析:从火象到水象的特质与哲学基础
漂亮的梅花鹿
创多项“国内首次”!南沙港四期跻身交通强国建设试点
与阿基米德原理相关的几个科学问题及引发的思考
七大 QC 工具图的定义与示例(看这篇就够了)
360路由器黑名单解除指南
P22合金钢管简介
ASTM A672 钢管:材料特性、等级分类和行业应用指南
被仓鼠、老鼠、兔子等动物咬伤需要打疫苗吗?最全解答来了
Win10玩红警总是卡,如何优化游戏运行速度?
C语言中如何在头文件声明函数
春季必吃6大黄金水果!最推荐吃的竟是它?
岐山臊子肉的做法-陕西臊子肉的做法步骤
经常胃酸过多是什么原因
哪些股票具有投资价值?这些股票的风险评估方法有哪些?
“黄金十年”!贵州GDP增速连续10年位居全国前列!详细信息来了→
朗逸星空百万版跟新款区别
乌克兰重建最新评估:未来十年资金需求预计达5240亿美元
电子处方:改善患者就医体验和提高医疗服务效率
教师如何关爱理解学生
苹果有哪些象征意义及其深远影响?探索苹果的象征性与文化价值
孔子作为商王族后裔,为何“从周”不“从商”?
踝关节扭伤,时间久了仍隐隐作痛,如何康复治疗与训练?请看此文
《易经》中的先天八卦图:描述地球自然环境的智慧结晶
微波器件结构工程师:推动通信技术发展的关键角色
紫苏叶,感冒病毒的克星!怎么使用?有秘诀,还有紫苏梗、苏子...原来都有大用处!
紫苏——感冒、胃病、拉肚子你需要学会用它
智慧科技如何提高蛋鸡养殖的生产效率
从源头到工艺:内毒素控制与去除全解析