python 因子分析 factor_analyzer、主成分分析

因子分析

import pandas as pd
import numpy as np
from sklearn import preprocessing
from factor_analyzer import FactorAnalyzer

data = pd.read_csv("E:/who1.csv")

# 数据均值规范化
data1 = data.iloc[:,1:]  
data2 = preprocessing.scale(data1)

# 相关系数矩阵、特征值
c = np.corrcoef(data2)
np.linalg.eigvals(c)

# 确定公共因子个数,以解释度达到80%为标准
fa = FactorAnalyzer(11,rotation=None)  #固定公共因子个数为11个
fa.fit(data2) 
var = fa.get_factor_variance()#给出贡献率
print("\n解释的总方差(即贡献率):\n", var)

# 初始因子载荷矩阵
fa.loadings_  #成分矩阵

# 因子旋转、旋转后因子载荷矩阵
fa1 = FactorAnalyzer(11,rotation='varimax')  
fa1.fit(data2) 
fa1.loadings_

# 因子得分矩阵
a = fa1.transform(data2)

https://blog.csdn.net/weixin_40683253/article/details/84635404

主成分分析

https://zhuanlan.zhihu.com/p/76622543

自动选择个数:

n_components='mle'

你可能感兴趣的:(自学代码)