目录
5.2 查看因子方差-get_communalities()
一、起源
因子分析的起源是这样的:1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后有一个共同的因素驱动,最后将这个因素定义为“语言能力”。
基于这个想法,发现很多相关性很高的因素背后有共同的因子驱动,从而定义了因子分析,这便是因子分析的由来。
二、基本思想
我们再通过一个更加实际的例子来理解因子分析的基本思想:
现在假设一个同学的数学、物理、化学、生物都考了满分,那么我们可以认为这个学生的理性思维比较强,在这里理性思维就是我们所说的一个因子。在这个因子的作用下,偏理科的成绩才会那么高。
到底什么是因子分析?就是假设现有全部自变量x的出现是因为某个潜在变量的作用,这个潜在的变量就是我们说的因子。在这个因子的作用下,x能够被观察到。
因子分析就是将存在某些相关性的变量提炼为较少的几个因子,用这几个因子去表示原本的变量,也可以根据因子对变量进行分类。
因子分子本质上也是降维的过程,和主成分分析(PCA)算法比较类似。
三、算法用途
因子分析法和主成分分析法有很多类似之处。因子分析的主要目的是用来描述隐藏在一组测量到的变量中的一些更基本的,但又无法直接测量到的隐性变量。因子分析法也可以用来综合评价。
其主要思路是利用研究指标的之间存在一定的相关性,从而推想是否存在某些潜在的共性因子,而这些不同的潜在的共性因子不同程度地共同影响着研究指标。因子分析可以在许多变量中找出隐藏的具有代表性的因子,将共同本质的变量归入一个因子,可以减少变量的数目。
四、因子分析步骤
应用因子分析法的主要步骤如下:
-
对所给的数据样本进行标准化处理
-
计算样本的相关矩阵R
-
求相关矩阵R的特征值、特征向量
-
根据系统要求的累积贡献度确定主因子的个数
-
计算因子载荷矩阵A
-
最终确定因子模型
五、factor_analyzer库
利用Python进行因子分析的核心库是:factor_analyzer
pip install factor_analyzer
这个库主要有两个主要的模块需要学习:
-
factor_analyzer.analyze(重点)
-
factor_analyzer.factor_analyzer
官网学习地址:factor_analyzer package — factor_analyzer 0.3.1 documentation
四、实例详解
数据来源于中国统计年鉴。
1.导入库
# 数据处理
import pandas as pd
import numpy as np
# 绘图
import seaborn as sns
import matplotlib.pyplot as plt
# 因子分析
from factor_analyzer import FactorAnalyzer
2.读取数据
df = pd.read_csv("D:\桌面\demo.csv",encoding='gbk')
df
输出:
如果不想要城市那一列的话,可以在读取的时候就删除,也可以后面再删
比如,读取时删除
df = pd.read_csv("D:\桌面\demo.csv", index_col=0,encoding='gbk').reset_index(drop=True)
df
返回:
然后我们查询一下,数据的缺失值情况:
df.isnull().s