【转】R语言主成分分析(PCA)

https://www.cnblogs.com/jin-liang/p/9064020.html

数据的导入

> data=read.csv(‘F:/R语言工作空间/pca/data.csv‘) #数据的导入
>
> ls(data) #ls()函数列出所有变量
[1] "X" "不良贷款率" "存贷款比率" "存款增长率" "贷款增长率" "流动比率" "收入利润率"
[8] "资本充足率" "资本利润率" "资产利润率"
> dim(data) # 维度
[1] 15 10

一.数据标准化

> std_data=scale(data[2:10])  #数据标准化
>
> rownames(std_data)=data[[1]]  #数组各行名字定义为数据文件的的第一列
>
> class(std_data)   #查看数据类型
[1] "matrix"
> df=as.data.frame(std_data)   #转化为数据框
> class(df)
[1] "data.frame"

习惯数据框格式

数据标准化

> std_data=scale(data[2:10])  #数据标准化
>
> rownames(std_data)=data[[1]]  #数组各行名字定义为数据文件的的第一列
>
> class(std_data)   #查看数据类型
[1] "matrix"
> df=as.data.frame(std_data)   #转化为数据框
> class(df)
[1] "data.frame"

二.主成分分析结果

> df.pr=princomp(df,cor=TRUE) #主成分分析
> summary(df.pr,loadings=TRUE)  #列出结果 包含特征向量<br>
Importance of components:
                       Comp.1 Comp.2 Comp.3 Comp.4  Comp.5  Comp.6 Comp.7   Comp.8   Comp.9
Standard deviation     1.8895 1.3087 1.2365 0.9593 0.86553 0.46727 0.4168 0.293547 0.201641
Proportion of Variance 0.3967 0.1903 0.1699 0.1023 0.08324 0.02426 0.0193 0.009574 0.004518
Cumulative Proportion  0.3967 0.5870 0.7569 0.8591 0.94235 0.96661 0.9859 0.995482 1.000000

Loadings:
           Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 Comp.9
不良贷款率  0.425         0.188  0.288  0.423  0.173  0.695
资本充足率 -0.359        -0.521         0.234  0.546  0.127 -0.214 -0.426
存贷款比率  0.301  0.532 -0.142        -0.370 -0.324  0.248 -0.320 -0.438
流动比率   -0.192  0.429 -0.416  0.439  0.306 -0.384 -0.113         0.399
资产利润率 -0.392  0.332        -0.438 -0.178         0.452  0.494  0.238
资本利润率 -0.413 -0.185  0.259 -0.103  0.428 -0.562  0.167        -0.436
收入利润率 -0.299 -0.455 -0.116  0.299 -0.481 -0.159  0.432 -0.329  0.221
存款增长率 -0.243  0.249  0.387  0.636 -0.282  0.171         0.336 -0.309
贷款增长率 -0.300  0.342  0.518 -0.127  0.101  0.214        -0.620  0.260

  结果比较杂乱,接下来确定主成分个数

三.确定主因子个数

根据累计贡献率大于90%,确定

计算相关系数矩阵

> cor(df)  #相关系数矩阵
           不良贷款率 资本充足率 存贷款比率 流动比率 资产利润率 资本利润率 收入利润率 存款增长率
不良贷款率     1.0000   -0.57238    0.31761 -0.20055   -0.70121   -0.45662   -0.53825   -0.16790
资本充足率    -0.5724    1.00000   -0.33566  0.61749    0.51053    0.32931    0.37424    0.01208
存贷款比率     0.3176   -0.33566    1.00000  0.16576   -0.02387   -0.72464   -0.56974   -0.11599
流动比率      -0.2005    0.61749    0.16576  1.00000    0.31280    0.07588   -0.03629    0.27787
资产利润率    -0.7012    0.51053   -0.02387  0.31280    1.00000    0.44019    0.13002    0.24387
资本利润率    -0.4566    0.32931   -0.72464  0.07588    0.44019    1.00000    0.38484    0.26496
收入利润率    -0.5383    0.37424   -0.56974 -0.03629    0.13002    0.38484    1.00000    0.24963
存款增长率    -0.1679    0.01208   -0.11599  0.27787    0.24387    0.26496    0.24963    1.00000
贷款增长率    -0.2863    0.03398   -0.14413  0.08791    0.59245    0.55095   -0.09947    0.60455
           贷款增长率
不良贷款率   -0.28628
资本充足率    0.03398
存贷款比率   -0.14413
流动比率      0.08791
资产利润率    0.59245
资本利润率    0.55095
收入利润率   -0.09947
存款增长率    0.60455
贷款增长率    1.00000

  求特征值和特征向量

>y=eigen(cor(df)) #求出cor(df)的特征值和特征向量
> y$values#输出特征值
[1] 3.57008 1.71263 1.52895 0.92033 0.74914 0.21834 0.17370 0.08617 0.04066

  输出前五个累计贡献率

> sum(y$values[1:5])/sum(y$values)   #求前5个主成分的累计方差贡献率
[1] 0.9423

  输出前5个主成分的载荷矩阵

> df.pr$loadings[,1:5]#输出前5个主成分的载荷矩阵
            Comp.1   Comp.2   Comp.3   Comp.4  Comp.5
不良贷款率  0.4245  0.03196  0.18753  0.28824  0.4226
资本充足率 -0.3595  0.02955 -0.52091  0.04673  0.2341
存贷款比率  0.3013  0.53170 -0.14155 -0.09645 -0.3697
流动比率   -0.1923  0.42903 -0.41595  0.43880  0.3061
资产利润率 -0.3916  0.33239 -0.04543 -0.43786 -0.1780
资本利润率 -0.4134 -0.18527  0.25918 -0.10322  0.4280
收入利润率 -0.2990 -0.45539 -0.11566  0.29949 -0.4810
存款增长率 -0.2432  0.24926  0.38706  0.63621 -0.2824
贷款增长率 -0.3000  0.34207  0.51768 -0.12671  0.1011

  画出碎石图

screeplot(df.pr,type=‘lines‘)  #画出碎石图

  

画出散点图

biplot(df.pr)     #画出主成分散点图

  

四.获取相关系数矩阵的特征值和特征向量

> y=eigen(cor(df)) #求出cor(df)的特征值和特征向量
> y$values#输出特征值
[1] 3.57008 1.71263 1.52895 0.92033 0.74914 0.21834 0.17370 0.08617 0.04066

五.计算主成分总得分

> s=df.pr$scores[,1:5]#输出前5个主成分的得分
> #s[,1]
> #计算综合得分
>
> scores=0.0
> for (i in 1:5)
   scores=(y$values[i]*s[,i])/(sum(y$values[1:5]))+scores
>
>
> cbind(s,scores)#输出综合得分信息
                          Comp.1  Comp.2    Comp.3   Comp.4  Comp.5   scores
北京农商银行             -0.9927 -0.4565 -0.773341  0.72371  0.5357 -0.52362
上海农商银行              0.5461 -0.4069  0.228600 -0.05691 -1.1411  0.08196
广州农商银行             -1.7680 -0.5058  0.091704  0.46582  0.4301 -0.74130
天津农商银行              0.8670 -1.0680 -0.118665 -1.13960 -0.2242 -0.01556
(宁波)慈溪农村商业银行 -0.9713  2.0909 -2.590721  0.44416  0.7692 -0.33751
江阴农商银行              0.6533  0.3486 -1.678249  0.47363 -0.4051  0.05848
成都农商银行             -2.5372 -3.2477  0.008494  0.24227  1.2955 -1.58158
重庆农村商业银行         -1.0099 -0.1061  1.753280  0.23145 -0.6871 -0.16602
(宁夏)黄河农村商业银行 -0.5903  0.7269  1.227349  0.59878 -1.1312  0.08463
(陕西)旬阳农村商业银行  0.1928  1.7666 -0.273642 -1.29087  0.7258  0.31262
太仓农村商业银行          3.1937 -1.4905 -1.089861 -1.17931 -0.6266  0.66358
武汉农村商业银行         -0.8349  0.1686 -0.119553 -1.63283 -0.4856 -0.55902
安徽合肥科技农商银行     -0.2713  0.3084 -0.273867  1.79049 -1.2170 -0.01448
福州农商银行             -1.5557  1.6844  2.185117 -0.80662  0.7243  0.05566
沈阳农商银行              5.0781  0.1871  1.423354  1.13584  1.4374  2.68217

  

原文地址:https://www.cnblogs.com/jiaxinwei/p/11832358.html

时间: 2024-11-01 09:17:10

【转】R语言主成分分析(PCA)的相关文章

R语言-主成分分析

1.PCA 使用场景:主成分分析是一种数据降维,可以将大量的相关变量转换成一组很少的不相关的变量,这些无关变量称为主成分 步骤: 数据预处理(保证数据中没有缺失值) 选择因子模型(判断是PCA还是EFA) 判断要选择的主成分/因子数目 选择主成分 旋转主成分 解释结果 计算主成分或因子的得分 案例:从USJudgeRatings数据集中有11个变量,如何去减化数据(单个主成分分析) 1.使用碎石图确定需要提取的主成分个数 1 library(psych) 2 # 1.做出碎石图确定主成分的个数

主成分分析(PCA)原理及R语言实现

原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及计算步骤 - 文库 主成分分析之R篇 [机器学习算法实现]主成分分析(PCA)——基于python+numpy scikit-learn中PCA的使用方法 Python 主成分分析PCA 机器学习实战-PCA主成分分析.降维(好) 关于主成分分析的五个问题 主成分分析(PCA)原理详解(推荐) 多变

R语言无监督学习:PCA主成分分析可视化

原文链接:http://tecdat.cn/?p=9839 总览 在监督学习中,我们通常可以访问n个  观测值的p个  特征  集  ,并 在相同观测值上测得的  Y. 无监督学习是一组没有相关的变量  Y的方法.在这里,我们重点介绍两种技术… 主成分分析:用于数据可视化或在其他监督学习方法之前进行预处理的工具. 聚类:发现数据中未知组的方法. 无监督学习的挑战 通常,无监督学习比主观学习更具挑战性,因为它更具主观性.分析没有简单的目标,例如预测响应.无监督学习通常用作  探索性数据分析的一部分

R语言 PCA

1.关键点 综述:主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对数据降维处理的从数据中提取某些公共部分,然后对这些公共部分进行分析和处理. #主成分分析 是将多指标化为少数几个综合指标的一种统计分析方法 主成分分析是一种通过降维技术把多个变量化成少数几个主成分的方法,这些主成分能够反映原始变量的大部分信息,他们通常表示为原始变量的线性组合. 2.函数总结 #R中作为主成分分析最主要的函数是princomp()函数#princomp()主成分分析   可以从相关阵或者从协方差阵做

R语言与数据分析之五:主成分分析

主成份分析历史: Pearson于1901年提出,再由Hotelling(1933)加以发展的一种多变量统计方法.通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目,可以使用样本协方差矩阵或相关系数矩阵作为出发点进行分析. 通过对原始变量进行线性组合,得到优化的指标:把原先多个指标的计算降维为少量几个经过优化指标的计算(占去绝大部分份额) 基本思想:设法将原先众多具有一定相关性的指标,重新组合为一组新的互相独立的综合指标,并代替原先的指标. 成分的保留:Kaiser主张(

R语言:recommenderlab包的总结与应用案例

R语言:recommenderlab包的总结与应用案例 1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算法的框架.它提供了几种基础算法,并可利用注册机制允许用户使用自己的算法recommender包的数据类型采用S4类构造. (1)评分矩阵数据接口:使用抽象的raringMatrix为评分数据提供接口.raringMatrix采用了很多类似矩阵对象的操作,如 dim(),dimnames() ,rowCo

R语言重要数据集分析研究——需要整理分析阐明理念

1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标,常用的如下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差,极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根,用来衡量一个数据集的集中性 极差:最大值

R语言多元分析系列

R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析.简化数据集的技术.它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推.主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征.这是通过保留低阶主成分,忽略高阶主成分做到的.这样低阶成分往往能够保留住数据的最重要方面.但是在处理观测数目小于变量数目时无法发挥

R语言数据挖掘实战系列(1)

R语言数据挖掘实战(1) 一.数据挖掘基础 数据挖掘:从数据中"淘金",从大量数据(包括文本)中挖掘出隐含的.未知的.对决策有潜在价值的关系.模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法.工具和过程. 数据挖掘的任务 利用分类与预测.聚类分析.关联规则.时序模式.偏差检测.智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力. 数据挖掘建模过程 定义挖掘目标,即决定到底想干什么? 数据取样.抽取一个与挖掘目标相关的样本数据子集.抽取数据的