R语言 PCA
转自:http://www.cnblogs.com/longzhongren/p/4300593.html1、关键点
综述:主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对数据降维处理的从数据中提取某些公共部分,然后对这些公共部分进行分析和处理。
#主成分分析 是将多指标化为少数几个综合指标的一种统计分析方法
主成分分析是一种通过降维技术把多个变量化成少数几个主成分的方法,这些主成分能够反映原始变量的大部分信息,他们通常表示为原始变量的线性组合。
2、函数总结
#R中作为主成分分析最主要的函数是princomp()函数
#princomp()主成分分析 可以从相关阵或者从协方差阵做主成分分析
#summary()提取主成分信息
#loadings()显示主成分分析或因子分析中载荷的内容
#predict()预测主成分的值
#screeplot()画出主成分的碎石图
#biplot()画出数据关于主成分的散点图和原坐标在主成分下的方向
3、案例
#现有30名中学生身高、体重、胸围、坐高数据,对身体的四项指标数据做主成分分析。
#1.载入原始数据
test<-data.frame(
X1=c(148, 139, 160, 149, 159, 142, 153, 150, 151, 139,
140, 161, 158, 140, 137, 152, 149, 145, 160, 156,
151, 147, 157, 147, 157, 151, 144, 141, 139, 148),
X2=c(41, 34, 49, 36, 45, 31, 43, 43, 42, 31,
29, 47, 49, 33, 31, 35, 47, 35, 47, 44,
42, 38, 39, 30, 48, 36, 36, 30, 32, 38),
X3=c(72, 71, 77, 67, 80, 66, 76, 77, 77, 68,
64, 78, 78, 67, 66, 73, 82, 70, 74, 78,
73, 73, 68, 65, 80, 74, 68, 67, 68, 70),
X4=c(78, 76, 86, 79, 86, 76, 83, 79, 80, 74,
74, 84, 83, 77, 73, 79, 79, 77, 87, 85,
82, 78, 80, 75, 88, 80, 76, 76, 73, 78)
)
#2.作主成分分析并显示分析结果
test.pr<-princomp(test,cor=TRUE) #cor是逻辑变量当cor=TRUE表示用样本的相关矩阵R做主成分分析
当cor=FALSE表示用样本的协方差阵S做主成分分析
summary(test.pr,loadings=TRUE) #loading是逻辑变量当loading=TRUE时表示显示loading 的内容
#loadings的输出结果为载荷是主成分对应于原始变量的系数即Q矩阵
分析结果含义
#----Standard deviation 标准差 其平方为方差=特征值
#----Proportion of Variance 方差贡献率
#----Cumulative Proportion 方差累计贡献率
#由结果显示 前两个主成分的累计贡献率已经达到96% 可以舍去另外两个主成分 达到降维的目的
因此可以得到函数表达式 Z1=-0.497X'1-0.515X'2-0.481X'3-0.507X'4
Z2= 0.543X'1-0.210X'2-0.725X'3-0.368X'4
#4.画主成分的碎石图并预测
screeplot(test.pr,type="lines")
p<-predict(test.pr)
由碎石图可以看出 第二个主成分之后 图线变化趋于平稳 因此可以选择前两个主成分做分析