PCA

一.PCA概述

     PCA是常用的数据降维方法。当数据维度较高,变量个数多且有一定程度的相关性时,变量间的信息存在重叠,此时利用主成分分析(PCA)能够将多个变量化为少数几个互不相关的主成分。这些主成分通常表示为原始变量的线性组合,它们能够反映原始数据大部分的信息,并且所含的信息互不重叠。

    设x=(x1,x2,...xp)'为一个p维随机向量,用变换y=T'x得到主成分向量

    该正交变换的几何意义是将x1,x2,...xp构成的原p维坐标轴作一正交旋转,得到新坐标系,一组正交向量t1,t2,...,tp表明了新坐标系的方向。

    从几何上看,就是将原数据集移动至原点为中心,保持原点不动,在空间里转动坐标轴系,在转动的过程中使第一主成分方向的椭球轴最长,第二主成分次之,其后主成分依次递减。在转的同时协方差矩阵一直在跟着变化,当协方差矩阵变成对角矩阵时,各个轴相互垂直,得到所要的解。

    求解的过程是从原始数据的相关矩阵出发,得到特征根λi以及对应的特征向量ti,λi即为第i个主成分的方差,ti的值则是第i个主成分在原始变量上的载荷。使用相关矩阵而不是协方差矩阵的原因有二:1.使用协方差矩阵会受到原始数据量纲的影响 2.各变量方差的差异较大时,PCA的结果过于照顾方差大的变量。因此,做PCA首先要将各个原始变量做标准化处理。PS:特例也是有的,如果各原始变量量纲和方差大致相同,协方差矩阵更有优势,因为它能保留对角线上的信息,而相关矩阵对角线上的值都是1


二.SAS实现

    #数据标准化

     proc standard data=tmp1.innovation mean=0 std=1 out=a1;

     run;

    #主成分分析

     proc princomp data=a1 n=4 prefix=F out=a2;                  #n为要输出的主成分的个数,prefix为主成分的前缀

     run;

    #对前两个主成分做散点图

     proc plot data=a2;

     plot F1*F2 $region=‘*’/href=0 vref=0;

     run;


三.对SAS输出结果的分析

   

上图输出的是相关系数矩阵以及特征值的信息,前4个主成分能够解释87.88%的信息,前两个主成分能够解释原始数据74%的信息。


以上是特征向量的信息,从图中可以看出在F1的线性表达式中,COLLEGE、PRDEX、RDINTENSITY等的系数较大,且都为正值,可以把F1解释成人均科研投入的主成分;同理,可以把F2解释成人均科研产出的主成分。但F3就很难解释了,既然难解释,F1,F2的累计贡献率74%也不算低,F3、F4可以放弃(保留几个主成分主要看有多少个能用实际含义解释)


主成分的散点图在探索性数据分析中相当有用,可以在直觉上反映大部分信息,还能有效地检测异常值。从图中可以直观地看出(纵向),北上广苏浙在人均科研投入上领先全国。


四.sklearn实现PCA

from sklearn.decomposition import PCA
pca=PCA(n_components=4,whiten= ) 
newdata=pca.tranform_fit(data)
whiten是白化的选项,默认为False,白化的作用是使PCA得到的各个新特征有相同的方差,在深度学习领域有较多应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值