Windows10系统,R Studio软件等。
主成分分析是一种降维技术,简单的说就是将数据中的多个变量,化为几个主要的变量反映原本数据中的绝大部分信息。
在工作中,我们常常遇到一些多维数据(即一组数据中存在多个变量、属性,或者说需要用多个变量、字段、属性去表示一组数据)。明显,数据中用到的维度越少,越便于我们的工作和研究。所以这时,我们就需要用到主成分分析,将原本多维的数据变化为低维数据。
主成分分析步骤:
1)对原始数据标准化处理(0均值化处理)
2)计算样本相关系数矩阵(或协方差矩阵)
3)计算协方差矩阵的特征值和特征向量、
4)选择重要的主成分,并写出主成分表达式。选择多少个主成分,主要是依据方差累积贡献率来进行的。一般情况上,选择累积贡献率(Gm)大于85%的部分。
5)计算主成分载荷,主成分载荷是反映主成分Yi 与原变量 Xj之间的相互关联程度。
6)计算主成分得分,根据主成分得分的数据,做进一步的统计分析。
主成分分析的应用十分广泛,在商业中被用来对高维的数据集口模型降维达到简化计算和模型的目的,常见的案例有业务员综合能力评估、地区发展综合评估等等。这些案例往往涉及很多的评价指标这时候就需要进行数据降维,用较少的几个新变量代替原本的变量而尽可能保留原有信息,计算出综合得分,进而给出综合评价结果。本文收集了2019年31个省市的各领域人均消费数据,并针对这些数据进行主成分分析,进一步实现降维的目标。
31个省市各指标部分数据:
表1 变量描述
变量 | 描述 |
Food | 食品 |
clothes | 衣着 |
facility | 家庭设备用品及服务 |
healthcare | 医疗保健 |
transport | 交通和通讯 |
entertainment | 娱乐教育文化服务 |
residence | 居住 |
others | 杂项商品和服务 |
图1 样本相关系数矩阵
根据相关矩阵放映的结果,我们发现食品(food)指标与杂项商品与服务(others)指标相关性较强;交通与通讯(transport)指标与居住(residence)指标相关性较强;娱乐教育文化服务(entertainment)指标与家庭设备用品及服务(facility)指标相关性较强,这也符合我们客观的认识规律,我们进一步猜测该数据集存在可降维的空间。
图2 主成分分析输出结果
由程序运行结果可知主成分的标准差,即相关矩阵的八个特征值开方各为:
由输出结果可以看出,前两个主成分的累积贡献率为0.8062456,超过80%,故我们选取这两个主成分即可。第一主成分以及第二主成分分别为:
第一个主成分的系数符号均为正,第二个主成分中衣着指标、医疗保健指标的系数符号为负,交通和通讯指标、居住指标的系数符号为正,其余指标系数为0。因此可以将第一主成分理解为均衡因子,第二主成分理解为差异因子。
图3 主成分预测
特别注意各样本点在第一主成分以及第二主成分上的得分,以1号北京市为例,第一主成分得分为正,且绝对值较大,说明北京市的各项经济指标较好。第二主成分得分为负,且绝对值较大,说明北京市的衣着指标、医疗保健指标的经济价值要大于交通和通讯指标、居住指标的经济价值。
图4 碎石图
从碎石图中可以直观看出,前两个主成分的方差占了总方差变化的绝大部分,因此我们选取主成分个数为2是合理的。
图5 两个主成分的因子载荷图
两个主成分的载荷散点图进一步直观表明了两个主成分之间的差异特征,居住因素以及交通因素在第二主成分上载荷绝对值大且取正值,医疗因素在第二主成分上载荷绝对值大且取负值。
图6 31个样本点关于前两个主成分的散点图
图6进一步呈现了各样本点在该坐标系下的位置。如1号(北京)、11号(浙江)19号(广东)样本点相对于comb1轴靠右,对应经济发展较好的省市。其中1号(北京)在comb2州更靠下,19号(广东)在comb2轴更靠上,反映19号(广东)尤其在医疗指标上要逊色于1号(北京)。故而我们通过主成分分析能够更好的简化指标以及模型,达到降维的效果,同时也进一步确定了各指标的得分权重,使得评价结果更加客观合理。为进一步验证模型的合理性,我们将主成分得分结果与31个省市的GDP数据进行对比,发现主成分得分排名与GDP排名具有相同的趋势性,进一步说明了该模型是合理有效的。
表2 第一主成分得分与实际GDP对比表
地区 | GDP | Comb1 |
北京 | 36102.6 | 5.516 |
天津 | 14083.73 | 2.040 |
河北 | 36206.9 | -0.782 |
山西 | 17651.93 | -1.879 |
内蒙古 | 17360 | -1.857 |
辽宁 | 25115 | -1.335 |
吉林 | 12311.32 | -1.891 |
黑龙江 | 13698.5 | -1.959 |
上海 | 38700.58 | 5.964 |
江苏 | 102719 | 0.414 |
浙江 | 64613 | 3.643 |
安徽 | 38680.6 | -1.826 |
福建 | 43903.89 | 0.204 |
江西 | 25691.5 | -2.271 |
山东 | 73129 | -0.150 |
河南 | 54997.07 | -1.979 |
湖北 | 43443.46 | -0.729 |
湖南 | 41781.49 | 0.223 |
广东 | 110760.94 | 5.676 |
广西 | 22156.69 | -0.256 |
海南 | 5532,39 | -1.177 |
重庆 | 25002.79 | 1.134 |
四川 | 48598.8 | -0.542 |
贵州 | 17826.56 | -1.320 |
云南 | 24500 | 0.443 |
西藏 | 1902.74 | 0.445 |
陕西 | 26181.36 | -0.874 |
甘肃 | 9016.7 | -1.575 |
青海 | 3005.92 | -1.062 |
宁夏 | 3920.55 | -1.527 |
新疆 | 13797.58 | -0.709 |
> f<-read.table(file="C:/recv/pp.CSV",sep=",",header = T)> R=round(cor(f),3)#求样本相关系数矩阵,> Rfood clothes facility healthcare transport entertainment residence othersfood 1.000 0.247 0.698 0.468 0.828 0.769 0.670 0.877clothes 0.247 1.000 0.258 0.423 0.086 0.255 -0.201 0.349facility 0.698 0.258 1.000 0.621 0.585 0.856 0.569 0.667healthcare 0.468 0.423 0.621 1.000 0.531 0.684 0.314 0.628transport 0.828 0.086 0.585 0.531 1.000 0.708 0.800 0.776entertainment 0.769 0.255 0.856 0.684 0.708 1.000 0.647 0.745residence 0.670 -0.201 0.569 0.314 0.800 0.647 1.000 0.525others 0.877 0.349 0.667 0.628 0.776 0.745 0.525 1.000> symnum(cor(f,use="complete.obs"))fd c fc h t e r ofood 1 clothes 1 facility , 1 healthcare . . , 1 transport + . . 1 entertainment , + , , 1 residence , . . + , 1 others + . , , , , . 1attr(,"legend")[1] 0 ‘ ’ 0.3 ‘.’ 0.6 ‘,’ 0.8 ‘+’ 0.9 ‘*’ 0.95 ‘B’ 1> PCAf=princomp(f,cor=T)#用样本相关系数矩阵做相关性分析> PCAfCall:princomp(x = f, cor = T)Standard deviations:Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.82.2578087 1.1628692 0.7581054 0.6374099 0.5303471 0.3496810 0.3044301 0.26980998 variables and 31 observations.> summary(PCAf,loadings=T)#列出主成分分析结果Importance of components:Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7Standard deviation 2.2578087 1.1628692 0.75810535 0.63740988 0.5303471 0.3496810 0.30443012Proportion of Variance 0.6372125 0.1690331 0.07184047 0.05078642 0.0351585 0.0152846 0.01158471Cumulative Proportion 0.6372125 0.8062456 0.87808609 0.92887251 0.9640310 0.9793156 0.99090033Comp.8Standard deviation 0.269809906Proportion of Variance 0.009099673Cumulative Proportion 1.000000000Loadings:Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8food 0.401 0.415 0.209 0.221 0.750clothes 0.132 -0.749 0.332 0.152 -0.529 facility 0.375 -0.442 0.547 -0.559 0.181 -0.105healthcare 0.320 -0.345 -0.478 -0.659 0.309transport 0.388 0.232 0.279 -0.366 -0.214 -0.103 0.673 -0.273entertainment 0.406 -0.310 0.233 0.806 -0.163residence 0.326 0.496 -0.580 -0.548 others 0.396 0.345 -0.107 0.529 -0.435 -0.476> round(predict(PCAf),3)#做预测,即计算个样本主成分得分Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8[1,] 5.516 -2.507 -0.772 -0.342 0.490 0.743 -0.099 -0.089[2,] 2.040 -0.046 -0.836 0.846 0.243 -0.377 -0.550 0.247[3,] -0.782 -0.590 -0.660 -0.411 -0.327 0.016 0.123 -0.077[4,] -1.879 -0.411 -0.057 -0.086 0.285 -0.137 -0.136 -0.287[5,] -1.857 -0.518 0.129 -0.102 -0.209 0.164 0.164 -0.522[6,] -1.335 -0.859 -0.073 -0.576 -0.427 0.060 0.031 0.546[7,] -1.891 -0.154 -0.040 -0.296 -0.452 0.344 -0.044 0.281[8,] -1.959 -0.647 -0.282 -0.863 -0.369 -0.112 -0.026 0.311[9,] 5.964 0.199 0.118 1.086 0.600 -0.098 -0.135 0.263[10,] 0.414 0.317 -0.214 0.862 0.385 -0.433 0.178 0.045[11,] 3.643 -0.541 -0.786 -0.684 -0.175 -0.442 0.429 0.272[12,] -1.826 0.528 0.331 0.643 0.030 0.481 0.519 0.163[13,] 0.204 1.360 1.301 0.232 -0.124 -0.239 0.307 0.674[14,] -2.271 1.898 0.074 0.333 -0.101 0.014 -0.423 -0.012[15,] -0.150 -1.000 -0.366 0.914 -0.548 -0.277 0.241 -0.417[16,] -1.979 0.395 -0.217 -0.245 -0.303 -0.501 -0.289 0.073[17,] -0.729 0.251 -0.055 0.278 -0.825 0.663 -0.477 0.106[18,] 0.223 0.207 -0.029 0.470 -0.483 0.544 0.022 -0.237[19,] 5.676 3.123 0.522 -1.529 -0.896 -0.188 0.010 -0.463[20,] -0.256 2.093 -0.037 0.291 0.044 0.452 -0.123 -0.046[21,] -1.177 1.945 0.462 -0.590 1.856 0.348 0.327 -0.079[22,] 1.134 -0.417 0.127 0.630 -0.580 0.272 0.742 0.025[23,] -0.542 -0.042 0.163 0.419 -0.135 0.305 -0.295 0.120[24,] -1.320 0.348 -0.123 0.817 0.152 -0.518 0.342 -0.242[25,] 0.443 -0.487 0.649 -0.041 0.511 -0.002 -0.514 -0.147[26,] 0.445 -2.404 3.234 -0.230 -0.067 -0.319 -0.208 -0.121[27,] -0.874 0.509 -1.116 -0.074 -0.038 -0.453 -0.300 -0.055[28,] -1.575 -0.535 -0.121 -0.003 0.577 -0.113 -0.024 -0.247[29,] -1.062 -0.433 -0.359 -0.953 0.664 0.100 -0.106 0.132[30,] -1.527 -0.922 -0.602 -1.090 0.333 -0.159 0.246 0.041[31,] -0.709 -0.658 -0.363 0.294 -0.115 -0.138 0.068 -0.257> screeplot(PCAf,type="lines")#做碎石图> load=loadings(PCAf)#提取主成分载荷矩阵> plot(load[,1:2],xlim=c(-0.6,0.6),ylim=c(-0.6,0.6))#做前六个主成分的载荷散点图> rnames=c("食品","衣着","家庭设备","医疗","交通","娱乐","居住","其他")#使用中文名称> text(load[,1],load[,2],labels = rnames,adj=c(-0.3,1.5))> abline(h=0,v=0)> biplot(PCAf,scale=0.5)>
本文发布于:2024-02-02 15:27:52,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170685887144708.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |