python 因子分析

目录

一、算法作用

二、案例

1、关于数据

2、数据标准化

3、适用性检验

3.1 KMO和Bartlett球形检验

4、因子提取

4.1 数据原始特征值、方差贡献率

5 因子旋转

6 因子命名

7 因子得分


一、算法作用

1、剔除相关性和降维:因子分析主要是根据相关性大小大小把原始变量分组,使得组内的变量间相关性较高,不同的组变量间的相关性较低,通过将原始变量提取出少量的公共因子,通过少量的公共因子来解释原来多变量代表的问题。

2、对变量或样本分类处理:在得出因子的表达式之后,可以把原始变量的数据代入表达式得出因子得分值,根据因子得分在因子所构成的空间达到分类的目的。

二、案例

1、关于数据

本次案例使用的数据来自陈哲老师《活用数据》STP分析案例解释中的部分数据,数据在

博文python因子分析中使用的数据-数据集文档类资源-CSDN下载

数据是来源于对客户生活状态9个方面的问题调查统计数据,9个问题之间从问题描述看可能存在相关性,数据之间存在相关性会造成重叠信息扩大化,增加分类的偏差,因此需要剔除语句之间的相关,剔除的方法就是本文要使用的因子分析。

读入数据

import pandas as pd 
file = "data_of_life_atitude.xlsx"
f= pd.read_excel(file,header=1)#从第二行开始读数据,因为第一行是变量名称不能进行标准化

2、数据标准化

在处理数据之前一般会对数据进行预处理,将不同规格的数据转换到同一规格,使用的最多的方式是Z分数标准化,即减去均值除以方差的方式。在python中可以直接调用StandarScaler

from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(data) 

3、适用性检验

适用性检验主要是检验数据是否可以使用因子分析,因为因子分析的前提是原始维度之间具有相关性,因此适用性检验就是检验原始维度之间是否具有相关性,如果不相关则不适合做因子分析。

3.1 KMO和Bartlett球形检验

主要用的到的方法是KMO和Bartlett球形检验,其中Bartlett球形检验用于检验变量之间是否相关独立,如果p值小于0.05则适合做因子分析;

KMO用于检验变量之间的相关性取值在0-1之间,值越大相关性越强。

可以直接在python因子库中调用,使用之前需要先安装对应的库。

from factor_analyzer import FactorAnalyzer, calculate_kmo, calculate_bartlett_sphericity
kmo = calculate_kmo(f)
bartlett = calculate_bartlett_sphericity(f)
if kmo[1] >=
  • 7
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是鱼儿啊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值