精华内容
下载资源
问答
  • SPSS 那么简单还免费,为什么还要用 Python 做因子分析(factor analysis)呢?工作狗表示,建模的目的是要卖钱的,也就是要嵌入到公司开发的产品上去,用 Python 写因子分析(factor analysis),总比找SPSS的接口...

    为什么?

    SPSS 那么简单还免费,为什么还要用 Python 做因子分析(factor analysis)呢?工作狗表示,建模的目的是要卖钱的,也就是要嵌入到公司开发的产品上去,用 Python 写因子分析(factor analysis),总比找SPSS的接口更容易让大家接受。

    算法核心

    因子分析法(factor analysis)的核心是对若干综合指标进行因子分析并提取公共因子,再以每个因子的方差贡献率作为权数与该因子的得分乘数之和构造得分函数。

    Python代码

    先把该装上的模块都装上哈,比如:factor_analyzer

    安装方法:

    1. 系统解释器:    pip install factor_analyzer;
    2. conda-jupyter:conda install -c desilinguist factor_analyzer;

     

    第一步:看原数据

    总觉得看到原数据是个什么样子,心里才有点谱,所以基本每一篇博客都要先展示一下原数据。

    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    from factor_analyzer import FactorAnalyzer
    
    datafile = u'D:\\pythondata\\textdata.xlsx'
    data = pd.read_excel(datafile)
    data.head()
      指标1 指标2 指标3 指标4 指标5 指标6 指标7 指标8 指标9 指标10
    0 0.003790 0.003790 0.004935 0.0076 0.40 0.0060 0.4000 0.0060 1.1538 NaN
    1 NaN NaN 0.465854 NaN NaN NaN 0.0909 0.1427 1.1579 NaN
    2 0.294889 0.124683 0.144793 0.0735 0.25 0.0735 0.2000 0.0631 1.0800 0.4444
    3 0.668122 0.668122 0.668122 0.8010 0.50 0.8010 0.5000 0.8010 1.0313 0.3636
    4 0.304509 0.188622 0.188622 0.2026 0.40 0.2026 0.4000 0.2026 1.0600 0.5556

    有一些空值,用0填充

    data = data.fillna(0)#用0填充空值

    这一步对应到 SPSS ,就是导入数据了,放一张 SPSS 的页面,下面每一步都会这样一一对应的讲解,希望熟悉 SPSS 的可以对上号,更快的学习用 Python 做因子分析。 

     

     第二步:数据清洗

    这里的原数据是用 mysql 清洗好的数据输出的指标值,所以这里不用清洗。清洗数据是一件繁重复杂的事情,有兴趣的可以单独去搜相关的文章学习。

     

    第三步:建模

    fa = FactorAnalyzer()
    fa.analyze(data, 5, rotation=None)#固定公共因子个数为5个
    print("公因子方差:\n", fa.get_communalities())#公因子方差
    print("\n成分矩阵:\n", fa.loadings)#成分矩阵
    var = fa.get_factor_variance()#给出贡献率
    print("\n解释的总方差(即贡献率):\n", var)

    输出结果:

    有人要问了,怎么python输出的结果和SPSS不一样呢?原因有二:

    1. SPSS默认用的提取方法是主成分分析,即PCA中的principal 函数,而模块factor_analyzer中用的提取方法是fa函数,具体是个什么区别我还没开始研究,等有时间研究研究再跟大家共享吧,懂的大神也欢迎指教;
    2. 第二个原因就是,SPSS选择了最大平衡法旋转,而python的代码中,了解的人会发现 rotation=None,没有旋转;

     

    第四步:输出因子得分

    因子分析关键的地方就是要输出公共因子的得分,这样才能计算综合得分。在SPSS中,只要勾选了【得分】中的【显示因子得分系数矩阵】,就会自动输出公共因子的得分,如下图所示。

     在python的factor_analyzer模块中也有这样的函数可以实现这样的功能

    fa_score = fa.get_scores(data)#因子得分
    fa_score.head()

     

    第五步:输出综合得分

     因子分析法综合得分的计算方式:

    score=( fac1 * fac1贡献率 +  fac2 * fac2贡献率 + ...... +  fac5 * fac5贡献率) / 所有因子的累计贡献率

    #将各因子乘上他们的贡献率除以总的贡献率,得到因子得分中间值
    a = (fa.get_scores(data)*var.values[1])/var.values[-1][-1]
    
    #将各因子得分中间值相加,得到综合得分
    a['score'] = a.apply(lambda x: x.sum(), axis=1)
    a.head()

    计算逻辑类似SPSS中的:

    结果:

     

    文章里也提到了python运行因子分析和SPSS的不同之处,待我研究清楚了再更新哈,想了解的伙伴可以关注一下。

    链接:下载永久免费版SPSS的链接--欢迎一起学习

    链接:因子分析法原理的链接 -- 欢迎一起学习

    链接:factor-analyzer因子分析模块的官方文档

     


     

     

     

     

     

    展开全文
  • 主成分分析与因子分析及SPSS实现

    万次阅读 多人点赞 2018-05-25 11:27:12
    主成分分析与因子分析及SPSS实现一、主成分分析(1)问题提出在问题研究中,为了不遗漏和准确起见,往往会面面俱到,取得大量的指标来进行分析。比如为了研究某种疾病的影响因素,我们可能会收集患者的人口学资料、...

    主成分分析与因子分析及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不再是原始变量,而是标准正态变换后的变量。
    展开全文
  • 8、spss做因子分析及主成分分析

    万次阅读 2015-04-15 15:34:21
    在之前关于相关的内容里,我们就说过,相关,回归等分析的时候,消除多重共线性是一个很复杂很复杂的问题,一次数据分析的变量多达三四十个是很正常的情况,这个时候调整变量的效果往往微乎其微,因此就需要用到一...

    上一篇文章我们讨论完了回归的最后一部分内容,非线性回归。这一次我们正式结束回归,开始讨论降维分析。在之前关于相关的内容里,我们就说过,做相关,回归等分析的时候,消除多重共线性是一个很复杂很复杂的问题,一次数据分析的变量多达三四十个是很正常的情况,这个时候调整变量的效果往往微乎其微,因此就需要用到一个有力办法,降维。

    现在我们就来谈一谈降维。首先要先明确一个概念,什么是降维。我们知道“维”是一个数学领域的一个术语,放在统计分析里边,我们可以简单的理解为一个变量就是一个维。降维的意思就是说把原来的许多变量通过一些方法压缩为较少的变量,这样变量数减少了,也就是维数减少了,也就叫降维。因子分析由于应用广泛,所以是最广为人知的降维方法。此外由于主成分分析和因子分析联系非常紧密,并且,注意,并且,spss没有独立的模块来做主成分分析,所以,我就同时讨论这两种技术了。

    【一】因子分析和主成分分析的异同

    因子分析和主成分分析的相同和不同的地方是每一个希望使用因子分析这种分析手段的人所必须要掌握的知识点。在博客或者各种论坛上,有许多相关的资源贴。我们在这里不从数学层面进行讨论,主要从应用层面来展开讨论。

    对于因子分析和主成分分析最主要的也是最重要的一点是:因子分析需要旋转矩阵,主成分分析则不用。(实际上,在spss里边,如果你做因子分析时旋转方法为不旋转的话,那你做的就是主成分分析)

    第二个不同点在于结果的解释:对于因子分析,要求公共因子不相关。主成分分析则不要求这个。这里不得不讲一点点原理性的东西。因子分析的目的是将输入变量表示成各因子的线性组合,而主成分分析则是试图选择出主成分,其表示为各变量的线性组合。(基本上比较绕)关键在于,主成分分析的目的是解释变量的总方差,而因子分析则侧重于解释各变量之间的协方差。也就是说,对于主成分分析,我们的目的是提取出主成分,用我们的变量来表示。而对于因子分析,我们的目的是找出公共因子,用这些公共因子去表示我们原有的变量。这个因果关系的不同,就要求因子分析中我们找到的公共因子可以从逻辑上被解释。

    因为我们不涉及原理的解说,因此主要的异同点就是这些了。

    【二】主成分分析的操作方法

    因为spss里并没有专门的模块可以用来做主成分分析,所以我们操作主成分析的时候,需要选择菜单分析——降维——因子分析,在因子分析的模块下做主成分分析。

    在主面板里把你想要分析的变量选到右边的大框框里。注意,这里不选地区啊,省份啊这些标志性的变量。你要选你认为信息有重合的变量,举个例子,比如身高和坐高在一项健康状况里有重叠性的作用,那你就把它们选到这个变量框里。下边的选择变量是用来选择个案的,一般不需要管它。

    打开描述对话框,全部勾选。打开抽取对话框,抽取对话框最上边有一个方法的下拉菜单。默认的是主成分。除了主成分以外,还有六种抽取方法,我们要做的是主成分分析,当然默认就可以啦,下边的输出勾选碎石图,未旋转的因子解。在下边有一个抽取。一般基于特征值就可以了。下边还有一个最大收敛性迭代次数,默认是25。打开旋转对话框,勾选载荷图。打开保存对话框,勾选保存为变量,显示因子得分系数矩阵。

    注意,注意。现在我们打开选项对话框。将缺失值勾选为使用均值替换。如果你的变量有缺失值,那么一定要千万记得这一步。不然你的变量得分会有缺失,就是说你的结果基本废了。我老是搞忘掉这一步,然后每次都想哭TAT。

    【三】主成分分析的结果解释

    第一个要看的表是kmo,这个表里的kmo度量值(第一行)告诉你你的数据是否适合做因子分析/主成分分析。这个值大于0.65就可以了。通常只要你的变量确实彼此之间有重叠,直观的想想都觉得有关系的话,而且变量数比较多的话,那kmo一般是过得去的。然后第二个表看解释的总方差,你看第二行有一个方差的百分比,第三行是累计百分比。我们主要看这两个指标,第一个指标告诉你每个主成分的解释的方差(你不用去管什么叫解释的方差,记住那个指标有用,怎么判断就可以了。),第二个指标是前几个主成分加起来的方差。仔细观察,你会发现这两个指标之间存在一个加法和和的关系。

    由于我们之前默认的提取方法是基于特征值,所以这里会自动为你提取主成分。不过我们一般认为提取的方差需要大于百分之八十五,如果你的主成分特征值大于1的累计方差值小于85%,那么很不幸的,我需要告诉你,你得重做一遍。这时候你的抽取里的个数,就选那个抽取固定的数目。然后设定的数目为你查这个表查询的得到的累计方差大于85%的主成分数目。

    然后看成分矩阵和成分系数矩阵,这两个表都是反映变量在成分的权重。不过成分矩阵可以看成是反映了一个绝对值,第二个则反映了用变量写成分的表达式怎么写(有了表达式,才能算出成分得分哇)。这个类似于啊,类似于回归里边的标准系数和非标准系数。

    最后一个是综合得分的计算,我们上边把成分得分保存为了变量,用这些成分得分可以计算一个综合得分出来,算法如下,用每个成分的方差的百分比作为权重,将成分相加就可以了。综合得分的用处在于排名次,比如看看全国31个省的通信质量的高低,通过综合得分就可以来排名。此外做聚类的时候哇,也可以用这个。

    【四】因子分析的操作方法

    类似于主成分分析。只是旋转那里勾选最大方差法。和大家公认的抽取方法里主成分法最好以外,选装方法一般认为最大方差法最好。

    【五】因子分析的结果解释

    类似于主成分分析。只是多了一个旋转成分矩阵。咳,注意了注意了。因子分析最精髓的一个点就在这里了。

    你看这个表的时候一定要很小心仔细,这个表的行是每个成分,列是每个变量,然后每个格格里对应的数就是相对应的变量在相对应的成分里的权重指标。我们需要反过来付过去的做因子分析,最后达到一个什么状态呢?最后达到每个成分在所有的变量里边有一个系数占绝对优势,明显比其他系数大的多。举个例子,一个变量在三个成分的系数分别是0.3,0.2,0.8,哎,这个里边0.8明显比其他的大,这个因子就可以。再比如,这三个系数是0.4,0.6,0.6,那由于出现了两个最大值,所以呢这个因子就不可以。通常来说,认为这个最大的系数和第二大要差0.2,这样才认为占了绝对优势。

    上边我们说过因子分析的重点在于,用公共因子去解释变量。认为变量收到了公共因子的影响。也就是说哇,我们认为有一个公共因子潜在的影响到了几个变量,使得他们表现出了多重共线性。所以呢,旋转成分矩阵里就要表现出这个公共因子对于变量的影响。一个变量不能既受这个因子的影响,又受那个因子的影响,一个变量只能受一个因子影响,所以它的系数只能有一个占大头。

    然后我们就有了分别代表一些不同变量的成分(既然一个变量只能由一个成分代表,那么每个成分代表的变量也就不同哇),然后,注意,然后,我们就可以给这些成分命名了。

    你大概很恼火,有完没完啊,不过命名还是挺简单的一个步骤,你观察你的每个成分所代表的变量,然后给它们命个名字。比如你的一个成分是身高,坐高,体重,那你就命名为人体体型,另一个成分是胸围,肩宽,盆骨宽,那你就命名为人体体宽,懂?

    【六】注意事项

    我觉得这个是最重要的一个部分。请仔细看看。

    1.关于kmo,有时候(很多时候),你的kmo输不出来。它会告诉你什么什么系数矩阵是非正定的,反正就是没有kmo矩阵,遇到这种情况,先别急好吗?我只能大致的告诉你这个不是很严重,不影响结果的解读。具体怎么回事,请看这篇链接:http://www.ppvke.com/Blog/archives/3357

    2.关于结果解读。因子分析会生成相当多的表哦,但是我们只解读了其中两三个表,这并不是其他的表就没有意义,比如碎石图,在许多论文里就要用到。可以直观的看到各个成分的作用大小。

    3.关于预处理。请记得数据要先进行标准化以后,才可以做分析。

    4.关于因子分析的旋转。旋转出合适的成分矩阵是很重要的一件事,你可以通过改变你的抽取方法或者增大你的抽取因子数目来改善你的矩阵,这些都是可能起到作用的。多试试。此外,那些系数是负的话,就是说明是负相关,很正常哈。

    5.关于因子分析和主成分分析的辨析。通常使用因子分析。主要是因为它比较高级。


    展开全文
  • SPSS做因子分析(非常细致的过程)

    万次阅读 多人点赞 2018-04-29 22:45:18
    SPSS案例分析3:因子分析 因子分析在各行各业的应用非常广泛,尤其是科研论文中因子分析更是频频出现。小兵也凑个热闹,参考《SPSS统计分析》书中的案例,运用SPSS进行因子分析,作为我博客 SPSS案例分析系列 的...

    SPSS案例分析3:因子分析

     

    因子分析在各行各业的应用非常广泛,尤其是科研论文中因子分析更是频频出现。小兵也凑个热闹,参考《SPSS统计分析》书中的案例,运用SPSS进行因子分析,作为我博客 SPSS案例分析系列  的第三篇文章。

    【一、概念】
    探讨具有相关关系的变量之间,是否存在不能直接观察到的,但对可观测变量的变化其支配作用的潜在因素的分析方法就是因子分析,也叫因素分析。通俗点:因子分析是寻找潜在的、起支配作用因子的方法。

    【二、简单实例】
    现在有 12 个地区的 5 个经济指标调查数据(总人口、学校校龄、总雇员、专业服务、中等房价),为对这 12 个地区进行综合评价,请确定出这 12 个地区的综合评价指标。点击下载

    【三、解决方案】
    1、spss因子分析

    同一指标在不同地区是不同的,用单一某一个指标难以对12个地区进行准确的评价,单一指标智能反映地区的某一方面。所以,有必要确定综合评价指标,便于对比。因子分析是一个不错的选择,5 个指标即为我们分析的对象,我们希望从这5个可观测指标中寻找出潜在的因素,用这些具有综合信息的因素对各地区进行评价。下图是spss因子分析的操作界面,主要包括5方面的选项,变量区只能选择数值型变量,分类型变量不能进入该模型。另外,spss软件为了消除不同变量间量纲和数量级对结果的影响,在该过程中默认自动进行标准化处理,因此不需要对这些变量提前进行标准化处理。

     

     

    2、描述统计选项卡

    我们希望看到各变量的描述统计信息,要对比因子提取前后的方差变化,所以选定“单变量描述性”和“原始分析结果”;现在是基于相关矩阵提取因子,所以,选定相关矩阵的“系数和显著性水平“,比较重要的还有 KMO 和球形检验,通过KMO值,我们可以初步判断该数据集是否适合采用因子分析方法。比较糟糕的是,kmo结果有时并不会出现,这主要与变量个数和样本量大小有关。

     

     

    3、抽取选项卡

    在该选项卡中设置如何提取因子,提取因子的方法有很多,最常用的就是主成分法。因为参与分析的变量测度单位不同,所以选择“相关矩阵”,如果参与分析的变量测度单位相同,则考虑选用协方差矩阵。经常用到碎石图对于判断因子的个数很有帮助,一般都会选择该项。关于特征值,不想解释太多,这和显著性水平一样,都是统计学的一个基本概念。一般spss默认只提取特征值大于1的因子,但,我还可以通过自定义设置需要提取的因子个数。另外,收敛次数比较重要,可以从首次结果反馈的信息进行调整。

     

     

    4、因子旋转选项卡

    因子分析要求对因子给予命名和解释,对因子旋转与否取决于因子的解释。如果不经旋转因子已经很好解释,那么没有必要旋转,否则,应该旋转。这里直接旋转,便于解释。至于旋转就是坐标变换,使得因子系数向1 和 0 靠近,对公因子的命名和解释更加容易。旋转方法一般采用”最大方差法“即可,输出旋转后的因子矩阵和载荷图,对于结果的解释非常有帮助。

     

     

    5、保存因子得分

    要计算因子得分,就必须先写出因子的表达式。而因子是不能直接观察到的,是潜在的。但是可以通过可观测到的变量获得。前面说到,因子分析模型是原始变量为因子的线性组合,现在我们可以根据回归的方法将模型倒过来,用原始变量也就是参与分析的变量来表示因子。从而得到因子得分。因子得分作为变量保存,对于以后深入分析很有用处。

     

     

    【四、结果解释】
    1、验证数据是否适合做因子分析

    主要参考kmo结果,一般认为大于0.5,即可接受。同时还可以参考相关系数,一般认为分析变量的相关系数多数大于 0.3,则适合做因子分析;从 KMO=0.575 检验来看,不是特别适合因子分析,基本可以通过。这里主要是为了简单介绍因子分析,所以,不看重这一结果。

     

     

    2、因子方差表

    提取因子后因子方差的值均很高,表明提取的因子能很好的描述这 5 个指标。方差分解表也表明,默认提取的前两个因子能够解释 5 个指标的 93.4%。碎石图表明,从第三个因子开始,特征值差异很小。综合以上,提取前两个因子。

     

     

     

     

    3、因子矩阵

    由旋转因子矩阵可以看出,经旋转后,因子便于命名和解释。因子 1主要解释的是中等房价、专业服务项目、中等校平均校龄,可以命名为社会福利因子;而因子 2 主要解释的是其余两个指标,总人口和总雇员。可以命名为人口因子。因子分析要求,最后得到的因子之间相互独立,没有相关性,而因子转换矩阵显示,两个因子相关性较低。可见,对因子进行旋转是完全有必要的。

     

                 

     

    4、因子系数

    因子得分就是根据这个系数和标准化后的分析变量得到的。其次,在数据视图中可以看到因子得分变量。

    5、结论

    经过因子分析,我们的目的实现了,找到了两个综合评价指标,即人口因子和福利因子。从原来的 5 个指标挖掘出 2 个潜在的综合因子。可以对12 个地区给出客观评价。

     

     

     

    我们可以根据因子1或者因子2得分,对这12个地区进行从大到小排序,得分高者被认为在这个维度上有较好表现。一般上因子分析到此就已经结束了,如果想再进一步展开分析,一般可以采取两种方式,第一是进行因子综合得分的计算,用一个总得分对样本进行大小排序,得分高者为佳;第二,将得到的若干因子作为新的变量,进行聚类分析,这两种方式,均单独有文字介绍。见以下链接:1综合得分2用于聚类分析


    展开全文
  • 因子分析

    千次阅读 2018-10-21 16:56:22
    因子分析通过构建若干意义比较明确的公因子 主成分分析是变异数导向的方法 因子分析是共变异数导向的方法 联系 因子分析是主成分分析的推广 二、因子分析思想 特点 因子变量数远少于...
  • 1. 目的不同: 因子分析把诸多变量看成由对每一个变量都有作用的一些公共因子和仅对某一个变量有作用的特殊因子线性组合而成,因此就是要从数据中控查出对变量起解释作用的公共因子和特殊因子以及其组合系数;...
  • 因子分析

    2021-04-02 22:57:56
    因子分析法 今天博主想介绍一个很经典的降维方法因子分析法,很多人可能降维第一想到的是主成分分析法,确实主成分分析法是很经典的, 因子分析是指研究从变量群中提取共性因子的统计技术。最早由英国心理学家C.E....
  • 因子分析——因子旋转

    千次阅读 2018-01-23 20:36:00
    因子旋转有称为正交变换,建立因子分析目的不仅是找出公共因子以及对变量分组,更重要的是知道每个公共因子的含义。 由于因子载荷矩阵是不唯一的,所以应该对因子载荷矩阵进行旋转。目的是使因子载荷矩阵的结构...
  • 因子分析法之因子旋转

    千次阅读 2020-12-22 21:26:14
    建立因子分析模型的目的不仅是要找出公因子以及对变量进行分组,更重要的是要知道每个公因子的意义,以便对实际问题做出科学分析。因子旋转即对因子载荷矩阵A,用一个正交矩阵T右乘A实现对因子载荷矩阵的旋转(一次...
  • MATLAB因子分析

    万次阅读 多人点赞 2018-02-10 14:18:50
    因子分析就是从研究对象中寻找公共因子的方法。 判别分析、聚类分析、因子分析的比较: 对面来了来了一群女生,我们一眼就能分辨出谁美谁丑,这是判别分析;并且在我们脑海里会对这群女生聚为两类:美的一类和丑的一...
  • 文章目录因子分析基本理论因子载荷的求解因子旋转因子得分主成分分析与因子分析的区别因子分析的步骤与逻辑框图步骤逻辑框图 因子分析 因子分析( factor analysis)模型是主成分分析的推广。它也是利用降维的思想...
  • 主成份分析 y=ax+b, x为自变量,y为因变量(因x变化而...因子分析:将相关自变量合成一个因子,使得因子内部的自变量相关性最大,因子间自变量相关性最小。它也可以达到降维目的。 主成份与因子的区别在于:主成份是由
  • R因子分析

    千次阅读 2020-12-06 13:13:39
    因子分析法在股票预报上的探索:在本例中为了验证因子分析法的有效性,特意不区分行业,以上海证券交易所和深圳证券交易所进行分层,然后把层内全部股票选入抽样框,以进行随机抽取。从手机金融界得到了23家企业在...
  • python因子分析Factor Analysis (FA) is an exploratory data analysis method used to search influential underlying factors or latent variables from a set of observed variables. It helps in data ...
  • 因子分析理论介绍

    万次阅读 2017-04-17 15:55:05
    1.确认是是否适合做因子分析 2.构造因子变量 3.旋转方法解释 4.计算因子变量得分 二。因子分析的计算过程: 1.将原始数据标准化 目的:消除数量级量纲不同 2.求标准化数据的相关矩阵 3.求相关矩阵的特征值和特征向量...
  • SPSS案例分析3:因子分析

    万次阅读 多人点赞 2014-12-10 18:10:17
    因子分析在各行各业的应用非常广泛,尤其是科研论文中因子分析更是频频出现。小兵也凑个热闹,参考《SPSS统计分析》书中的案例,运用SPSS进行因子分析,作为我博客 SPSS案例分析系列 的第三篇文章。 【一、概念...
  • 实用干货!因子分析超全步骤总结

    千次阅读 2020-07-13 12:15:18
    希望通过因子分析,用少量因子反映14个题目的信息,从而达到降低维度,便于分析的目的,并对因子命名用于后续分析。 二、分析步骤 Step1数据准备: 依据研究目的,收集相关数据。本例中就是我们收集得到...
  • 主成分分析和因子分析的主要区别

    万次阅读 多人点赞 2018-05-17 11:40:00
    (1)原理不同主成分分析基本原理:利用降维(线性变换)的思想,在损失很少信息的前提下把多个指标转化为几个不相关的综合...因子分析基本原理:利用降维的思想,由研究原始变量相关矩阵内部的依赖关系出发,把一...
  • 因子分析(FA)算法简述

    千次阅读 多人点赞 2020-10-16 15:29:53
    在学习数据降维时,了解到因子分析(FA)算法是其中的一种方式,因此,在这里对因子分析算法一个简要的归纳、梳理,后续会对数据降维的几种方式个总结,感兴趣的朋友,可以持续关注。 一、什么是因子分析因子...
  • 主成分分析和因子分析的介绍、区别和联系

    万次阅读 多人点赞 2019-07-14 00:46:00
    本文介绍一下主成分分析、因子分析,进而介绍它们之间的区别和联系。 两个方法的推导我也还有一些没有完全理解,因此中间有些理解可能有误,请大家批评指正 主成分分析 主成分分析:将多个有一定相关性的指标进行...
  • 主成分分析和因子分析的区别

    千次阅读 2015-07-19 22:27:16
    降维与分类是多元统计分析的两个主题,在这里,我浅谈一下的主成分和因子分析主要用于降维。 主成分分析就是将多项指标转化为少数几项综合指标,用综合指标来解释多变量的方差- 协方差结构。综合指标即为主成分...
  • python——因子分析

    千次阅读 2019-05-06 16:17:00
    因子分析用Python的一个典型例子 一、实验目的 采用合适的数据分析方法对下面的题进行解答 二、实验要求 采用因子分析方法,根据48位应聘者的15项指标得分,选出6名最优秀的应聘者。 三、代码 import ...
  • 因子分析杂记

    2014-09-14 17:25:30
    第二,探索性因子分析假定测度项残差之间是相互独立的。实际上,测度项的残差之间可以因为单一方法偏差、子因子等因素而相关。第三,探索性因子分析强制所有的因子为独立的。这虽然是求解因子个数时不得不采用的机宜...
  • sas:因子分析实例

    万次阅读 2016-05-27 19:58:27
    1.因子分析 主成分分析可以认为是从杂乱繁多、相关性较大的原始分析变量出发创建综合指标(主成分),这些主成分间是相互独立的,每一个主成分均可以用原始变量的线性关系表示,如comp1=….,comp2=…..,最后用80%...
  • 1.5-因子分析

    千次阅读 2018-07-10 10:02:56
    因子分析 因子分析模型是主成分分析的推广。它也是利用降维的思想,由研究原始变量相关矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。 因子分析的思想...
  • ML4因子分析笔记

    2015-03-15 14:36:03
    因子分析by chenlongzhen from dataguru因子分析简介 降维的一种方法,是主成分分析的推广和发展 是用于分析隐藏在表面现象背后的因子作用的统计模型。试图用最少个数的不可测的公共因子的线性函数与特殊因子之和来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,430
精华内容 16,972
关键字:

做因子分析的目的