R语言、SPSS基于主成分分析PCA的中国城镇居民消费结构研究可视化分析

以全国31个省、市、自治区的城镇居民家庭平均每人全年消费性支出的食品、衣着、居住、家庭设备用品及服务、医疗保健、交通与通讯、娱乐教育文化服务、其它商品和服务等 8 个指标数据为依据

由Kaizong Ye,Coin Ge撰写

 利用SPSS和R统计软件, 采用主成分分析法对当前城镇居民消费结构进行分析


结果显示: 娱乐教育文化服务、交通通讯、家庭设备用品、居住、食品是影响消费大小变动的主要因素, 而衣着、医疗保健、居住、食品是影响消费结构变动的主要因素

 各省市城镇居民消费大小与其经济发达程度密切相关; 相邻省市消费结构比较相似; 沿海地区与内地消费结构有较大的差别

第一步:录入或调入数据

image.png
image.png

第二步:打开“因子分析”对话框。 

沿着主菜单的“Analyze→Data Reduction→Factor”的路径(图2)打开因子分析选项框


视频

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

探索见解

去bilibili观看

探索更多视频

image.png

第三步:选项设置。 

首先,在源变量框中选中需要进行分析的变量,点击右边的箭头符号,将需要的变量调入变量(Variables)栏中(图3)。在本例中,全部8个变量都要用上,故全部调入(图4)。因无特殊需要,故不必理会“Value”栏。下面逐项设置

⒈ 设置Descriptives选项。 

单击Descriptives按钮(图4),弹出Descriptives对话框(图5)。

image.png

在Statistics栏中选中Univariate descriptives复选项,则输出结果中将会给出原始数据的抽样均值、方差和样本数目(这一栏结果可供检验参考);选中Initial solution复选项,则会给出主成分载荷的公因子方差(这一栏数据分析时有用)。 

在Correlation Matrix栏中,选中Coefficients复选项,则会给出原始变量的相关系数矩阵(分析时可参考);选中Determinant复选项,则会给出相关系数矩阵的行列式,如果希望在Excel中对某些计算过程进行了解,可选此项,否则用途不大。其它复选项一般不用,但在特殊情况下可以用到(本例不选)。 

设置完成以后,单击Continue按钮完成设置(图5)。

image.png

设置Extraction选项。 

打开Extraction对话框(图6)。因子提取方法主要有7种,在Method栏中可以看到,系统默认的提取方法是主成分,因此对此栏不作变动,就是认可了主成分分析方法。 


图片

R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济

阅读文章


在Analyze栏中,选中Correlation matirx复选项,则因子分析基于数据的相关系数矩阵进行分析;如果选中Covariance matrix复选项,则因子分析基于数据的协方差矩阵进行分析。对于主成分分析而言,由于数据标准化了,这两个结果没有分别,因此任选其一即可。 


随时关注您喜欢的主题


在Display栏中,选中Unrotated factor solution(非旋转因子解)复选项,则在分析结果中给出未经旋转的因子提取结果。对于主成分分析而言,这一项选择与否都一样;对于旋转因子分析,选择此项,可将旋转前后的结果同时给出,以便对比。 

选中Scree Plot(“山麓”图),则在分析结果中给出特征根按大小分布的折线图(形如山麓截面,故得名),以便我们直观地判定因子的提取数量是否准确。

主成分计算是利用迭代(Iterations)方法,系统默认的迭代次数是25次。但是,当数据量较大时,25次迭代是不够的,需要改为50次、100次乃至更多。对于本例而言,变量较少,25次迭代足够,故无需改动。

设置Scores设置。 

选中Save as variables栏,则分析结果中给出标准化的主成分得分(在数据表的后面)。至于方法复选项,对主成分分析而言

选中Display factor score coefficient matrix,则在分析结果中给出因子得分系数矩阵及其相关矩阵。 

选中Display factor score coefficient matrix,则在分析结果中给出因子得分系数矩阵及其相关矩阵。 

 其它。 

对于主成分分析而言,旋转项(Rotation)可以不必设置;对于数据没有缺失的情况下,Option项可以不必理会。

Correlation Matrix(相关系数矩阵),一般而言,相关系数高的变量,大多会进入同一个主成分

Correlation Matrixa
  消费支出食品烟酒衣著居住生活用品及服务交通通信教育文化娱乐医疗保健其他用品及服务
Correlation消费支出1.000.873.499.960.838.872.860.715.906
食品烟酒.8731.000.262.811.663.755.620.396.751
衣著.499.2621.000.377.646.424.355.606.649
居住.960.811.3771.000.774.761.825.657.861
生活用品及服务.838.663.646.7741.000.685.730.608.804
交通通信.872.755.424.761.6851.000.774.624.727
教育文化娱乐.860.620.355.825.730.7741.000.735.743
医疗保健.715.396.606.657.608.624.7351.000.694
其他用品及服务.906.751.649.861.804.727.743.6941.000
a. Determinant = 1.69E-014

但不尽然,除了相关系数外,决定变量在主成分中分布地位的因素还有数据的结构。相关系数矩阵对主成分分析具有参考价值,毕竟主成分分析是从计算相关系数矩阵的特征根开始的。

在Communalities(公因子方差)中,给出了因子载荷阵的初始公因子方差(Initial)和提取公因子方差(Extraction)

Communalities
 InitialExtraction
消费支出1.000.975
食品烟酒1.000.659
衣著1.000.362
居住1.000.860
生活用品及服务1.000.770
交通通信1.000.754
教育文化娱乐1.000.764
医疗保健1.000.605
其他用品及服务1.000.864
Extraction Method: Principal Component Analysis.

在Total Variance Explained(全部解释方差) 表的Initial Eigenvalues(初始特  7  征根)中,给出了按顺序排列的主成分得分的方差(Total),在数值上等于相关系数矩阵的各个特征根λ,因此可以直接根据特征根计算每一个主成分的方差百分比(% of Variance)。

Total Variance Explained
ComponentInitial EigenvaluesExtraction Sums of Squared Loadings
Total% of VarianceCumulative %Total% of VarianceCumulative %
16.61373.47973.4796.61373.47973.479
2.99211.02784.506   
3.5556.16290.668   
4.2983.31393.980   
5.2592.87996.859   
6.1311.45498.314   
7.088.98099.294   
8.064.706100.000   
98.213E-119.125E-10100.000   
Extraction Method: Principal Component Analysis.

主成分的数目可以根据相关系数矩阵的特征根来判定,如前所说,相关系数矩阵的特征根刚好等于主成分的方差,而方差是变量数据蕴涵信息的重要判据之一。根据λ值决定主成分数目的准则有三:

i 只取λ>1的特征根对应的主成分 

从Total Variance Explained表中可见,第一、第二和第三个主成分对应的λ值都大于1,这意味着这三个主成分得分的方差都大于1。本例正是根据这条准则提取主成分的。 

ii 累计百分比达到80%~85%以上的λ值对应的主成分 

在Total Variance Explained表可以看出,前三个主成分对应的λ值累计百分比达到89.584%,这暗示只要选取三个主成分,信息量就够了。 

iii 根据特征根变化的突变点决定主成分的数量

image.png

从特征根分布的折线图(Scree Plot)上可以看到,第4个λ值是一个明显的折点,这暗示选取的主成分数目应有p≤4(图8)。那么,究竟是3个还是4个呢?根据前面两条准则,选3个大致合适(但小有问题)。

在Component Matrix(成分矩阵)中,给出了主成分载荷矩阵,每一列载荷值都显示了各个变量与有关主成分的相关系数。以第一列为例,0.885实际上是消费支出与第一个主成分的相关系数。

Component Matrixa
 Component
 1
消费支出.987
食品烟酒.812
衣著.601
居住.928
生活用品及服务.877
交通通信.868
教育文化娱乐.874
医疗保健.778
其他用品及服务.930
Extraction Method: Principal Component Analysis.
a. 1 components extracted.

R语言按地区划分的主成分可视化

res.pca <- prcomp(data[, -1],  scale = TRUE)

image.png

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498