首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

主成分分析:Python

本文介绍了运用计量统计软件Spyder(3.2.6 MAC-Python是版本3.6)进行主成分分析(PCA- PrincipleComponent Analysis)的方法。Spyder是一款出色的Python语言编辑器,界面类似Matlab

整理数据

在Excel中将变量按列整理好,其中各列为变量,第一行为变量名称,各行既可以是时间序列也可以是不同省市等

本例是23个金融变量,各包含22个数据,起于1995年,止于2016年

在Spyder中输入数据

1、打开Terminal,输入spyder,按Enter键确认,打开Spyder界面

2、在Console中右击,可选择清除所有变量和Console历史

3、删除屏幕上的代码,点击保存,将文件保存在数据所在的文件夹

4、导入pandas包,利用其读取Excel。导入numpy包,利用其处理数据。导入sklearn包,利用其PCA和scale函数

1.import pandas #for excel reading

2.import numpy # for type transfer

3.import sklearn #for PCA and scale

4.

5、利用pandas.read_excel读取Excel,提示FileNotFoundError: [Errno 2] No such file or directory:'DataForThesis.xlsx',这是因为Spyder重启后,路径不再是文件所在位置,需要在路径栏调整位置

6、调整路径后,运行pandas.read_excel,并剔除首列时间,变量df出现在Variableexplorer栏中。22行23列,对应23个变量和采集的22个数据

1.import pandas #for excel reading

2.import numpy # for type transfer

3.import sklearn #for PCA and scale

4.

5.df = pandas.read_excel("DataForThesis.xlsx")

6.df = df.iloc[:,1:24] # delete time column

7.

进行主成分分析

数据录入完成后,继续输入代码

1、直接提用sklearn下decomposition下的PCA函数。Python中某些函数一层套一层,需要穿透多层才能达到目标。第八行,引用函数。第九行,输入标准化后的数据

1.import pandas #for excel reading

2.import numpy # for type transfer

3.import sklearn #for PCA and scale

4.

5.df = pandas.read_excel("DataForThesis.xlsx")

6.df = df.iloc[:,1:24] # delete time column

7.

8.pca = sklearn.decomposition.PCA()

10.

2、提取特征值和特征向量

1.import pandas #for excel reading

2.import numpy # for type transfer

3.import sklearn #for PCA and scale

4.

5.df = pandas.read_excel("DataForThesis.xlsx")

6.df = df.iloc[:,1:24] # delete time column

7.

8.pca = sklearn.decomposition.PCA()

10.

11.eigenvalue = pca.explained_variance_#report eigenvalue

12.eigenvalue_var = pca.explained_variance_ratio_#report % variance

13.eigenvalue_var_ =numpy.cumsum(numpy.round(pca.explained_variance_ratio_, decimals=4)*100)#report% cumulative variance

14.

15.eigenvector = pca.components_#report eigenvector

16.

特征值。Eigenvalue变量便是特征值,与其他软件报出的结果一致。可以在Variable explorer栏中查看。eigenvalue_var和eigenvalue_var_分别代表各特征值解释方差的比例和累积比例

特征向量。与STATA报出的结果一致,但需注意没横行为对应特征值的特征向量,如第一主成分的特征向量为

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180120G0QLXL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券