赞
踩
主成分分析是一种数据降维方式,他将大量相关变量转化为一组很少的不相关的变量,这些不相关的变量称为主成分。
人话版:给你发一个由18位数字组成的身份证号码,第1、2位数字表示所在省份的代码;第3、4位数字表示所在城市的代码;第5、6位数字表示所在区县的代码;第7-14位数字表示出生年、月、日;第15-17位数字为顺序码,表示同一区域内同年同月同日出生的顺序号,其中第17位数字表示性别,奇数表示男性,偶数表示女性;第18位数字是校检码,校检码可以是0-9的数字,有时也用x表示,X是罗马数字的10。
这一串数字最后就可以表示你是哪个省的哪个市哪个县,出生日期和性别。
本来关于你的很多信息(变量)抽象成了一串数字(主成分PC),就可以表示你的很多信息了。<==我觉得像是在打包,具体的降维过程和算法参见博客。
在这个数据集USJudgeRatings中,每一行为一个律师,每一列对应着这个律师某一方面的一些评价打分,可以用较少的变量代替上述的列变量吗?大约多少个合适?如何计算呢?
下面使用手肘法和平行分析判断选取多少个PC
library(psych)
fa.parallel(USJudgeRatings[,-1], fa="pc", n.iter=100,
+ show.legend=FALSE, main="Scree plot with parallel analysis")
蓝色线是碎石图,component number等于2的时候是拐点,所以PC=1或者2都可以
红色线是平行分析模拟出来的平均特征值分布曲线,只有component number等于1时,真实数据的特征值才大于模拟数据的特征值,综合来看可以让PC=1.
principal函数可以根据原始矩阵或者相关性系数矩阵做主成分分析,需要注意NA值以及太多的zero值的影响。
旋转是让成分载荷矩阵变得更容易解释的数学方法,它们尽可能地对成分降噪。
目前有两种旋转方法,一是让成分保持不相关(正交旋转),二是让他们变得相关(斜交相关)。
最流行的是正交旋转中的方差最大旋转法,即让每一列的载荷只有很大的几个载荷,其他都是很小的载荷
因为需要正交旋转,上述的数据集只有一个PC不好演示,我们换一个数据集。
Harman23.cor 数据集中的cov数据槽是一个305名女孩的身体指标的相关性系数矩阵。
fa.parallel(Harman23.cor$cov, n.obs=302, fa="pc", n.iter=100,
show.legend=FALSE, main="Scree plot with parallel analysis")
不进行旋转
PC1 = 0.86 * height + 0.84 * arm.span …
PC2 = -0.37 * height -0.44 * arm.span … + 0.58 * chest.girth + 0.42 * chest.width
PC1 与 PC2 可以解释身高 heigh 88%的方差
proportion var 列表示 PC1 可以解释数据集 58%的方差,PC2 可以解释数据集 22%的方差,累加一起81%
进行旋转
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。