Python3数据分析与挖掘建模(13)复合分析-因子关分析与小结

news2024/11/18 7:28:15

1.因子分析

1.1 探索性因子分析

探索性因子分析(Exploratory Factor Analysis,EFA)是一种统计方法,用于分析观测变量之间的潜在结构和关联性。它旨在确定多个观测变量是否可以归结为较少数量的潜在因子,从而帮助简化数据集和提取隐藏的信息。

在探索性因子分析中,我们收集一组观测变量的数据,并试图找到解释这些变量之间关系的较少数量的潜在因子。这些潜在因子是无法直接观测到的,但它们可以通过变量之间的共同方差来解释观测数据的模式。

探索性因子分析的主要目标是确定以下内容:

  1. 因子结构:通过观察变量之间的共同变异性,确定潜在因子的数量和性质。
  2. 因子载荷:衡量每个变量与每个因子之间的关系强度。较高的因子载荷表示变量与因子之间存在较强的关联。
  3. 因子解释:解释每个因子所代表的潜在构念或概念。这可以通过变量与因子之间的关系和变量的解释程度来实现。

探索性因子分析可以用于数据降维、构建测量工具、发现潜在因素和进行模型建立等领域。它被广泛应用于社会科学、心理学、教育、市场研究等领域,以揭示变量之间的潜在结构和解释现象背后的因素。

主成分分析:

主成分分析是一种降维技术,它旨在将高维数据转化为较低维度的表示,同时尽可能保留原始数据的信息。主成分分析通过线性变换将原始变量转化为一组互相无关的主成分,其中每个主成分都是原始变量的线性组合。这些主成分按照其解释的方差大小排序,通常只保留方差较大的主成分。

在探索性因子分析中,主成分分析被用于确定潜在因子的数量和性质。它通过计算每个主成分的方差贡献和特征载荷(变量与主成分之间的相关系数)来帮助解释原始变量之间的相关性和共同性。主成分分析可以帮助识别潜在因子,并提供每个变量对于每个主成分的贡献程度。

主成分分析的步骤通常包括以下内容:

  1. 数据准备:收集相关变量的观测数据,并进行数据清洗和预处理。
  2. 计算协方差矩阵或相关系数矩阵:根据数据的特点,计算变量之间的协方差矩阵或相关系数矩阵。
  3. 提取主成分:使用特征值分解或奇异值分解等方法,计算协方差矩阵的特征值和特征向量,从中提取主成分。
  4. 解释方差贡献:计算每个主成分的方差贡献,并确定保留的主成分数量。
  5. 解释主成分:通过观察主成分与原始变量之间的特征载荷,解释每个主成分所代表的意义和含义。
  6. 结果解释:根据主成分的解释和方差贡献,解释原始变量之间的相关性和共同性,推断潜在因子结构。

主成分分析在数据降维、变量选择、特征提取等领域有广泛应用。它可以帮助简化复杂的数据集,减少变量的数量,并提供变量之间的结构信息。主成分分析在数据预处理、数据挖掘、模式识别等领域中发挥着重要作用,为后续分析和解释提供

1.2 验证性因子分析

验证性因子分析(Confirmatory Factor Analysis,CFA)是一种结构方程模型的方法,用于验证已经提出的潜在因子结构模型是否与观测数据相符。

在验证性因子分析中,研究者根据理论或先前的研究假设一个潜在因子结构模型,然后使用观测数据来评估该模型与实际数据的拟合程度。验证性因子分析的目标是确定潜在因子模型是否能够恰当地解释观测变量之间的关系,并提供有关模型拟合程度的统计指标。

在验证性因子分析中,常用的评估指标和统计方法包括:

  1. 相关性(Correlation):通过计算观测变量之间的相关系数,评估模型中潜在因子之间的关联程度。

  2. 卡方检验(Chi-Square Test):用于评估观测数据与模型之间的拟合程度。卡方检验比较观测数据与理论模型之间的差异,若差异较小,则说明模型与数据拟合较好。

  3. 覆盖度(Coverage):评估模型中的潜在因子是否能够覆盖观测变量的变异。覆盖度可以通过计算模型中潜在因子的方差贡献或占总变异的比例来衡量。

  4. 方差分析(ANOVA):用于评估模型中不同组别之间的差异程度。方差分析可以帮助检验潜在因子模型是否能够解释观测数据中的组别差异。

  5. 熵(Entropy):用于衡量模型中潜在因子的信息量和不确定性。熵越小表示模型解释观测数据的能力越强。

  6. F-值(F-Value):用于比较模型拟合指标在不同模型之间的差异。F-值可以帮助确定是否存在更好的模型来解释观测数据。

  7. 自定义指标:根据研究者的需求,可以定义和使用其他适用的指标和统计方法来评估验证性因子分析模型的拟合程度和解释能力。

验证性因子分析是一种复杂的数据分析方法,需要具备统计学和结构方程模型的知识。在实际应用中,通常使用统计软件(如R、SPSS、AMOS等)来执行验证性因子分析,并根据评估指标进行模型拟合和解释。

2. 主成分分析实例

2.1 代碼

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from sklearn.decomposition import PCA #用于执行主成分分析。

sns.set_context(font_scale=1.5)
df = pd.read_csv("../data/HR.csv")

# 处理缺失值
df = df.dropna()  # 删除包含缺失值的行

my_pca = PCA(n_components=7)
lower_mat = my_pca.fit_transform(df.drop(labels=["salary", "department", "left"], axis=1))
print("Ratio:", my_pca.explained_variance_ratio_)

sns.heatmap(pd.DataFrame(lower_mat).corr(), vmin=-1, vmax=1, cmap=sns.color_palette("RdBu", n_colors=128))
plt.show()
  1. 处理缺失值:

    • 使用dropna()函数删除包含缺失值的行,更新df
  2. 创建PCA对象my_pca,并设置要提取的主成分数量为7。

  3. 使用fit_transform()方法对从df中删除 "salary"、"department" 和 "left" 列后的数据执行主成分分析。将结果存储在lower_mat中。

  4. 打印主成分的解释方差比例,即每个主成分所解释的方差的比例。

  5. 使用seabornheatmap()函数创建相关性热图,传入pd.DataFrame(lower_mat).corr()作为相关性矩阵,设置颜色映射为"RdBu"色板,并指定颜色范围。

  6. 使用plt.show()显示绘制的热图。

总体而言,这段代码的目的是通过主成分分析对数据进行降维,并可视化主成分之间的相关性。它可以帮助我们理解数据的结构和特征之间的关系。

2.2 分析结果

Ratio: [9.98565312e-01 8.69277622e-04 4.73866604e-04 4.96913206e-05
 2.43160255e-05 9.29566680e-06 8.24092853e-06]

结果显示了主成分分析中每个主成分所解释的方差比例。具体来说,结果为:

  • 第一个主成分解释了总方差的约99.86%。
  • 第二个主成分解释了总方差的约0.09%。
  • 第三个主成分解释了总方差的约0.05%。
  • 第四个主成分解释了总方差的约0.005%。
  • 第五个主成分解释了总方差的约0.002%。
  • 第六个主成分解释了总方差的约0.001%。
  • 第七个主成分解释了总方差的约0.001%。

这些方差比例表示了每个主成分对数据中的变异程度的贡献。第一个主成分的方差比例最大,说明它包含了最多的信息。随着主成分的编号递增,方差比例逐渐减小,表明后续的主成分解释的方差较小,包含的信息量也较少。

这些方差比例可用于确定选择多少个主成分以保留数据中的有效信息。通常,我们可以选择累计方差比例达到一定阈值(如90%或95%)的主成分作为降维后的特征。

2.3 效果热图

通过主成分分析热图可知,只有对角线上的相关系数几乎为1,其他区域几乎为零,几乎不相关。所以说,主成分分析把原来的特征空间变成了正交的特征空间。

主成分分析将原始特征空间转换为正交的特征空间。在转换后的特征空间中,主成分之间几乎没有相关性,即主成分之间的相关系数接近零,而主成分自身的相关系数接近1。

这种正交性意味着主成分是相互独立的,每个主成分捕捉到数据中的不同方差来源。第一个主成分解释了最大的方差,它是数据中变化最大的方向。随后的主成分依次解释了剩余的方差,并与之前的主成分正交。

因此,通过主成分分析,我们可以通过选择具有较高方差比例的主成分来减少特征的维度,并保留数据中最重要的信息。同时,正交的特征空间使得主成分之间彼此独立,降低了多重共线性的问题,更方便进行后续的统计分析和建模。

3. 小结

3.1 数据集类型与分析方法选择

数据类型可用方法
连续---连续相关系数、假设检验
连续---离散(二值)相关系数,连续二值化(最小Gini切分,最大熵增益切分)
连续---离散(非二值)相关系数(定序)
离散(二值)--- 离散(二值)相关系数,熵相关,F分值
离散--- 离散(非二值)熵相关,Gini,相关系数(定序)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记 - 多实例学习(MIL)弱监督学习

一、多实例学习概述 多实例学习(MIL)是一种弱监督学习形式,其中训练实例被排列在称为袋的集合中,并为整个袋提供标签。这种方式越来越受到人们的关注,因为它自然适合各种问题,并允许利用弱标记数据。因此,它被应用于计算机视觉和文档分类等不同的应用领域。 多实例学习(…

【国产虚拟仪器】基于 ZYNQ的声发射采集系统方案

系 统 的 整 体 设 计 流 程 为 根 据 上 述 设 计 需 求 进 行 硬 件 设 备 的 选 型 并 搭 建 起 声 发 射 采 集 系 统 的 硬 件 平 台 , 在 该平 台 上 进行 声 发 射 采 集 板 卡 的 设 计 并 根 据 要求进行 上 位 机…

2023上半年的九个觉悟

‍觉悟,就是觉了、悟了。有时候,你看到一句话,突然就觉悟了。 一、资本主义的问题 “资本主义把我们都缩减成了一个东西:消费者” 因此,人人都成为资本家利诱、操控、围猎的对象。 同时,金钱成为全民的神&a…

【PHP】Wampserver启动时呈现黄色的解决方案

首先,我们可以进入服务查看WampServer的服务是哪几个没有开? 经观察上图发现: apache没有开启sql没有开启 如果你点击开启,将会出现报错信息,因为服务冲突 所以解决方式就是:关闭冲突服务,再次…

基于SpringBoot+Vue的校园台球厅人员与设备管理系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

想要更好地理解大模型架构?从计算参数量快速入手

编者按:要理解一种新的机器学习架构(以及其他任何新技术),最有效的方法就是从头开始实现它。然而,还有一种更简单的方法——计算参数数量。 通过计算参数数量,读者可以更好地理解模型架构,并检查…

LBP特征提取

文章目录 1 LBP原理及其扩展1.1 原始LBP1.2 圆形LBP1.3 旋转不变LBP1.4 Uniform Pattern LBP1.5 MB-LBP 2. 对于边缘点的处理3. LBP的Python应用4. LBPH算法及其应用4.1 LBPH算法原理4.2 LBPH识别应用 5. 源码仓库地址 LBP指局部二值模式,英文全称:Local…

3.1 基于配置文件整合SSM框架实现用户登录

一、基于XML配置方式整合SSM框架实现用户登录 1、创建数据库与表 (1)创建数据库 数据库simonshop,采用utf8mb4编码 (2)创建用户表 创建用户表t_user CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,u…

中国金融,如何向科技要答案?

一个科技初创公司,能否凭借科创成果及时获得信贷准入? 一个农民兄弟能否在春播时,获得精准的无抵押贷款;秋收时,通过银行App找到性价比最高的买家? 一家企业,能否通过其生产及交易信息获取线上融…

对话利星行汽车:合作圆满,对斯歌充分信任!

上海斯歌在利星行汽车的OA替换项目中,喜提客户高度评价。近日,就企业数字化及斯歌产品、服务、体验等问题,斯歌与利星行汽车的管理信息系统总经理庄淑菱女士展开了一次对话访谈。 利星行汽车简介 利星行汽车于1993年进入中国大陆市场&#xf…

【实战经验】vant中picker选择器封装,让你的表单选择更简单

前言 对于选择器组件,vant 中的 picker 组件是一个非常合适的选择。它不仅提供了灵活的配置选项,还可以很方便地与其他 vant 组件结合使用,帮助我们快速搭建出漂亮、易用的移动端页面。在本文中,我将为大家介绍如何基于 vant 的 p…

【第二天议程】大会议题重磅出炉,豪华阵容等你面基!RustChinaConf 2023!

本次大会议题品质一流,嘉宾多来自行业一线,干货多多,且在各领域遍地开花,可看出Rust星星之火在中国已成燎原之势! 大会时间地址 6.17 - 6.18 浦东新区张杨路777号 上海锦江汤臣洲际酒店 官网地址 https://rustcc.cn/20…

# Windows 安装 Docker

Windows 安装 Docker 文章目录 Windows 安装 Docker何为Docker前言安装过程安装 Hyper-V安装 Docker Desktop for WindowsWSL 2 installation is incomplete 配置阿里云镜像加速地址Windows PowerShell查看Docker版本 Docker启动Nginx不挂载运行挂载运行随便启动一个 Nginx 容器…

【leetcode】189.轮转数组

方法1: 先把原数组拷贝一份,然后先将原数组的后k个拷贝,再将前numsSize-k个拷贝 void rotate(int* nums, int numsSize, int k) {//可能存在k>numsSize的情况,先处理kk k % numsSize;//拷贝数组int arr[numsSize];int i 0;in…

网络安全的学习路线是怎么样的?不同人路不同,快来对号入座吧!

最近看到网上有很多人在问诸如:“怎样成为网络安全工程师”等相关问题 这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详细分析&…

【DBA 警世录之习惯性命令---读书笔记】

👈【上一篇】 💖The Begin💖点点关注,收藏不迷路💖 【下一篇】👉 🔻【💣 话题引入:既然 DBA 这个职业如此危险,那么哪些习惯是 DBA 必须养成的呢&#x…

cuda5 程序执行与硬件关系

这里写目录标题 GPU流式多处理器CUDA内置变量WARP技术细节性能优化 规约规约算法总结 并行规约算法1规约2规约算法 3规约算法4规约5‘规约6for 循环展开 成功优化关键volatile cuda优化2规约算法应用:内积 线程块对应SM GPU流式多处理器 一个sm 有32个cuda core C…

2023最新版互联网工程师Java中级、高级面试题总结(1000道题含答案解析)

作为一名优秀的程序员,技术面试都是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试,肯定会遇到一些这样的问题: 1、看你项目都用的框架,熟悉…

Kafka基础原理

官方文档:https://kafka.apache.org/24/documentation.html#brokerconfigs 1.Kafka适用场景 日志收集:一个公司可以用Kafka收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。 消…