什么是主成分分析以及使用这种分析方法的现实意义
1.主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在实证问题研究中,为了全面、系统地分析问题,我们必须考虑众多影响因素。这些涉及的因素一般称为指标,在统计分析中也称为变量。因为每个变量都不同程度地反映了所研究问题的某些信息,并且指标之间有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。在用统计方法研究多变量问题时,变量太多会增加计算量和增加分析问题的复杂性,人们希望在进行定量分析的过程中,涉及的变量较少,得到的信息量较多。
2.科学研究所涉及的课题往往比较复杂,是因为影响客观事物的因素多,需要考察的变量多。在大部分实际问题中,变量之间是有一定的相关性的,人们自然希望找到较少的几个彼此不相关的综合指标尽可能多地反映原来众多变量的信息
主成分选取的一些原则
(1)主成分个数远远少于原有变量的个数
原有变量综合成少数几个因子之后,因子将可以替代原有变量参与数据建模,这将大大减少分析过程中的计算工作量。
(2)主成分能够反映原有变量的绝大部分信息
因子并不是原有变量的简单取舍,而是原有变量重组后的结果,因此不会造成原有 变量信息的大量丢失,并能够代表原有变量的绝大部分信息
(3)主成分之间应该互不相关
通过主成分分析得出的新的综合指标(主成分)之间互不相关,因子参与数据建模能够有效地解决变量信息重叠、多重共线性等给分析应用带来的诸多问题
(4)主成分具有命名解释性
主成分分析的步骤方法/步骤
一、对原始数据进行标准化
数据表转化.png
二、计算相关系数矩阵
相关系数矩阵.png
三、计算特征值与特征向量
特征值.png
四、计算主成分载荷
贡献.png
求和.png
五、各主成分的得分
得分.png基于python语言的主成分分析实践
#-*- coding: utf-8 -*-
#主成分分析 降维
import pandas as pd
#参数初始化
inputfile = '../data/principal_component.xls'
outputfile = '../tmp/dimention_reducted.xls' #降维后的数据
data = pd.read_excel(inputfile, header = None) #读入数据
from sklearn.decomposition import PCA
pca = PCA() #保留所有成分
pca.fit(data)
pca.components_ #返回模型的各个特征向量
pca.explained_variance_ratio_ #返回各个成分各自的方差百分比(也称贡献率)
>>>pca.explained_variance_ratio_
array([7.74011263e-01, 1.56949443e-01, 4.27594216e-02, 2.40659228e-02,
1.50278048e-03, 4.10990447e-04, 2.07718405e-04, 9.24594471e-05])
pca = PCA(3) #选取累计贡献率大于80%的主成分(3个主成分)
pca.fit(data)
low_d = pca.transform(data) #降低维度
pd.DataFrame(low_d).to_excel(outputfile) #保存结果
>>>low_d
array([[ 8.19133694, 16.90402785, 3.90991029],
[ 0.28527403, -6.48074989, -4.62870368],
[-23.70739074, -2.85245701, -0.4965231 ],
[-14.43202637, 2.29917325, -1.50272151],
[ 5.4304568 , 10.00704077, 9.52086923],
[ 24.15955898, -9.36428589, 0.72657857],
[ -3.66134607, -7.60198615, -2.36439873],
[ 13.96761214, 13.89123979, -6.44917778],
[ 40.88093588, -13.25685287, 4.16539368],
[ -1.74887665, -4.23112299, -0.58980995],
[-21.94321959, -2.36645883, 1.33203832],
[-36.70868069, -6.00536554, 3.97183515],
[ 3.28750663, 4.86380886, 1.00424688],
[ 5.99885871, 4.19398863, -8.59953736]])
总结
主成分分析有以下几方面的应用:
①对原始指标进行综合:主成分分析的主要作用是在基本保留原始指标信息的前提下,以互不相关的较少个数的综合指标来反映原来指标所提供的信息。
②探索多个原始指标对个体特征的影响:对于多个原始指标,求出主成分后,可以利用因子载荷阵的结构,进一步探索各主成分与多个原始指标之间的相互关系,分析各原始指标对各主成分的影响作用。
③对样本进行分类:求出主成分后,如果各主成分的专业意义较为明显,可以利用各样品的主成分得分来进行样品的分类,可能就会与分类预测算法结合。
我们也可以思考下,每一个数据处理算法都不是孤立存在的,而是相互补充。
网友评论