手把手教你做主成分分析

这篇具有很好参考价值的文章主要介绍了手把手教你做主成分分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.主成分分析能做什么

主成分分析是一种降维处理的统计方法,实践中有三个应用场景:

  • 信息浓缩:将多个分析项浓缩成几个关键概括性指标;
  • 权重计算:利用方差解释率值计算各概括性指标的权重;
  • 综合评价:基于主成分得分构造综合得分数据,用于综合评价。

接下来,以一个具体案例来学习主成分分析用于综合评价。

2.案例数据探索

案例数据原始来源:《直辖市、副省级城市、经济特区和沿海开放城市统计资料汇编(2004)》,直接来源:马力, 史锦凤. 15个副省级城市区域经济发展水平的实证分析[J]. 科技进步与对策, 2006, 23(12):3.

选取反映区域经济发展水平的7个指标,对我国15个副省级城市的经济发展水平进行综合评价研究。

2.1 浏览数据与变量

数据上传SPSSAU后,在 “我的数据”中查看浏览原始数据,前5行数据如下:

手把手教你做主成分分析

图1 “我的数据”查看浏览数据集

7项经济指标包括:GDP、农业总产值、工业总产值、第三产业总产值、固定资产投资总额、消费品零售总额、城乡居民储蓄年末余额,均为连续型数据资料。

2.2 相关系数矩阵初探关系

在“通用方法”栏目下,选择“相关”,将GDP等7个经济指标拖拽至【定量分析项】框内,默认要求输出Pearson相关系数矩阵。

手把手教你做主成分分析

图2 经济指标间的相关性

上图展示了7个指标两两之间Pearson相关系数,相关程度范围为0.10~0.97。农业总产值、固定资产投资总额、消费品零售总额与其他指标相关性普遍低于0.3,而其他指标之间的相关性则相对较高,总体看指标间有一定的相关性基础。

3.主成分分析操作过程

3.1 主成分分析对数据的要求

之所以要使用主成分分析,是因为可用来评价研究对象的指标过多,如果现有数据中仅有少数比如1~3个指标,那大概率来说,我们做主成分分析的必要性并不大。

因此,有较多的评价指标有待于被降维处理或信息浓缩处理,这是基本出发点,要求这些指标须是连续型数据资料,且有一定的相关性基础。

还有一个需要了解的知识点,原则上我们应该先对这些指标变量进行标准化处理,以统一众多指标变量量纲单位。但在SPSSAU中,大家需要知道一下,它在执行主成分分析时会对数据默认进行标准化操作,因此我们并不需要单独地提前去做这一项工作。

3.2 SPSSAU主成分分析操作

在SPSSAU的“进阶方法”栏目下选择“主成分”,将GDP等7个连续型指标变量数据拖拽至【定量分析项】,也就是说现在我们要对这7个指标进行信息浓缩,那么,浓缩为几个主成分呢?

手把手教你做主成分分析

图3 SPSSAU主成分分析操作

SPSSAU可以自动智能化帮助我们做出决策,如果说你对未来主成分有较成熟的专业认识或经验判断,那么可以自定义主成分的个数。本例选择让SPSSAU自动决策。

当然,我们也可以执行一个类似于“回马枪”的做法。让SPSSAU先做自动主成分,然后我们根据输出的特征值、方差比例、碎石图等信息再行讨论和决策,返回主成分操作界面,直接指定主成分的个数。

总的来说,主成分个数的确认主要有三个依据,第一个特征值大于1;第二个是累计方差贡献达到能接受的水平(比如80%以上);第三个是碎石图陡坡信息(看到明显拐点)。

SPSSAU还提供了两项计算,可以计算并另存出成分得分数据,以及综合得分数据,该两项可帮忙自动计算主成分得分和综合得分,下述有具体说明。

最后点【开始分析】,执行主成分分析。

3.3 主成分分析旋转操作

上面进行的主成分分析操作,我们发现整个过程没有“旋转”主成分的功能或提示,这里要和因子分析进行区别。

主成分分析并不刻意强调主成分的实际合理性,没有严格规定必须要对主成分做命名或实际意义的提炼。这与因子分析是有区别的,因子分析强调公共因子命名,即给公因子实际含义进行信息归纳总结。

小结一下,主成分分析可以做命名也可以不做。如果你的研究需要对主成分进行合理性命名,可以借助SPSSAU的因子分析功能,经因子旋转操作来给主成分进行命名(SPSSAU默认直接执行旋转操作)。

稍后,本例会进行示范。

4.主成分分析结果解读

来看结果。

4.1 KMO值与Bartlett检验

主成分和因子分析都要求多维度指标间存在一定的相关性,如何做出判断呢?目前主要基于KMO值和Bartlett检验。

本例结果如下表所示。

手把手教你做主成分分析

图4 kmo和bartlett检验结果

KMO值如果高于0.8,则说明非常适合进行分析;介于0.7~0.8之间,则说明比较适合进行分析;如果此值介于0.6~0.7,则说明可以进行分析;如果此值小于0.6,说明不适合进行分析。另有说法是KMO指须大于0.5。

Bartlett检验对应p值小于0.05通过检验,也说明适合进行主成分分析。

本例,KMO值=0.658,Bartlett检验对应p值<0.05,均说明案例数据适合做主成分。

4.2 特征值、方差解释率及碎石图

主成分分析是基于相关系数矩阵或协方差矩阵计算的,而矩阵运算有一个非常重要的概念叫做特征值或特征根。根据特征根,可以计算每个主成分的方差贡献比例(或称之为方差解释率,下同),特征根,方差解释率是我们判断主成分个数的核心依据。

原本我们有众多指标,假设是k个,做主成分分析的目的是为了降维、信息浓缩,从k个指标中构建(或称为提取)出少数几个主成分,问题是,我们构建几个主成分合适呢?

常见或一般地做法是,选择那些特征根大于1的成分,而且要求这少数几个成分的累积方差解释率足够高。有时为强调更高的累积方差解释率,选择特征根接近1(小于1)的成分也是可以的。

SPSSAU会根据特征根大于1的标准,自动确认主成分的个数,本例结果如下表所示。

手把手教你做主成分分析

图5 特征根、方差解释率表格

从上表可知:主成分分析将构建出3个主成分(前3个成分做累积方差计算),特征根值均大于1,依次为3.519、1.646、1.047。

此3个主成分的方差解释率分别是50.266%、23.512%、14.954%,累积方差解释率为88.733%。这表示,第一主成分可解释我们待降维的7个指标50.266%的信息量,第二主成分可解释23.512%的信息量,第三主成分可解释14.954%。

累积方差解释率多大合适呢?常见的说法是80%,当然这并非一个严格标准,实践中70%以上,或60%也并非不可。我们总是期望累积方差解释率高一些,但实际当中往往并非如此,还需要根据实际情况综合决策。

SPSSAU将为本例构建三个主成分,如果给他们各自一个权重,可以用各自的方差比例除以累积方差来计算。本例的三个主成分权重依次为50.266/88.733=56.65%、23.512/88.733=26.50%和14.954/88.733=16.85%。

碎石图在主成分和因子分析中应用极广,它其实就是各成分的特征根的可视化图形。本例碎石图如下:

手把手教你做主成分分析

图6 碎石图

碎石图形象展示各成分特征根“陡坡势能”的变化过程,落差幅度越大说明对应的成分越重要,解释能力越强。碎石图一般是前几个特征根陡坡落差幅度比较大,越往后越平缓。

本例,前三个陡坡落差幅度较大,提示构建三个主成分是合适的。

4.3 载荷系数与共同度

SPSSAU将构建三个主成分,这些主成分各自与哪些指标有关系呢?总体上如何评价三个主成分的效果呢?

载荷系数和共同度指标可以回答以上问题。载荷系数反映了主成分与指标间的相关关系,共同度总体上反映所构建的主成分的解释能力。

本例对应的结果,见下表:

手把手教你做主成分分析

图7 载荷系数、共同度表格

可以看到,本案例的共同度指标在0.707~0.969之间,表现良好(一般要求大于0.4或0.5)。

而各指标与三个主成分载荷系数,尤其是第一主成分与第二主成分的载荷系数纠缠不清,同一个指标在第一和第二主成分上都有较高的载荷。如果是强调主成分命名,那么这样的载荷是不利于命名的。应当采取“旋转”策略,让载荷系数向0和1两极化,以提高主成分命名的能力。

手把手教你做主成分分析

图8 SPSSAU因子分析旋转后的载荷系数

如果确需旋转处理,则需使用SPSSAU的因子分析(默认采取正交旋转法),工作界面和操作和主成分基本类似。本例旋转后的载荷表格如上表所示。

可以发现,第一主成分与GDP、工业总产值、第三产业总产值有关;第二主成分与固定资产投资总额、消费品零售总额、城乡居民储蓄年末余额有关;第三主成分与农业总产值有关。

本案例并不关心命名问题,所以暂不考虑旋转处理,我们直接读取SPSSAU主成分结果即可。

5.计算主成分得分构造综合得分

5.1 线性组合系数与权重

前面我们用载荷系数形容指标与主成分间的关系。从原理上,主成分是指标变量的线性组合,即给指标变量数据线性组合的系数,就可以计算主成分得分数据。

手把手教你做主成分分析

图9 主成分表达式

ZX表示指标变量的标准化值,u表示线性组合系数,F为主成分,本例中我们采用PC表示F。

SPSSAU直接帮我们计算出线性组合系数,见下表。我们只需要将原始数据标准化获得标准化数据,那么就可以计算主成分得分PC。

手把手教你做主成分分析

图10 SPSSAU计算的线性组合系数

据上表可写出三个主成分得分数据的表达式。以第一主成分为例:

PC1=0.393*ZX1+0.103*ZX2+0.404* ZX3+0.454*ZX4+0.342 *ZX5+0.379* ZX6+0.452* ZX7

5.2 计算主成分得分数据

刚才我们以第一主成分为例写出来主成分计算公式,据此公式可以计算得到三个主成分的得分数据。线性组合的系数SPSSAU已经直接提供了,根据公式,我们还需要自己准备好原始数据的标准化值。

这项工作也可以在SPSSAU中直接实现。在“数据处理”栏目下,选中7个指标,选择“生成变量”,在右侧的功能中选择【Z标准化】,点击【确认处理】即可。

手把手教你做主成分分析

图11 标准化后的指标数据

可以在“我的数据”中浏览到标准化结果,然后利用上述部分的公式自行进行计算。

手把手教你做主成分分析

更省事的方式是直接使用SPSSAU的“主成分”保存功能,它会直接将主成分得分保存为新的标题操作如下图所示:

然后我们就会得到3个标题,类似名称为“PcaScore_****”,可通过右上角“我的数据”进行查看,或者下载使用,如下图:

手把手教你做主成分分析

图12 SPSSAU自动生成PC值查看

5.3 构造综合得分数据

获得主成分得分数据后,我们给各主成分分配权重系数,即可构造综合得分数据。本例的综合得分可表示为:

PC综合=0.5665*PC1+0.265*PC2+0.1685*PC3

三个主成分的归一化权重系数0.5665、0.2650、0.1685从何而来呢?它是用各主成分的方差除以累积方差计算的结果。这项计算工作,也可以让SPSSAU自动完成,选择“综合得分”复选框,就会得到一个类似为“CompScore_****”的数据标题,当然也可通过点击SPSSAU右上角“我的数据”进行查看或者下载综合得分数据。

6.完成综合评价及小结

6.1 综合得分数据做排名

主成分或因子分析用作综合评价研究,最后一步主要是基于主成分或公因子得分数据,以及构造的综合得分数据,对研究对象进行排名,根据各得分数据、排名的表现展开对研究对象的评价工作。

借助SPSSAU输出的综合得分数据,接着按PC综合得分数据对15

手把手教你做主成分分析

图13 综合得分与排名

个地区进行降序排列,给出15个地区经济发展的综合排名。最终,本案例主成分得分、综合得分、综合排名的结果见上表。接下来就是专业人士对该结果的解读和结论的讨论。这部分由具体研究人员根据上述表格结果完成即可。本例略。读者可参考阅读下方这篇论文:

马力, 史锦凤. 15个副省级城市区域经济发展水平的实证分析[J]. 科技进步与对策, 2006, 23(12):3.

6.2 本篇小结

主成分分析,是考察多个变量间相关性的一种多元统计方法,基本思想是在保留原始数据尽可能多的信息前提下达到降维目的,简化问题并抓住主要矛盾。最后构建出少数几个替代原始数据的主成分,它们是原始变量的线性组合。总体来说,主成分分析和因子分析在数据要求上,分析目的上是一致的,能使用主成分分析的研究,也一定能用因子分析实现研究目的。但从统计工具实现的角度来说,显然常见统计工具对因子分析的支持更完善,对主成分分析的支持则各有不同。SPSSAU既可以做主成分分析也可以实现因子分析,且可以直接帮我们计算指标权重系数。SPSSAU主成分分析还可以直接获得线性组合的系数、主成分得分和综合得分,为用户实现主成分分析提供了便利。文章来源地址https://www.toymoban.com/news/detail-429757.html

到了这里,关于手把手教你做主成分分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你暴力破解

    暴力破解是一种攻击手段,使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。 2.1标题基于表单的暴力破解 2.1.1 第一步:打开burpsuite拦截 2.1.2 第二步:将拦截到的包右击发送到intruder模块 (其中简单介绍一下intruder模块) Target主要是设置暴力破解访问的host地址

    2024年02月07日
    浏览(36)
  • 手把手教你落地DDD

    一、前言 常见的DDD实现架构有很多种,如经典四层架构、六边形(适配器端口)架构、整洁架构(Clean Architecture)、CQRS架构等。架构无优劣高下之分,只要熟练掌握就都是合适的架构。本文不会逐个去讲解这些架构,感兴趣的读者可以自行去了解。 本文将带领大家从日常的

    2024年02月16日
    浏览(32)
  • 手把手教你实战TDD

    领域驱动设计,测试驱动开发。 我们在《手把手教你落地DDD》一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解、TDD常见误区、TDD技术选型,以及案例实战。希望通过本文,读者能够理解掌握TDD并将其应用于实际

    2024年02月08日
    浏览(30)
  • 手把手教你如何使用SimiliarWeb

    在之前的“手把手教你如何使用Google Trends”文章中我们讲到从事跨境电商的卖家第一步遇到的问题是“客户在哪里?”该如何推广我的产品?因此若想自己的店铺做大做好,则需要工具来帮助分析市场行情,根据市场行情调整自己的业务状况。小编在上篇中已经讲解了三个特

    2024年02月09日
    浏览(40)
  • 手把手教你如何使用Docker

    我们在公司开发中,会有开发环境,测试环境,上线环境, 比如我们开发人员开发好了一个项目,在开发环境中运行正常,但测试人员拉到测试环境就跑不起来【jdk版本等】,或者上线的时候运行不起来,这时候就要为每个机器配置一个环境,那运维人员不得累死?【哈哈,

    2024年02月10日
    浏览(46)
  • 手把手教你Linux的网络配置

    目录 网络连接测试 测试Linux虚拟机是否与主机连接 测试主机是否与虚拟机连接 网络连接模式 桥接模式 NAT模式 仅主机模式 修改静态IP 修改 IP 地址后可能会遇到的问题 配置主机名 测试Linux虚拟机是否与主机连接 首先可以在windows界面,windows + R键输出cmd打开命令行,输入  

    2024年02月03日
    浏览(37)
  • 手把手教你怎么写顺序表

    目录 一、顺序表有什么功能? 二、实现顺序表的各个功能 1.前置准备 2.初始化顺序表 3.顺序表扩容 4.打印顺序表 5.增加顺序表成员 5.1尾增 5.2头增  6.删除顺序表中成员的内容 6.1尾删 6.2头删  7.查找成员  8.修改(替换) 9.插入(在目标位置插入成员) 10.定向删除(将目标位置的成

    2024年02月15日
    浏览(40)
  • 手把手教你反编译小程序

    操作系统: win10 10.0.19042 node: v14.17.0 微信开发者工具: Stable 1.05.2110290 在电脑端安装模拟器工具,这里以夜神模拟器为例, 在模拟器中安装微信:用于微信打开小程序时加载小程序包。 在模拟器中文件管理器:用于查看小程序包,这里使用模拟器自带的Amaze。 文件共享路径:可

    2024年02月08日
    浏览(31)
  • 手把手教你kali渗透Metasploitable

    2.ifconfig查看Metasploitable的IP: 端口爆破:FTP、SSH等 工具:Hydra 备用字典:user.txt: pass,txt: 一、 爆破FTP //注意路径是桌面还是Desktop 二、 爆破SSH 利用爆破得到的用户名和密码,进行远程连接测试: 成功连接: 三、端口渗透: 利用metasploit 然后在kali linux中进行渗透: 启动msf msf

    2024年02月06日
    浏览(31)
  • 手把手教你彻底卸载MySQL

    ❤写在前面 ❤博客主页: 努力的小鳴人 ❤系列专栏: MySQL8.0基础学习 ❤欢迎小伙伴们, 点赞👍关注🔎收藏🍔 一起学习! ❤如有错误的地方,还请小伙伴们指正!🌹 ​ 目录 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 步骤4:清理注册表 步骤5:删除

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包