因子分析(SPSS和Python)

这篇具有很好参考价值的文章主要介绍了因子分析(SPSS和Python)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、源数据

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

二、SPSS因子分析

2.1.导入数据

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

2.2.标准化处理

由于指标的量纲不同(单位不一致),因此,需要对数据进行标准化处理

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

2.3.因子分析

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

点击“确定”后,再回到“总方差解释”表格,以“旋转载荷平方和”中的各成分因子贡献率为权重,对因子得分做加权平均处理,可计算出综合得分

即:综合得分=(0.72283 * FAC1_1+0.19629 * FAC2_1) / 0.91912

其中,FAC1_1是成分1因子得分,FAC2_1是成分2因子得分,0.72283是成分1方差百分比(成分1因子贡献率),0.19629是成分2方差百分比(成分2因子贡献率),0.91912是累积方差百分比(累计因子贡献率)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

2.4.输出结果

皮尔逊相关性矩阵:

通过计算指标之间的线性相关性,了解指标之间的相关性强弱,有助于确定因子个数和处理可能存在的共线性问题,如果相关性矩阵中大部分相关系数小于0.3且未通过充分性检验,则不适用于因子分析

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

充分性检验(KMO和Bartlett检验):

KMO检验:KMO值介于0和1之间,如果全部变量间相关系数平方和远大于偏相关系数平方和则KMO值接近1,KMO值越接近1越适合作因子分析。一般情况下,当KMO值大于0.6(严格一点就以0.7为阈值进行判断)时,表示指标之间的相关性较强,偏相关性较弱,适合做因子分析

Bartlett检验:原假设相关系数矩阵为单位阵,若得到的概率值小于规定的显著性水平(一般取0.05,严格一点就以0.01为阈值进行判断)则拒绝原假设,认为数据适合做因子分析,通俗来讲,即显著性水平越趋近于0则越适合做因子分析,反之则不能拒绝原假设,即数据不适合做因子分析

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

公因子方差:

从公因子方差可以看出各原始指标变量间的共同度,即各原始指标变量能被提取出的程度,由图可知,所有指标变量的共同度都在0.6以上,大部分指标变量的共同度在0.95以上,说明因子能解释指标变量中的大部分信息,适合进行因子分析

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

总方差解释:

在总方差解释表中,可以看出提取2个成分因子时,其累计贡献率即可达到91.912%,说明选取2个成分因子就足以代替原来6个指标变量,能够解释原来6个指标变量所涵盖的大部分信息

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

碎石图:

在碎石图中,可以看出第一个因子的特征值最高,方差贡献最大,第二个因子其次,第三个因子之后的特征值都较低了,对原来6个指标变量的解释程度也就较低,可以忽略,因此,提取2个成分因子是比较合适的

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

成分矩阵:

由成分矩阵可知,成分因子1主要解释人均GDP、财政总收入、全体常住居民人均可支配收入、金融机构人民币贷款余额、全社会能耗等5个指标变量的信息,可定义为综合发展因子F1,成分因子2主要解释供应土地这一个指标变量的信息,可定义为资源因子F2

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

旋转后的成分矩阵:

在旋转之前,原始因子的载荷矩阵通常会产生一些问题,即一些变量与多个因子之间的载荷值都很高,而其他变量则没有明显的载荷值,在这种情况下,因子以及它们的载荷解释可能会变得模糊不清,难以解释或者解释力度不够,旋转后的成分矩阵则是能够更清晰地解释变量与因子之间的关系,从而提高了因子模型的可解释性

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

成分转换矩阵:

用来说明旋转前后成分因子间的系数对应关系

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

旋转后的空间中的组件图:

由图可知,人均GDP、财政总收入、全体常住居民人均可支配收入、金融机构人民币贷款余额、全社会能耗等5个指标变量基本是在同一个维度上的(横轴),这与综合发展因子F1是对应的,而供应土地这一个指标变量则是在另一个维度(纵轴),这则是与资源因子F2是对应的,说明提取2个因子是合理的,具有一定的可解释性

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

成分得分系数矩阵:

综合发展因子F1得分:

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

资源因子F2得分:

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

成分得分协方差矩阵:

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

因子得分:

FAC1_1是成分1因子得分,即综合发展因子F1得分,FAC2_1是成分2因子得分,即资源因子F2得分,具体计算公式在“成分得分系数矩阵”已作说明

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

综合得分:

综合得分=(0.72283 * 综合发展因子F1得分+0.19629 * 资源因子F2得分) / 0.91912

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

三、Python因子分析

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.1.导入第三方库

# 导入第三方库
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from factor_analyzer import FactorAnalyzer,calculate_kmo,calculate_bartlett_sphericity
import matplotlib.pyplot as plt
import seaborn as sns

# 忽略警告
import warnings
warnings.filterwarnings("ignore")

# 绘图时正常显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

3.2.读取数据

# 读取数据
data=pd.read_excel('数据.xlsx',sheet_name='Sheet1',header=1)
print(data)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.3.标准化处理

# 数据标准化处理
data_std=pd.DataFrame(StandardScaler().fit_transform(data.iloc[:,1:]),columns=data.columns[1:])
print(data_std)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.4.皮尔逊相关性检验

# 皮尔逊相关性矩阵
data_corr=data_std.corr(method='pearson')
print(data_corr)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

# 皮尔逊相关性热力图
plt.figure(figsize=(8,6))
sns.heatmap(data_corr,cmap='PuBu',annot=True,annot_kws={'fontsize':8})
plt.xticks(fontsize=8)
plt.yticks(fontsize=8)
plt.tight_layout()

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.5.充分性检验(KMO检验和Bartlett检验)

# KMO检验和Bartlett检验
kmo=calculate_kmo(data_std) # KMO>0.6,则通过KMO检验
bartlett=calculate_bartlett_sphericity(data_std) # Bartlett<0.05,则通过Bartlett检验
print('\nKMO检验:',kmo[1],'\nBartlett检验:',bartlett[1],'\n')

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.6.旋转前载荷矩阵

# 旋转前载荷矩阵
matrix=FactorAnalyzer(rotation=None,n_factors=8,method='principal')
matrix.fit(data_std)
f_contribution_var =matrix.get_factor_variance()
matrices_var = pd.DataFrame()
matrices_var["旋转前特征根"] = f_contribution_var[0]
matrices_var["旋转前方差贡献率"] = f_contribution_var[1]
matrices_var["旋转前方差累计贡献率"] = f_contribution_var[2]
print('旋转前载荷矩阵的贡献率:\n',matrices_var,'\n')

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.7.旋转后载荷矩阵

# 旋转后载荷矩阵
matrix_rotated=FactorAnalyzer(rotation='varimax',n_factors=2,method='principal')
matrix_rotated.fit(data_std)
f_contribution_var_rotated = matrix_rotated.get_factor_variance()
matrices_var_rotated = pd.DataFrame()
matrices_var_rotated["旋转后特征根"] = f_contribution_var_rotated[0]
matrices_var_rotated["旋转后方差贡献率"] = f_contribution_var_rotated[1]
matrices_var_rotated["旋转后方差累计贡献率"] = f_contribution_var_rotated[2]
print('旋转后载荷矩阵的贡献率:\n',matrices_var_rotated,'\n')

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.8.公因子方差表

# 公因子方差表
communalities=pd.DataFrame(matrix_rotated.get_communalities(),index=data_std.columns)
print('公因子方差表:\n',communalities)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.9.绘制碎石图

# 绘制碎石图
ev,v=matrix_rotated.get_eigenvalues()
plt.figure(figsize=(6,6))
plt.scatter(range(1,data_std.shape[1]+1),ev)
plt.plot(range(1,data_std.shape[1]+1),ev)
plt.title('碎石图')
plt.xlabel('因子个数')
plt.ylabel('特征根')

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.10.绘制成分矩阵热力图

# 绘制成分矩阵热力图
component_matrix=pd.DataFrame(np.abs(matrix_rotated.loadings_),index=data_std.columns,columns=['成分因子1','成分因子2'])
plt.figure(figsize=(6,6))
sns.heatmap(component_matrix,annot=True,cmap='Blues')
plt.tight_layout()

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.11.绘制成分矩阵二维空间组件图

# 绘制成分矩阵二维空间组件图
plt.figure(figsize=(6,6))
x=component_matrix.iloc[:,0]
y=component_matrix.iloc[:,1]
plt.scatter(x,y)
for i in range(len(component_matrix)):
    plt.annotate(component_matrix.index[i],(x[i],y[i]),textcoords='offset points',xytext=(-10,-10),ha='center',fontsize=8)
plt.xlabel(component_matrix.columns[0])
plt.ylabel(component_matrix.columns[1])
plt.title('二维空间组件图')
plt.grid(True)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.12.计算因子得分

# 计算因子得分
factor_score=pd.DataFrame(matrix_rotated.transform(data_std),columns=['成分1','成分2'])
print(factor_score)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.13.计算综合得分

# 计算综合得分
weight=matrices_var_rotated["旋转后方差贡献率"]/np.sum(matrices_var_rotated["旋转后方差贡献率"])
factor_score["综合得分"]=np.dot(factor_score,weight)
factor_score=pd.concat([data.iloc[:,0],factor_score],axis=1)
print('原顺序:\n',factor_score)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

# 按综合得分从高到低排序
factor_score=factor_score.sort_values(by='综合得分',ascending=False)
factor_score=factor_score.reset_index(drop=True)
factor_score.index=factor_score.index+1
print('按综合得分从高到低排序:\n:',factor_score)

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python

3.14.保存综合得分到excel

# 保存综合得分到新的excel
factor_score.to_excel('综合得分.xlsx',index_label='排名')

spss中成分矩阵,旋转后的成分矩阵是什么,python,因子分析,SPSS,Python文章来源地址https://www.toymoban.com/news/detail-762056.html

到了这里,关于因子分析(SPSS和Python)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spss分析方法-回归分析

    回归分析是研究一个因变量与一个或多个自变量之间的线性或非线性关系的一种统计分析方法。 下面我们主要从下面四个方面来解说:   实际应用 理论思想 建立模型   分析结果   一、实际应用   回归分析方法理论成熟,它可以确定变量之间的定量关系并进行相应的预测,

    2023年04月08日
    浏览(65)
  • 时间序列分析(SPSS)

      本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 目录  前言  一、时间序列介绍  1.1 时间序列基本概念​编辑  1.2 时期和时点序列  1.3 时间序列分解  1.3.1 长期趋势(T)​编辑  

    2024年02月06日
    浏览(63)
  • SPSS方差分析

    参考文章 勾选“多项式”,等级取默认“线性” ,继续 但是这一列的数据不是数值,无法勾选

    2024年02月16日
    浏览(39)
  • SPSS 方差分析

    随机区组设计又称为配伍组设计,该方法属于两因素方差分析,用于多个样本均数的比较,如将动物按体重、窝别等性质配伍,然后随机地分配到各个处理组中,即保证每一个区组内的观察对象的特征尽可能的相近。同一受试对象在不同时间点上的观察,或同一物品分为多份

    2024年02月08日
    浏览(37)
  • SPSS单因素方差分析

    前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为: SPSS25.0 本专栏所有的数据文件请点击此链接下载:SPSS数据分析专栏附件! 目录   1.单因素方差分析 2.

    2024年02月05日
    浏览(38)
  • 学习笔记|秩相关分析|Spearman相关分析|Kendall相关分析|规范表达|《小白爱上SPSS》课程:SPSS第十九讲:秩相关分析怎么做?

    SPSS第十九讲:秩相关分析怎么做? IBM SPSS Statistics 26。 《小白爱上SPSS》课程 #统计原理 前面我们学习过线性相关分析,已知线性相关分析针对的是符合正态性分布的连续型变量,然而在科学研究中,有些数据不符合正态性分布,有些数据也并不连续,只能用定序尺度来度量

    2024年04月29日
    浏览(42)
  • 对应分析介绍及SPSS案例分析

    在开展统计分析的过程中,分类变量(定序和定类变量)是我们研究的一个重点。通常我们分析分类变量间关系时,最常用的分析方法是卡方检验,其次是逻辑回归和对数线性模型等。 如果类别变量的分类较少,我们可以通过卡方检验判断行变量和列变量间是否相互独立,同

    2024年02月13日
    浏览(44)
  • 用SPSS进行岭回归分析

    打开SPSS将数据输入到SPSS中。 点击左上角文件-新建-语法 输入 include内容需要自己寻找,即SamplesSimplified ChineseRidge regression.sps路径下的Ridge regression.sps文件,根据自己的安装目录自行寻找。enter后填写岭回归自变量,dep为岭回归应变量。输入完毕后点击运行-全部。 点开查看器

    2024年02月11日
    浏览(29)
  • 【多元统计分析】判别分析——SPSS上机实验

    参考文献:何晓群.《多元统计分析》中国人民大学出版社第五版(82-105) 公众号中还有更多的理论知识、个人笔记整理和资源放送,欢迎阅读哦~ 通过判别分析,对数据中的变量的各类特征值判别确定其类型属性。 为研究某地区人口死亡状况,已按某种方法将15个一直样品分为

    2024年02月04日
    浏览(37)
  • SPSS结果解读【单因素方差分析】

    方差分析 (Analysis of Variance,简称ANOVA)主要用于验证两组样本,或者两组以上的样本均值是否有显著性差异(是否一致) 单因素方差分析 是指试验中只有一个因素变化,若有两个因素改变则称为双因素试验,若有多个因素改变则称为多因素试验。 实际操作案例(随意的数

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包