利用R语言进行主成分分析的步骤

主成分分析原理:

  1. 数据标准化
  2. 计算相关系数(协方差)矩阵
  3. 求解特征值和相应的特征向量
  4. 计算主成分得分
  5. 绘制主成分散点图
  6. 根据主成分得分的数据,进行分析

首先,导入数据。

library(openxlsx)
data0 = read.xlsx('D:/duoyuan_data/mvexer5.xlsx','E8.4',rowNames=TRUE)
head(data0)

第一步,对数据进行预处理

A <- as.matrix(scale(data0))  #对原始数据进行处理
data <- round(A,4);data #保留四位小数

第二步,计算相关系数矩阵及特征值和特征向量

R <- cor(data);R  #相关系数矩阵
R.e <- eigen(R);R.e  #相关系数阵的特征根与特征向量

第三步,进行主成分分析

  • 确定主成分个数

#使用R自带的princomp包进行主成分分析,默认使用协方差阵求

pca <- princomp(data)
summary(pca)

由上述数据得出的结果可知,前n个主成分的累计方差贡献率为92.41%,大于80%,因此基本可以代表所有指标的信息量。

  • 求出因子载荷矩阵
B <- cor(data, pca$scores)
pca$loadings
options(digits = 4)#保留四位小数

然后根据因子载荷矩阵写出两个主成分分析的表达式以及主成分的含义。

其中主成分Comp.1在国内生产总值、一般预算收入、固定资产投资、外贸进出口、城市居民人均可支配收入的载荷值都很大,可视为总竞争力主成分反映了核心城市的总发展水平;而主成分Comp.2在人均国内生产总值及人均贷款余额上的载荷值很大,可视为人均竞争力主成分反映了核心城市的人均发展水平。

  • 计算主成分得分
pca$scores[,1:2]#只计算前两个主成分即可
options(digits = 4)#保留四位小数
  • 将主成分分析结果可视化
#主成分得分图
plot(PC$scores,asp=1);abline(h=0,v=0,lty=3)

#成分双重信息图
biplot(pca$scores,pca$loadings);abline(h = 0,v = 0,lty = 3)

#树状图
source('C:/Users/hhj/Documents/msaR.R',encoding = "utf-8")
PC = msa.pca(data0,cor = T);PC #在这里可以得到综合得分排名
plot(hclust(dist(scale(data0))))
  • 综合排名
PC$ranks

你可能感兴趣的:(r语言,开发语言,人工智能)