主成分分析与因子分析及SPSS实现

一、主成分分析

(1)问题提出
在问题研究中,为了不遗漏和准确起见,往往会面面俱到,取得大量的指标来进行分析。比如为了研究某种疾病的影响因素,我们可能会收集患者的人口学资料、病史、体征、化验检查等等数十项指标。如果将这些指标直接纳入多元统计分析,不仅会使模型变得复杂不稳定,而且还有可能因为变量之间的多重共线性引起较大的误差。有没有一种办法能对信息进行浓缩,减少变量的个数,同时消除多重共线性?
这时,主成分分析隆重登场。
(2)主成分分析的原理
主成分分析的本质是坐标的旋转变换,将原始的n个变量进行重新的线性组合,生成n个新的变量,他们之间互不相关,称为n个“成分”。同时按照方差最大化的原则,保证第一个成分的方差最大,然后依次递减。这n个成分是按照方差从大到小排列的,其中前m个成分可能就包含了原始变量的大部分方差(及变异信息)。那么这m个成分就成为原始变量的“主成分”,他们包含了原始变量的大部分信息。
注意得到的主成分不是原始变量筛选后的剩余变量,而是原始变量经过重新组合后的“综合变量”。
我们以最简单的二维数据来直观的解释主成分分析的原理。假设现在有两个变量X1、X2,在坐标上画出散点图如下:

可见,他们之间存在相关关系,如果我们将坐标轴整体逆时针旋转45°,变成新的坐标系Y1、Y2,如下图:
根据坐标变化的原理,我们可以算出:
Y1 = sqrt(2)/2 * X1 + sqrt(2)/2 * X2
Y2 = sqrt(2)/2 * X1 – sqrt(2)/2 * X2
其中sqrt(x)为x的平方根。
通过对X1、X2的重新进行线性组合,得到了两个新的变量Y1、Y2。
此时,Y1、Y2变得不再相关,而且Y1方向变异(方差)较大,Y2方向的变异(方差)较小,这时我们可以提取Y1作为X1、X2的主成分,参与后续的统计分析,因为它携带了原始变量的大部分信息。
至此我们解决了两个问题:降维和消除共线性。
对于二维以上的数据,就不能用上面的几何图形直观的表示了,只能通过矩阵变换求解,但是本质思想是一样的。
二、因子分析
(一)原理和方法:
因子分析是主成分分析的扩展。
在主成分分析过程中,新变量是原始变量的线性组合,即将多个原始变量经过线性(坐标)变换得到新的变量。
因子分析中,是对原始变量间的内在相关结构进行分组,相关性强的分在一组,组间相关性较弱,这样各组变量代表一个基本要素(公共因子)。通过原始变量之间的复杂关系对原始变量进行分解,得到公共因子和特殊因子。将原始变量表示成公共因子的线性组合。其中公共因子是所有原始变量中所共同具有的特征,而特殊因子则是原始变量所特有的部分。因子分析强调对新变量(因子)的实际意义的解释。
举个例子:
比如在市场调查中我们收集了食品的五项指标(x1-x5):味道、价格、风味、是否快餐、能量,经过因子分析,我们发现了:
x1 = 0.02 * z1 + 0.99 * z2 + e1
x2 = 0.94 * z1 – 0.01 * z2 + e2
x3 = 0.13* z1 + 0.98 * z2 + e3
x4 = 0.84 * z1 + 0.42 * z2 + e4
x5 = 0.97 * z1 – 0.02 * z2 + e1
(以上的数字代表实际为变量间的相关系数,值越大,相关性越大)
第一个公因子z1主要与价格、是否快餐、能量有关,代表“价格与营养”
第二个公因子z2主要与味道、风味有关,代表“口味”
e1-5是特殊因子,是公因子中无法解释的,在分析中一般略去。
同时,我们也可以将公因子z1、z2表示成原始变量的线性组合,用于后续分析。
(二)使用条件:
(1)样本量足够大。通常要求样本量是变量数目的5倍以上,且大于100例。
(2)原始变量之间具有相关性。如果变量之间彼此独立,无法使用因子分析。在SPSS中可用KMO检验和Bartlett球形检验来判断。
(3)生成的公因子要有实际的意义,必要时可通过因子旋转(坐标变化)来达到。
三、主成分分析和因子分析的联系与区别
联系:两者都是降维和信息浓缩的方法。生成的新变量均代表了原始变量的大部分信息且互相独立,都可以用于后续的回归分析、判别分析、聚类分析等等。
区别:
(1)主成分分析是按照方差最大化的方法生成的新变量,强调新变量贡献了多大比例的方差,不关心新变量是否有明确的实际意义。
(2)因子分析着重要求新变量具有实际的意义,能解释原始变量间的内在结构。
SPSS没有提供单独的主成分分析方法,而是混在因子分析当中,下面通过一个例子来讨论主成分分析与因子分析的实现方法及相关问题。
一、问题提出
男子十项全能比赛包含100米跑、跳远、跳高、撑杆跳、铅球、铁饼、标枪、400米跑、1500米跑、110米跨栏十个项目,总分为各个项目得分之和。为了分析十项全能主要考察哪些方面的能力,以便有针对性的进行训练,研究者收集了134个顶级运动员的十项全能成绩单,将通过因子分析来达到分析目的。
二、分析过程
变量视图:
数据视图(部分):
菜单选择(分析->降维->因子分析):

打开因子分析的主界面,将十项成绩选入”变量“框中(不要包含总分),如下:
点击”描述“按钮,打开对话框,选中”系数“和”KMO和Bartlett球形度检验“:

上图相关解释:
”系数“:为变量之间的相关系数阵列,可以直观的分析相关性。
”KMO和Bartlett球形度检验“:用于定量的检验变量之间是否具有相关性。
点击”继续“,回到主界面,点击”抽取“,打开对话框。
”方法“ =>”主成分“,”输出“=>”未旋转的因子解“和”碎石图“,”抽取“=>”基于特征值“,其余选择默认。

解释:
①因子抽取的方法:选取默认的主成分法即可,其余方法的计算结果可能有所差异。
②输出:”未旋转的因子解”极为主成分分析结果。碎石图有助于我们判断因子的重要性(详细介绍见后面)。
③抽取:为抽取主成分(因子)的方法,一般是基于特征值大于1,默认即可。
点击”继续“,回到主界面,点击”确定“,进入分析。
输出的主要表格如下:
(1)相关性检验
因子分析要求变量之间有相关性,所以首先要进行相关性检验。首先输出的是变量之间的相关系数矩阵:

可以直观的看到,变量之间有相关性。但需要检验,接着输出的是相关性检验:
上图有两个指标:第一个是KMO值,一般大于0.7就说明不了之间有相关性了。第二个是Bartlett球形度检验,P值<0.001。综合两个指标,说明变量之间存在相关性,可以进行因子分析。否则,不能进行因子分析。
(2)提取主成分和公因子
接下来输出主成分结果:

这就是主成分分析的结果,表中第一列为10个成分;第二列为对应的”特征值“,表示所解释的方差的大小;第三列为对应的成分所包含的方差占总方差的百分比;第四列为累计的百分比。一般来说,选择”特征值“大于1的成分作为主成分,这也是SPSS默认的选择。
在本例中,成分1和2的特征值大于1,他们合计能解释71.034%的方差,还算不错。所以我们可以提取1和2作为主成分,抓住了主要矛盾,其余成分包含的信息较少,故弃去。
下面,输出碎石图,如下:
碎石图来源于地质学的概念。在岩层斜坡下方往往有很多小的碎石,其地质学意义不大。碎石图以特征值为纵轴,成分为横轴。前面陡峭的部分特征值大,包含的信息多,后面平坦的部分特征值小,包含的信息也小。
由图直观的看出,成分1和2包含了大部分信息,从3开始就进入平台了。
接下来,输出提取的成分矩阵:

上表中的数值为公因子与原始变量之间的相关系数,绝对值越大,说明关系越密切。公因子1和9个运动项目都正相关(注意跑步运动运动的计分方式,时间越短,分数越高),看来只能称为“综合运动”因子了。公因子2与铁饼、铅球正相关,与1500米跑、400米跑负相关,这究竟代表什么意思呢?看来只能成为“不知所云”因子了。
(三)因子旋转
前面提取的两个公因子一个是大而全的“综合因子”,一个不知所云,得到这样的结果,无疑是分析的失败。不过,不要灰心,我们可以通过因子的旋转来获得更好的解释。在主界面中点击“旋转”按钮,打开对话框,“方法”=>“最大方差法”,“输出”=>“旋转解”。

点击“继续”,回到主界面点击“确认”进行分析。输出结果如下:
这是选择后的成分矩阵。经过旋转,可以看出:
公因子1得分越高,所有的跑步和跨栏成绩越差,而跳远、撑杆跳等需要助跑类项目的成绩也越差,所以公因子1代表的是奔跑能力的反向指标,可称为“奔跑能力”。
公因子2与铁饼和铅球的正相关性很高,与标枪、撑杆跳等需要上肢力量的项目也正相关,所以该因子可以成为“上肢力量”。
经过旋转,可以看出公因子有了更合理的解释。
(四)结果的保存
在最后,我们还要将公因子储存下来供后续使用。点击“得分”按钮,打开对话框,选中“保存为变量”,方法采用默认的“回归”方法,同时选中“显示因子得分系数矩阵”。

SPSS会自动生成2个新变量,分别为公因子的取值,放在数据的最后。同时会输出一个因子系数表格:

由上图,我们可以写出公因子的表达式(用F1、F2代表两个公因子,Z1~Z10分别代表原始变量):

F1 = -0.16*Z1+0.161*Z2+0.145*Z3+0.199*Z4-0.131*Z5-0.167*Z6+0.137*Z7+0.174*Z8+0.131*Z9-0.037*Z10
F2同理,略去。
注意,这里的变量Z1~Z10,F1、F2不再是原始变量,而是标准正态变换后的变量。

主成分分析与因子分析及SPSS实现相关推荐

  1. SPSS(十一)SPSS信息浓缩技术--主成分分析、因子分析(图文+数据集)

    SPSS(十一)信息浓缩技术--主成分分析.因子分析(图文+数据集) 当我们的自变量存在多重共线性,表现为进行回归时候方程系数估计不正常以及方程检验结果不正常,也许我们可以使用变量挑选的办法(手动挑选 ...

  2. 主成分分析和因子分析十大不同点

    主成分分析和因子分析无论从算法上还是应用上都有着比较相似之处,本文结合以往资料以及自己的理解总结了以下十大不同之处,适合初学者学习之用. 1.原理不同 主成分分析基本原理:利用降维(线性变换)的思想, ...

  3. 关于聚类分析、判别分析、主成分分析、因子分析等多元统计分析方法

    转载自:http://blog.csdn.net/nieson2012/article/details/25408421 主成分分析与因子分析的区别 1. 目的不同: 因子分析把诸多变量看成由对每一个 ...

  4. 主成分分析与因子分析之比较及实证分析

    一.问题的提出 在科学研究或日常生活中,常常需要判断某一事物在同类事物中的好坏.优劣程度及其发展规律等问题.而影响事物的特征及其发展规律的因素(指标)是多方面的,因此,在对该事物进行研究时,为了能更全 ...

  5. R语言稀疏主成分分析、因子分析、KMO检验和Bartlett球度检验分析上市公司财务指标数据...

    全文链接:http://tecdat.cn/?p=31080 R中的主成分分析(PCA)和因子分析是统计分析技术,也称为多元分析技术(点击文末"阅读原文"获取完整代码数据). 当可 ...

  6. R数据分析:潜变量与降维方法(主成分分析与因子分析)

    今天把潜变量和降维分析的方法合起来给大家写写,因为这两个东西之间有诸多共同之处. 潜变量 为啥需要潜变量呢?考虑一个问题,比如你想测测一个人有多幸福,你怎么测? 估计你会看看这个人: 脸上有没有笑容 ...

  7. 主成分与因子分析异同_如何做主成分分析和因子分析?它们的区别与联系在哪里?...

    "主成分分析和因子分析有什么区别和联系?"这个问题其实很多朋友在后台提问过,今天将这个问题的答案写成推送分享给大家.以后有问题或需求,请在下方留言区留言.觉得解释得好的朋友,记得打 ...

  8. 主成分分析和因子分析的介绍、区别和联系

    本文介绍一下主成分分析.因子分析,进而介绍它们之间的区别和联系. 两个方法的推导我也还有一些没有完全理解,因此中间有些理解可能有误,请大家批评指正 主成分分析 主成分分析:将多个有一定相关性的指标进行 ...

  9. 主成分分析、因子分析、聚类分析的比较与应用

    听说这是一篇论文 不过我没详细看. 一.概述 主成分分析就是将多项指标转化为少数几项综合指标,用综合指标来解释多变量的方差- 协方差结构.综合指标即为主成分.所得出的少数几个主成分,要尽可能多地保留原 ...

  10. 四十八、使用Python和Stata完成广西碳酸钙企业的主成分分析和因子分析

    @Author:Runsen 我希望读者可以看懂它 你对你的要求就是看懂它 在3月份,一个大四金融想找我帮她做一个主成分分析和因子分析,我看是女的,就答应,而且她还没给我钱,看作是女的,就算了. 数据 ...

最新文章

  1. windows XP下Python2.7包管理工具安装-setuptool,pip、distribute、nose、virtualenv
  2. Science公布2021年度十大科学突破,AI这项前所未有的突破上榜
  3. 如何备份被独占文件?
  4. 5最后一条记录_在一堆数据中,如何获取最后一次记录?
  5. Oracle删除用户和表空间
  6. 根据href给当前导航添加样式
  7. jni 从c传递map到java_java_jni 本地调用接口DLL的编写样本,涉及数组传递,相关的 和C程序均已包括。 Develop 256万源代码下载- www.pudn.com...
  8. Bailian4003 十六进制转十进制【入门】
  9. php 打印 域名ip_php如何获取域名IP地址代码函数
  10. docker compose启动服务超时重启记录
  11. php的substr函数的作用是,PHP substr函数的实现功能技巧讲解
  12. Linux的使用_尚硅谷视频学习笔记
  13. Origin曲线拟合教程
  14. 树莓派linux负载均衡集群,在树莓派2上Nginx并发1W到底有多难
  15. Flex布局-实现网上商城-个人中心页面
  16. 北大光华管理学院-宏观经济学
  17. 知网、维普、万方文献一网打尽免费下载,亲测好用哦!
  18. 独立IP与共享IP有什么区别
  19. 习题8-6 删除字符(多种方法详解)
  20. 概率论知识回顾(四):事件独立性、贝努利概型

热门文章

  1. MY CSDB BLOG 第一篇
  2. Vue2.5.1+Spring支持分销、团购、秒杀、优惠券、微信商城项目,源码免费分享
  3. 1024 科学计数法(C语言)测试点4详解
  4. FreeRTOS使用教程(配合CubeMX)
  5. c#对Aspose.Word替换书签内容的简单封装
  6. 基于MATLAB印刷体汉字识别解析
  7. 三星note9刷android11,【极光ROM】-【三星NOTE9 N960X-845】-【V17.0 Android-Q-TG1】
  8. HTTP状态码及对应原因
  9. mysql简单人事管理系统_简易人事管理系统(pyqt5+mysql)
  10. Windows10下编译Nginx源码