R语言与数据分析:主成分分析
作为数据分析师,有很多刚刚接触数据分析师的朋友,还不怎么了解主成分分析,看看这两篇,你就搞懂主成分分析了。
第一篇:主成份分析历史
Pearson于1901年提出,再由Hotelling(1933)加以发展的一种多变量统计方法。通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目,可以使用样本协方差矩阵或相关系数矩阵作为出发点进行分析。
通过对原始变量进行线性组合,得到优化的指标:把原先多个指标的计算降维为少量几个经过优化指标的计算(占去绝大部分份额)
基本思想:设法将原先众多具有一定相关性的指标,重新组合为一组新的互相独立的综合指标,并代替原先的指标。
成分的保留:Kaiser主张(1960)将特征值小于1的成分放弃,只保留特征值大于1的成分。
接下来以小学生基本生理属性为案例分享下R语言的具体实现,分别选取身高(x1)、体重(x2)、胸围(x3)和坐高(x4)。具体如下:
student<- data.frame( x1=c(148,139,160,149,159,142,153,150,151), x2=c(41 ,34 , 49 ,36 ,45 ,31 ,43 ,43,
42), x3=c(72 ,71 , 77 ,67 ,80 ,66 ,76 ,77,77), x4=c(78 ,76 , 86 ,79 ,86 ,76 ,83 ,79 ,80)
) student.pr <- princomp(student,cor=TRUE) summary(student.pr,loadings=TRUE) screeplot(student.pr,type="
lines")
结果如截图:
由上图可见四项指标做分析后,给出了4个成分,他们的重要性分别为:0.887932、0.08231182、0.02393843、0.005817781,累积贡献为:0.887932、0.97024379、
0.99418222 1.000000000各个成分的碎石图也如上,可见成份1和成份2的累积贡献已经达到95%,因此采用这两个成份便可充分解释学生的基本信息。
我们可以通过R自动算出各主成份的值,并画出散点图:
temp<-predict(student.pr)
plot(temp[,1:2])
结果如图:
观察如图可见两个成分的分离度很高,比较理想。
第二篇: 主成分分析(principal component analysis,PCA)是一种降维技术,把多个变量化为能够反映原始变量大部分信息的少数几个主成分。
设X有p个变量,为n*p阶矩阵,即n个样本的p维向量。首先"数据分析师"对X的p个变量寻找正规化线性组合,使它的方差达到最大,这个新的变量称为第一主成分,抽取第一主成分后,第二主成分的抽取方法与第一主成分一样,依次类推,直到各主成分累积方差达到总方差的一定比例。
主成分分析的计算步骤:
假设样本观测数据矩阵为:
X=(x1,x2,x3,…xp),xi为n个样本在第i个属性上的观测值,是一个列向量
1.对原始数据标准化处理(0均值化处理)
2.计算样本相关系数矩阵
3.计算协方差矩阵的特征值和特征向量
4、选择重要的主成分,并写出主成分表达式
5.计算主成分得分
6.根据主成分得分的数据,做进一步的统计分析。
主成分分析可以得到p个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,一般不是选取p个主成分,而是根据各个主成分累计贡献率的大小选取前k个主成分,这里贡献率就是指某个主成分的方差占全部方差的比重,实际也就是某个特征值占全部特征值总和的比重。贡献率越大,说明该主成分所包含的原始变量的信息越强。主成分个数k的选取,主要根据主成分的累积贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量能包括原始变量的绝大多数信息。
另外,数据分析师在实际应用中,选择了重要的主成分后,还要注意主成分实际含义解释。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。一般而言,这个解释"数据分析师"是根据主成分表达式的系数结合定性分析来进行的。主成分是原来变量的线性组合,在这个线性组合中个变量的系数有大有小,有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性的作用,线性组合中各变量系数的绝对值大者表明该主成分主要综合了绝对值大的变量,有几个变量系数大小相当时,应认为这一主成分是这几个变量的总和,这几个变量综合在一起应赋予怎样的实际意义,这要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的 。
在R里手工统计过程如下:
> #数据集
> y=USArrests
> #相关矩阵
> c=cor(y)
> #特征值
> e=eigen(c)
> e
$values #特征值
[1] 2.4802416 0.9897652 0.3565632 0.1734301
$vectors 特征向量,也就是主成分的表达式
[,1] [,2] [,3] [,4]
[1,] -0.5358995 0.4181809 -0.3412327 0.64922780
[2,] -0.5831836 0.1879856 -0.2681484 -0.74340748
[3,] -0.2781909 -0.8728062 -0.3780158 0.13387773
[4,] -0.5434321 -0.1673186 0.8177779 0.08902432
> # 计算标准化的主成分得分
> scale( as.matrix(y))%*%e$vector
[,1] [,2] [,3] [,4]
Alabama -0.97566045 1.12200121 -0.43980366 0.154696581
Alaska -1.93053788 1.06242692 2.01950027 -0.434175454
Arizona -1.74544285 -0.73845954 0.05423025 -0.826264240
Arkansas 0.13999894 1.10854226 0.11342217 -0.180973554
…..
West Virginia 2.08739306 1.41052627 0.10372163 0.130583080
Wisconsin 2.05881199 -0.60512507 -0.13746933 0.182253407
Wyoming 0.62310061 0.31778662 -0.23824049 -0.164976866
R中下面两个函数可以用做主成分分析
princomp(x, cor = FALSE, scores = TRUE, covmat = NULL,
subset = rep(TRUE, nrow(as.matrix(x))), …)
cor =TRUE 是使用相关矩阵求主成分,否则使用协方差矩阵。
prcomp(x, retx = TRUE, center = TRUE, scale. = FALSE,
tol = NULL, …)
scale =TRUE 即使用相关矩阵求主成分夬否则使用协方差矩阵
求主成分。
> # prcomp() 的用法
> p=prcomp(USArrests, scale=T)
> p
Standard deviations:
[1] 1.5748783 0.9948694 0.5971291 0.4164494
Rotation:
PC1 PC2 PC3 PC4
Murder -0.5358995 0.4181809 -0.3412327 0.64922780
Assault -0.5831836 0.1879856 -0.2681484 -0.74340748
UrbanPop -0.2781909 -0.8728062 -0.3780158 0.13387773
Rape -0.5434321 -0.1673186 0.8177779 0.08902432
> summary(p)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.5749 0.9949 0.59713 0.41645
Proportion of Variance 0.6201 0.2474 0.08914 0.04336
Cumulative Proportion 0.6201 0.8675 0.95664 1.00000
#计算标准化的主成分得分
> predict(p)cda数据分析师培训
结果和手工统计的一样。
数据分析咨询请扫描二维码
CDA数据分析师认证:CDA认证分为三个等级:Level Ⅰ、Level Ⅱ和Level Ⅲ,每个等级的报考条件如下: Le ...
2024-11-14自学数据分析可能是一条充满挑战却又令人兴奋的道路。随着数据在现代社会中的重要性日益增长,掌握数据分析技能不仅能提升你的就 ...
2024-11-14数据分析相关职业选择 数据分析领域正在蓬勃发展,为各种专业背景的人才提供了丰富的职业机会。从初学者到有经验的专家,每个人 ...
2024-11-14数据挖掘与分析在金融行业的使用 在当今快速发展的金融行业中,数据挖掘与分析的应用愈发重要,成为驱动行业变革和提升竞争力的 ...
2024-11-14学习数据挖掘需要掌握哪些技能 数据挖掘是一个不断发展的领域,它结合了统计学、计算机科学和领域专业知识,旨在从数据中提取有 ...
2024-11-14统计学作为一门基于数据的学科,其广泛的应用领域和多样的职业选择,使得毕业生拥有丰厚的就业前景。无论是在政府还是企业,统计 ...
2024-11-14在当今高速发展的技术环境下,企业正在面临前所未有的机遇和挑战。数字化转型已成为企业保持竞争力和应对市场变化的必由之路。要 ...
2024-11-13爬虫技术在数据分析中扮演着至关重要的角色,其主要作用体现在以下几个方面: 数据收集:爬虫能够自动化地从互联网上抓取大量数 ...
2024-11-13在数据分析中,数据可视化是一种将复杂数据转化为图表、图形或其他可视形式的技术,旨在通过直观的方式帮助人们理解数据的含义与 ...
2024-11-13在现代银行业中,数字化用户行为分析已成为优化产品和服务、提升客户体验和提高业务效率的重要工具。通过全面的数据采集、深入的 ...
2024-11-13在这个数据飞速增长的时代,企业若想在竞争中占据优势,必须充分利用数据分析优化其营销策略。数据不仅有助于理解市场趋势,还可 ...
2024-11-13数据分析行业的就业趋势显示出多个积极的发展方向。随着大数据和人工智能技术的不断进步,数据分析在各行各业中的应用变得越来越 ...
2024-11-13市场数据分析是一门涉及多种技能和工具的学科,对企业在竞争激烈的市场中保持竞争力至关重要。通过数据分析,企业不仅可以了解当 ...
2024-11-13数据分析与数据挖掘是数据科学领域中两个关键的组成部分,它们各有独特的目标、方法和应用场景。尽管它们经常在实际应用中结合使 ...
2024-11-13在如今这个数据驱动的时代,数据分析能力已经成为许多行业的重要技能。无论是为工作需要,还是为了职业转型,掌握数据分析都能够 ...
2024-11-13在如今这个数据驱动的时代,数据分析能力已经成为许多行业的重要技能。无论是为工作需要,还是为了职业转型,掌握数据分析都能够 ...
2024-11-13作为一名业务分析师,你肩负着将业务需求转化为技术解决方案的重任。面试这一角色时,涉及的问题多种多样,涵盖技术技能、分析能 ...
2024-11-13自学数据分析可能看似一项艰巨的任务,尤其在开始时。但是,通过一些策略和方法,你可以系统地学习和掌握数据分析的相关知识和技 ...
2024-11-10Excel是数据分析领域中的一款强大工具,它凭借其灵活的功能和易用的界面,成为了许多数据分析师和从业者的首选。无论是简单的数 ...
2024-11-10在快速发展的商业环境中,数据分析能力已经成为许多行业的核心竞争力。无论是初学者还是经验丰富的专家,搭建一个有效的数据分析 ...
2024-11-10