主成分分析步骤(基于R)

主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。又称主分量分析

基本思想

主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。
主成分分析,是考察多个变量间相关性一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始变量的信息,且彼此间互不相关.通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标
最经典的做法就是用F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即Var(F1)越大,表示F1包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1, F2)=0,则称F2为第二主成分,依此类推可以构造出第三、第四,……,第P个主成分。

 

基本案例

library(psych)


# 读取样本数据
mydata <- read.csv("file.txt", header=F)
mydata2 <- read.csv("file.txt", header=F, sep=',', na.string="NULL", skip=0, nrows=100);

 

 

# 计算最优主成分个数
mydata.screePlotsModel <- fa.parallel(mydata, fa="pc", n.iter=100, show.legend=F, main="崖底碎石图");
# 主成分个数
n=mydata.screePlotsModel$ncomp;

# 主成分分析函数 模型
mydata.pr <- princomp(mydata, scores=T, cor = TRUE)
#勾画碎石头
screeplot(mydata.pr,type="line",mian="碎石图",lwd=2)

# 计算样本数据的成分值
pre <- predict(mydata.pr,mydata)
pre2 <- predict(mydata.pr,mydata2)
pre2[,1:n]

 

 

posted @ 2014-05-09 15:03  subsir  阅读(13171)  评论(0编辑  收藏  举报