因子分析法基本思想,因子分析法实例分析

首页 > 教育 > 作者:YD1662024-05-15 10:15:55

数据集说明:

V1~V8:表示8个指标变量名称,每一行为一个样本。每个值为对应样本在该指标下的值。

该数据包括:1000行,每行8列数据。即构成1000*8数据矩阵。

数据相关性

因子分析的前提条件是观测变量间有较强的相关性。因为如果变量之间无相关性或相关性较小的话,它们不会有共享因子。相关系数矩阵描述了原始变量之间的相关关系。可以帮助判断原始变量之间是否存在相关关系。如果所选变量之间无关系,做因子分析 是不恰当的。

相关性大小的度量:相关系数(矩阵)

import matplotlib.pyplot as plt

import seaborn as sns

#计算原始数据集变量间的相关系数

df_corr = df_features.corr()

# 用来正常显示中文标签

plt.rcParams['font.sans-serif']=['FangSong']

# 用来正常显示符号

plt.rcParams['axes.unicode_minus']=False

plt.subplots(figsize=(6, 6))

sns.heatmap(df_corr, annot=True, vmax=1, square=True, cmap="Blues")

plt.show()

因子分析法基本思想,因子分析法实例分析(5)

因子分析法基本思想,因子分析法实例分析(6)

从上图很容易看出,变量V1~V4之间,变量V5~V8之间有相对较强的相关系。很显然,形成比较明显的两个变量聚合体。

因子分析适应性检验

因子分析的前提是具有一定的相关性,因此在做因子分析之前, 我们需要先做充分性检验, 就是数据集中是否能找到这些factor, 我们可以使用下面的方式进行寻找:

(1)Bartlett’s test of sphericity(巴特利特球形检测) 是用来检测观察到的变量之间是否关联, 如果检测结果在统计学上不显著, 就不能采用因子分析,巴特利球形检验的值范围在0-1,越接近1,使用因子分析效果越好。

(2)Kaiser-Meyer-Olkin Test(KMO检测)

KMO值:0.9以上非常好;0.8以上好;0.7一般; KMO < 0.6 则认为不充分。

#kmo值

kmo = calculate_kmo(df_features)

# bartlett球形度检验p值

bartlett = calculate_bartlett_sphericity(df_features)

print("\n因子分析适用性检验:")

print('KMO:{}\nBartlett test of Sphericity :{}\nSig.:{}'.format(kmo[1], bartlett[0], bartlett[1]))

pd.DataFrame([kmo[1].round(3), bartlett[1].round(3), bartlett[0].round(3)],

index={'KMO','Bartlett test fo sphericity','Sig'},

columns=['KMO and Bartlett Test'])

因子分析法基本思想,因子分析法实例分析(7)

因子方差分析表

fa = FactorAnalyzer(rotation=None, n_factors=8, method='principal')

fa.fit(df_features)

fa_15_sd = fa.get_factor_variance()

fa_15_df = pd.DataFrame({'特征值': fa_15_sd[0], '方差贡献率': fa_15_sd[1], '方差累计贡献率': fa_15_sd[2]})

#各个因子的特征值以及方差贡献率

print('Total Variance Explained')

#画图

plt.plot(fa_15_df.特征值,'bo-.')

plt.xlabel('Factor Num')

plt.ylabel('EigenValue')

plt.title('Scree Plot')

plt.grid()

#画图

plt.plot(fa_15_df.方差累计贡献率,'bo-.')

plt.xlabel('Factor Num')

plt.ylabel('CumVar')

plt.title('CumVar Plot')

plt.grid()

因子分析法基本思想,因子分析法实例分析(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.