主成分分析和因子分析的理论与速成应用丨R语言和SPSS比较案例

小卫哥之数据分析
R语言学习者、爬虫、SPSS、民谣

​关注他

13 人赞了该文章

本章内容
□ 主成分分析
□ 探索性因子分析
□ 理解其他潜变量模型

学习计划:


背景

在实际的科学研究中,为了更好地、全面地、完整地把握和认识问题,我们往往对反映问题的多个变量进行大量观测,尽可能多地收集关于分析对象的数据信息。在大多数情况下,这些变量之间可能存在着相关性,从而增加了数据分析的复杂性。为了更能充分有效地利用数据,通常希望用较少的指标来代替原先较多的变量,同时又要求这些较少的指标尽可能多地反映原始变量的信息,而这些指标之间又互不相关。在本章中的主成分分析和因子分析就是解决这类问题的方法之一。

主成分分析(PCA)是一种数据降维技巧,它能将相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。例如,使用PCA可将30个相关(很可能冗余)的环境变量转化为5个无关的成分变量,并且尽可能地保留原始数据集的信息。

探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显式的变量间的关系。

PCA与EFA模型间的区别参见下图。


主成分(PC1和PC2)是观测变量(X1到X5)的线性组合。形成线性组合的权重都是通过最大化各主成分所解释的方差来获得,同时还要保证各主成分间不相关。

什么叫最大化各主成分所解释的方差?如何验证各主成分间的独立性?

因子(F1和F2)被当做观测变量的结构基础或“原因”,而不是他们的线性组合。代表观测变量方差的误差(e1到e5)无法用因子来解释。图中的圆圈表示因子和误差无法直接观测,但是可通过变量间的相互关系推导得到。在本例中,因子间带曲线的箭头表示它们之间的相关性。在EFA模型中,相关因子是常见的,但并不是必须的。

1.R中的主成分和因子分析丨R

R的基础安装包提供了PCA和EFA的函数,分别为princomp()和factanal()。本章我们将重点介绍psych包中提供的函数。它们提供了比基础函数更丰富和有用的选项。另外,输出的结果形式也更为社会学家所熟悉,与其他统计软件如(SAS和SPSS)所提供的输出十分相似。


最常见的EFA处理步骤如下:

  1. 数据预处理。PCA和EFA都根据观测变量间的相关性来推导结果。用户可以输入原始数据矩阵或者相关系数矩阵到principal()和fa()函数中。若输入初始数据,相关系数矩阵将会自动计算,在计算前请确保数据中没有缺失值。
  2. 选择因子模型。判断是PCA(数据降维)还是EFA(发现潜在结构)更符合你的研究目标。如果选择EFA方法,你还需要选择一种估计因子模型的方法(如最大似然估计)。
  3. 判断要选择的主成分/因子数目。
  4. 选择主成分/因子。
  5. 旋转主成分/因子。
  6. 解释结果。
  7. 计算主成分或因子得分。

******************************************************************************************

一、主成分分析

2.主成分分析丨SPSS

2.1主成分分析原理和方法

主成分分析(Principal Component Analysis)的思维就是利用降维思想,将多个互相关联的数值变量转化成少数几个互不相关的综合指标的统计方法。这些综合指标就是原来多个变量的主成分,每个主成分都是原始变量的线性组合,并且各个主成分之间互不相关。

主成分分析的任务之一就是计算主成分,计算步骤是:首先将原有的变量标准化,然后计算各变量之间的相关矩阵、该矩阵的特征根和特征向量,最后将特征根由大到小排列,分别计算出对应的主成分。

主成分分析的另一个任务是确定主成分的个数,确定方法主要有两种:

  1. 累计贡献率:当前k个主成分的累计贡献率达到某一特定值(一般采用70%以上)时,则保留前k个主成分;
  2. 特征根:一般选取特征根≥1的主成分。

2.2 主成分分析中的相关概念

  1. 特征根(Eigenvalue):表示主成分影响力度大小的指标,即引入该主成分后可以解释平均多少原始变量的信息。如果特征根小于1,说明该主成分的解释程度还不如直接引入一个原始变量的平均解释程度大,因此在确定主成分个数时,常常选取特征根大于1的主成分。
  2. 主成分Zi的方差贡献率,计算公式为:

式中分子表示主成分Zi的方差在全部方差中的比重。这个值越大,表明主成分Zi综合原始变量信息的能力越强。

3.累计贡献率:前K个主成分的累计贡献率定义如下,表示前K个主成分累计提取了原始变量多少的信息:


2.3 主成分分析的用途

主要的用途我们在这里介绍两种常用的:

  1. 主成分评价:在进行多指标综合评价时,由于要求结果客观、全面,就需要从各个方面用多个指标进行测量,但这样就会使得各观测指标间存在信息重叠,同时还存在量纲、累加时如何确定权重系数等问题。因此使用主成分分析方法进行信息的浓缩,并解决权重的确定等问题。
  2. 主成分回归:在线性模型中,常用最小二乘法求回归系数的估计。但由于共线性的存在,最小二乘法的估计结果并不是很理想。这时我们可以考虑主成分回归求回归系数的估计,所谓主成分回归使用原始自变量的主成分代替原始自变量做回归分析。多重共线性是由于自变量之间关系复杂、相关性大引起的,而主成分既保留了原指标的绝大部分信息,又有主成分之间互不相关的优点,故借用主成分替代原始指标后,再用最小二乘法建立主成分与目标变量之间的回归方程,所得的回归系数估计能克服“估计不稳定”的缺点。但主成分回归不是无偏估计。

2.4 实例与操作丨SPSS

实例:某研究单位测得20名肝病患者4项肝功能指标:转氨酶(x1)、肝大指数(x2)、硫酸锌浊度(x3)、甲胎球蛋白(x4),试做主成分分析。

  1. 操作:(用软件,比较简单,这里不再介绍)
  2. 结果解读:

(1)统计描述:包括均数、标准差和样本量,如下图所示:


(2)相关矩阵:包含偏相关系数及其相应的P值,如下图所示:


(3)主成分结果如下图所示:包括特征根由大到小的排列顺序、各主成分的贡献率和累计贡献率:第一主成分的特征根为1.718,它解释了总变异的42.956%,第二主成分的特征根为1.094,解释了总变异的27.338%。前两个主成分的特征根均大于1,累计贡献率达到了70.295%。由于第三个主成分的特征根接近于1,且其贡献率与第二主成分相近,故本例选取3个主成分,此时累计贡献率达到了94.828%。


(4)成分矩阵如下图:可见第一主成分包含原变量转氨酶(x1)和肝大指数(x2)的信息,因此第一主成分可作为急性肝炎的描述指标。类似的第二主成分包含原变量硫酸锌浊度(x3)的信息,可作为慢性肝炎的描述指标。第三成分可作为原发性肝癌的描述指标。


(5)如下为因子的得分系数矩阵。这是主成分分析的最终结果,通过该系数矩阵可以将主成分表示为各个变量的线性组合。本题可以写出三个主成分的表达式:


Z1=0.534*stdx1+0.526*stdx2+0.067*stdx3+0.124*stdx4;
Z2=0.091*stdx1-0.271*stdx2+0.865*stdx3+0.292*stdx4
Z3=-0.242*stdx1+0.059*stdx2-0.273*stdx3+0.939*stdx4

其中stdxi(i=1、2、3、4)表示指标变量:

stdx1=(x1-138)/88.888
stdx2=(x2-2.325)/1.0548
stdx3=(x3-15)/7.420
stdx4=(x4-35.5)/21.879

(6)成分得分协方差矩阵:


3 主成分分析丨R

PCA的目标是用一组较少的不相关变量代替大量相关变量,同时尽可能保留初始变量的信息,这些推导所得的变量称为主成分,它们是观测变量的线性组合。如第一主成分为:


它是k个观测变量的加权组合,对初始变量集的方差解释性最大。第二主成分也是初始变量的线性组合,对方差的解释性排第二,同时与第一主成分正交(不相关)。后面每一个主成分都最大化它对方差的解释程度,同时与之前所有的主成分都正相交。理论上来说,你可以选取与变量数相同的主成分,但从实用的角度来看,我们都希望用较少的主成分来近似全变量集。下面看一个简单的示例。

数据集USJudgeRatings包含了律师对美国高等法院法官的评分。数据框包含43个观测,12个变量。如下表列出了所有的变量。


3.1 判断主成分的个数丨R

以下是一些可用来判断PCA中需要多少个主成分的准则:

  • 根据先验经验和理论知识判断主成分分数;
  • 根据要解释变量方差的积累值的阈值来判断需要的主成分数;
  • 通过检查变量间kxk的相关系数矩阵来判断保留的主成分数。

最常见的是基于特征值的方法。每个主成分都与相关系数矩阵的特征值相关联,第一主成分与最大的特征值相关联,第二主成分与第二大的特征值相关联,依次类推。Kaiser-Harris准则建议保留特征值大于1的主成分(此与前面一部分介绍的理论一致),特征值小于1的成分所解释的方差比包含在单个变量中的方差更少。

利用fa.parallel()函数,你可以同时对三种特征值判别准则进行评价。对于11种评分,代码如下:

> install.packages("psych")
> library(psych)
> fa.parallel(USJudgeRatings[,-1],fa="pc",n.iter = 100,
+         show.legend=F,main="Scree plot with parallel analysis")
The estimated weights for the factor scores are probably incorrect.  Try a different factor extraction method.
Parallel analysis suggests that the number of factors =  NA  and the number of components =  1


评价美国法官评分中要保留的主成分个数。碎石图(直线与X符号)、特征值大于1准则(水平线)和100次模拟的平行分析(虚线)都表明保留一个主成分即可。

三种准则表明选择一个主成分即可保留数据集的大部分信息。下一步是使用principal()函数挑选出相应的主成分。

3.2 提取主成分

之前已经介绍过,principal()函数可以根据原始矩阵或者相关系数矩阵做主成分分析。格式为:

principal(r,nfactors=,rotate=,scores=)

其中:

  • r是相关系数矩阵或原始数据矩阵;
  • nfactors设定主成分系数(默认为1);
  • rotate指定旋转的方法(默认最大方差旋转(varimax));
  • scores设定是否需要计算主成分得分(默认不需要)。

使用代码清单14-1中的代码可获取第一主成分。

代码清单14-1 美国法官评分的主成分分析

> library(psych)
> pc <- principal(USJudgeRatings[,-1],nfactors = 1)
> pc
Principal Components Analysis
Call: principal(r = USJudgeRatings[, -1], nfactors = 1)
Standardized loadings (pattern matrix) based upon correlation matrixPC1   h2     u2 com
INTG 0.92 0.84 0.1565   1
DMNR 0.91 0.83 0.1663   1
DILG 0.97 0.94 0.0613   1
CFMG 0.96 0.93 0.0720   1
DECI 0.96 0.92 0.0763   1
PREP 0.98 0.97 0.0299   1
FAMI 0.98 0.95 0.0469   1
ORAL 1.00 0.99 0.0091   1
WRIT 0.99 0.98 0.0196   1
PHYS 0.89 0.80 0.2013   1
RTEN 0.99 0.97 0.0275   1
             PC1


http://www.taodudu.cc/news/show-2395310.html

相关文章:

  • itest手机考试有监控吗_itest考试有声音监控吗?
  • itest听力答案2020_大学英语itest2018答案
  • 习题--答案--22/6/8
  • 大学计算机试题深圳大学,深圳大学期末考试试卷参考答案.doc
  • java理论笔试题_Java基础笔试题及答案
  • 计算机四级c语言试题及答案,计算机等级考试试题及答案
  • itest Tutorial
  • itest测试
  • ITest
  • itest windows客户端数据库破解
  • itest考试切屏能检测出来吗_itest考试作弊怎么检测
  • itest英语考试bug_ITEST 使用常见问题之教师篇
  • unipus iTEST考试助手---写脚本与反脚本的拉锯战
  • itest听力答案2020_2020高中英语听力训练测试与答案
  • itest考试系统破解 解决复制粘贴限制
  • 视频采集卡是什么?采集卡的妙用!
  • C#视频采集方法对比
  • V4L2视频采集的基本流程
  • 树莓派摄像头——图像 视频采集
  • 音视频采集-摄像头视频采集(原理与实现)
  • usb计算机采集卡,关于usb视频采集卡 hdmi设置你可能不知道
  • AVFoundation音视频采集(三)
  • 宏晶微MS2109高清视频采集芯片资料
  • 宏晶微MS2130 USB3.0高清视频采集芯片应用于直播导播一体机
  • iOS视频开发(一):视频采集
  • MS2131 USB 3.0 高清音视频采集+ HDMI 环出+混音处理芯片
  • 采集卡属于计算机设备还是采集设备,显卡能做视频采集卡吗?
  • USB 3.0 高清音视频采集芯片——MS2130
  • 基于RTMP的视频采集上报播放预警方案设计与实现
  • MediaFoundation视频采集

主成分分析和因子分析的理论与速成应用丨R语言和SPSS比较案例相关推荐

  1. 主成分分析和因子分析及其在R中的…

    1  主成分分析和因子分析比较 主成分分析和探索性因子分析是两种用来探索和简化多变量复杂关系的常用方法,它们之间有联系也有区别. 主成分分析(PCA)是一种数据降维方法,它能将大量相关变量转化为一组很 ...

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

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

  3. R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

    R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...

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

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

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

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

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

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

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

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

  8. 主成分分析、因子分析和聚类分析的区别

    主成分分析就是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标. 综合指标即为主成分.所得出的少数几个主成分,要尽可能多地保留原始变量的信息,且彼此不 ...

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

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

  10. matlab主成分分析散点图_基于matlab的主成分分析与因子分析

    基于matlab的主成分分析与因子分析文件"实验七.xls" sheet1列出了三个美国制造商所生产的早餐方便粥的数据,这三家厂商是:通用牛奶,克罗格和夸克.将早餐方便粥的品牌按照 ...

最新文章

  1. 实战Cacti网络监控(1)——基础安装配置
  2. 【学习笔记】新基建/新动能——部分学习笔记
  3. python tkinter计算器实例_python小实例——tkinter实战(计算器)
  4. VMware Workstation 12新建虚拟机
  5. 2019.NET Conf China,.NET之崛起,已势不可挡
  6. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题
  7. java mapper.readtree_java - 杰克逊的readValue和readTree:何时使用哪个? - 堆栈内存溢出...
  8. 程序员需知的 58 个网站!个个经典
  9. java9类加载器_深入理解java虚拟机(九)类加载器以及双亲委派模型
  10. 第 7 章 Neutron - 082 - 将 instance 连接到 first_local_net
  11. Python3 学习第十二弹: 补充something
  12. wps linux 64 下载,WPS For Linux 10.1.0.6757社区版发布下载
  13. 绝了!深入分布式缓存从原理到实践技术分享,超详细
  14. LaTeX插入Visio绘图,文字模糊
  15. oppoJava面试!一招彻底帮你搞定HashMap源码,极其重要
  16. 李大狗:从 Logo, Basic 到区块链 - Mixin Network 开发者访谈系列 第二期
  17. Winedit7.0自定义一键编译
  18. 【mediasoup】网络控制4 :基于GoogCc 实现网络控制
  19. is not eligible for getting processed by all BeanPostProcessors 导致找不到路径报404
  20. Docker build 报错 “ Cannot find a valid baseurl for repo: base/7/x86_64 ” 解决

热门文章

  1. Netron 可视化Pytorh模型架构
  2. Swarm(bzz)软启动版本v.0.0-rc2
  3. word打出计算机图形符号,word显示所有格式标记
  4. 如何在 Mac 上更改文件夹颜色,改变 mac 文件夹颜色教程
  5. PHP 生成PDF文件并向PDF添加图片
  6. 一起学Python_Day05_常用模块及相关操作
  7. 东欧小哥打造超全Python速查表登上GitHub热榜,标星4600+
  8. 正高、正常高和大地高的区别
  9. ipad触屏失控出现乱跳
  10. 配置电脑使用Wireshark抓到有VLAN Tag标签的报文