R语言与主成分分析

1.概念介绍

       主成分分析是一种降维技术,简单的说就是将数据中的多个变量,化为几个主要的变量反映原本数据中的绝大部分信息。

       在工作中,我们常常遇到一些多维数据(即一组数据中存在多个变量、属性,或者说需要用多个变量、字段、属性去表示一组数据)。明显,数据中用到的维度越少,越便于我们的工作和研究。所以这时,我们就需要用到主成分分析,将原本多维的数据变化为低维数据。

      比如,一组数据原本有n个样本,p个属性变量(如下图)

      

      为了便于研究,我们可以通过降维技术(即这里所说的主成分分析),将p个属性所描述的信息用m个属性(m<p)来进行描述。


2.主成分分析步骤

      1)对原始数据标准化处理(0均值化处理)

      2)计算样本相关系数矩阵(或协方差矩阵)

      3)计算协方差矩阵的特征值和特征向量

      4)选择重要的主成分,并写出主成分表达式

            选择多少个主成分,主要是依据方差累积贡献率来进行的。一般情况上,当只要选择累积贡献率(Gm)大于85%的部分。

                 

      5)计算主成分载荷

           主成分载荷是反映主成分Yi 与原变量 Xj之间的相互关联程度

         

      6)计算主成分得分

           

      6)根据主成分得分的数据,做进一步的统计分析


3.R语言实现主成分分析

       以下内容所使用的数据来自网络!

      1)读取数据

         R语言可以读取导入多种格式的数据,xlsx、csv、xml等,具体使用在此不累述。该篇文章所使用的数据是个人在一篇论文中找到的:1989—2002 年中国 GDP数据

         

      2)对数据取对数(经济数据通常需要这一步)

         LnGDP<-log(x$GDP)
         LnSS<-log(x$SS)

         ......

         lnx<-cbind(LnSS,LnXFP,LnTZ,LnRK,LnJY,LnWZ,LnJCK)

         

      3)对lnx数据求出相关系数矩阵

         corx<-cor(lnx)

         

      4)求特征值与特征变量

         在R中,可以通过eigen()直接求出数据的特征值和特征向量,如下:

         

      5)选择主成分

         通过计算方差累计贡献率,可知特征值6.5232585贡献了93.19%,占主要成分

         

         其对应的特征向量为:

        

         故而有第一主成分:

     6)作碎石图

        plot(ev$values,type='l',xlab='i',ylab='lambda')

        

4.R语言中的princomp

       R语言不仅可以通过手工一步一步进行主成分分析,也可以直接通过R自带的princomp进行主成分分析;

       代码:pca1<-princomp(Inx,cor=T),cor=T表示以相关矩阵计算主成分分析             

                  summary(pca,loadings=T);loadings表示是否计算载荷

                  screeplot(pca,type='l')


  • 26
    点赞
  • 267
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值