本文介绍了运用计量统计软件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报出的结果一致,但需注意没横行为对应特征值的特征向量,如第一主成分的特征向量为
领取专属 10元无门槛券
私享最新 技术干货