数据分析——因子分析怎么用?

编辑导语:作为多元统计分析里的降维方法之一,因子分析可以应用于多个场景、如调研、数据建模等场景之中。本篇文章里,作者就对因子分析做了详细介绍,对其原理逻辑、用途及代码实现过程进行了相关展示,让我们来看一下。

数据分析中,主成分分析(PCA)是被大家熟知的数据降维方法。而因子分析和主成分分析是非常相似的两种方法,他们都属于多元统计分析里的降维方法。但因子分析最大的优点就是:对新的因子能够进行命名和解释,使因子具有可解释性

因此,因子分析可以作为「需要满足可解释性数据建模」的前期数据降维的方法。下文会介绍因子分析的原理逻辑、用途以及Python代码的实现过程。

一、什么是因子分析?

因子分析的起源是这样的,1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后有一个共同的因素驱动,最后将这个因素定义为“语言能力”。基于这个想法,发现很多相关性很高的因素背后有共同的因子驱动,从而定义了因子分析。

因子分析在经济学、心理学、语言学和社会学等领域经常被用到,一般会探索出背后的影响因素如:语言能力、智力、理解力等。这些因素都是无法直接计算,而是基于背后的调研数据所推算出的公共因子。

因此概括下,因子分析就是将存在某些相关性的变量提炼为较少的几个因子,用这几个因子去表示原本的变量,也可以根据因子对变量进行分类

举个例子。学生有语文、英语、历史、数学、物理、化学六门成绩,通过因子分析会发现这六门课由两个公共因子驱动,前三门是由“文科”因子,后三门是“理科”因子;从而可以计算每个学生的文科得分和理科得分来评估他在两个方面的表现。

二、因子分析可以解决什么问题?

1. 在多变量场景下,挖掘背后影响因子

比如在企业和品牌调研中,消费者会调查很多问题来评估企业品牌。对这些问题通过因子分析可以刻画出背后少量的潜在影响因素,比如服务质量、商品质量等等。

2. 用于数学建模前的降维

因子分析和主成分分析都可用于降维。但因子分析的优点是,因子作为新的解释变量去建模,有更好的解释性。

因此对于有些需要业务解释的数据建模,可以在建模前通过因子分析提取关键因子,再用因子得分为解释变量,通过回归或者决策树等分类模型去建模。

三、算法实现步骤

首先需要注意的是,和主成分分析一样,两种方法的目的都是降维,所以两种方法的前提假设都是:特征之间不是完全互相交互。

因子分析是寻找不线性相关的“变量”的线性组合来表示原始变量,这些“变量”称为因子,如下图中的F就是因子,X是原始变量,eps是原始变量不可被公共因子表示的部分。

以上的公式还需要满足:

  1. 要求因子的数据小于原始变量的数量,即m≤p;
  2. 因子F之间是相互独立且方差为1;
  3. 因子F和eps之间的相关性为0,eps之间相关性为0。

因此,因子分析的过程就是实现以下几个目的的过程:

  1. 求解方程中的因子F的系数;
  2. 给予因子F实际的解释;
  3. 展示原始特征和公共因子之间的关系,从而实现降维和特征分类等目的。

求解方程的过程,就是分析变量的相关系数矩阵,从而找到少数几个随机变量去描述所有变量。又因为求解的不唯一性,最后通常会对因子的载荷矩阵做一次正交旋转,目的是为了方便理解每个因子的意义。

汇总一下:对于因子分析的实操可以提炼为以下几个步骤。

1)充分性检验

  • 目的:检验变量之间是否存在相关性,从而判断是否适合做因子分析;
  • 方法:抽样适合性检验(KMO检验)或者 巴特利特检验(Bartlett’s Test)。

2)选择因子个数

  • 目的:通过数据定义最合适的潜在公共因子个数,这个决定后面的因子分析效果;
  • 方法:Kaiser”s准则 或者 累积贡献率原则。

3)提取公共因子并做因子旋转

提取公共因子就是上面提到的求解函数的过程,一般求解方法有:主成分法、最大似然法、残差最小法等等。

因子旋转的原因是提取公共因子的解有很多,而因子旋转后因子载荷矩阵将得到重新分配,可以使得旋转后的因子更容易解释。常用的方法是方差最大法。

4)对因子做解释和命名

  • 目的:解释和命名其实是对潜在因子理解的过程;这一步非常关键,需要非常了解业务才可。这也是我们使用因子分析的主要原因。
  • 方法:根据因子载荷矩阵发现因子的特点。

5)计算因子得分

对每一样本数据,得到它们在不同因子上的具体数据值,这些数值就是因子得分。

四、案例讲解

数据集介绍:美国洛杉矶2000年街区普查数据,共有110个街区,15个变量,变量具体情况见下表。

想分析影响不同街区下人口分布的潜在因子。

1. 第一步:数据预处理和分析

新增“人口密度”特征,删除特征人口量、面积、经度和维度。

import pandas as pd

import numpy as np

LA_data = pd.read_csv('LA.Neighborhoods.csv’)

#新增人口密度,去掉人口量、面积、经度和维度

LA_data['density’] = LA_data['Population’]/LA_data['Area’]

LA_data_final = LA_data.drop(['Population’,’Area’,’Longitude’,’Latitude’],axis=1)

LA_data_final_feat = LA_data_final.drop(['LA_Nbhd’],axis=1)

2. 第二步:因子分析——充分性检验

巴特利特P值小于0.01,KMO值大于0.6;说明此数据适合做因子分析。

3. 第三步:因子个数确定

特征值大于1的因子数有2个,且两个因子的累计方差有68%;因此确定因子个数为2个。

from factor_analyzer import FactorAnalyzer

fa = FactorAnalyzer(LA_data_final_feat.shape[1]+1, rotation=None)

fa.fit(LA_data_final_feat)

ev, v = fa.get_eigenvalues # 计算特征值和特征向量

var=fa.get_factor_variance#给出方差贡献率

4. 第四步:做因子分析

调用因子分析函数,并得到因子载荷矩阵;从载荷矩阵可以看到,第一个因子和收入、有房家庭比例、复员军人比例及欧裔比例成正相关;第二个因子和非裔比例成正相关,反而和收入及有房比例等成负相关。

fa = FactorAnalyzer(2, rotation=”varimax”)fa.fit(LA_data_final_feat)# 输出载荷矩阵df_loading=pd.DataFrame(fa.loadings_,index=
LA_data_final_feat.columns.tolist)df_loading

5. 第五步:计算因子得分

其中因子1得分越大表示:收入、有房家庭比例、复员军人比例及欧裔比例更高;因子2得分高表示:非裔人群比例更高。

综上,以上就是本文要介绍的全部内容。

因子分析在互联网数据分析场景下用到的比较少,主要原因就是很多人不知道怎么用?不知道用到哪里?希望看完文章的你能初步了解因子分析,能知道下面几个问题的答案(不记得就回头看上面的介绍分享哦)。

  • 什么是因子分析?
  • 因子分析可以解决什么问题?
  • 因子分析的算法逻辑和分析流程是什么?
  • Python代码如何实现?
(0)

相关推荐

  • 技术贴 | 微生太宏基因组报告解读 | 第四篇:PCoA、NMDS、RDA/CCA、相关分析

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 本篇内容分为以下三块:(1)NMDS和PCoA分析:上一篇的多样性分析中介绍了利用QIIME2进行PCoA分析研究菌 ...

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

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

  • 人员数据分析的CRISP-DM模型

    如何证明人力资源实践的有效性是重要且有价值,传统上,研究人员通过使用调查,访谈或观察收集数据来产生此类证据.借助这些数据,他们获得了对劳动力的洞察力,并制定了切实可行的干预措施以改善结果. 技术进步导 ...

  • HR数据分析--员工绩效指标

    员工绩效指标是跟踪员工绩效的关键,正确地实施它们是棘手的.但是,如果做得正确,员工绩效指标将使组织和员工都受益.我们在下面列出了最重要的指标,并提供了每个指标的一些实际示例. 员工绩效指标多种多样.我 ...

  • 为HR数据分析建立业务假设?

    为业务人员分析制定业务问题和发展假设,以确保你在分析主题中增加业务价值,研究如何构建业务问题,业务问题是否与实际定义假设相关. 什么是假设?假设是:基于有限证据做出的假设或建议的解释作为进一步调查的起 ...

  • HR数据分析中常用的21个数据源

    我们通常听到的一个问题是"什么可以用于分析的数据源?" 在本文中,我们将列出HR和更广泛业务中的许多常见数据源,这些数据源将有助于您进行人员分析. HR数据源可以分为3类: 一.H ...

  • 人力资源数据分析

    最近几天,支付宝.抖音.酷狗.喜马拉雅等公司相继发布2019年个人使用报告,发现自己的所作所为都在上面展现的一览无余没有死角,一方面感到数据分析的可怕,另外一方面在想是否可以利用数据在促进工作的提升, ...

  • 人力资源数据分析10条黄金法则

    根据德勤关于全球人力资本趋势的报告,人力资源数据分析革命正在加速.完全有能力应用人力资源分析的组织从4%增至8%.感觉有些能力应用人力资源分析的组织从24%增加到32%.我很高兴看到我的国家(荷兰)在 ...

  • Python数据分析库有哪些?常见分类!

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...

  • 来自kaggle最佳数据分析实践

    翻译: 大邓 作者: Bex T 标题: Weekly Awesome Tricks And Best Practices From Kaggle 链接: https://towardsdev.com ...