当前位置: 首页 > news >正文

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

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-052.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,相关系数(定序)

相关文章:

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

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

【stable diffusion】图片批量自动打标签、标签批量修改(BLIP、wd14)用于训练SD或者LORA模型

参考: B站教学视频【:AI绘画】新手向!Lora训练!训练集准备、tag心得、批量编辑、正则化准备】官方教程:https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_README-en.md#automatic-captioning 一、…...

TCP可靠数据传输

TCP的可靠数据传输 1.TCP保证可靠数据传输的方法 TCP主要提供了检验和、序号/确认号、超时重传、最大报文段长度、流量控制等方法实现了可靠数据传输。 检验和 通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢失该TC…...

Python 私有变量和私有方法介绍

Python 私有变量和私有方法介绍 关于 Python 私有变量和私有方法,通常情况下,开发者可以在方法或属性名称前加上单下划线(_),以表示该方法或属性仅供内部使用,但这只是一种约定,并没有强制执行禁…...

Kotlin Lambda表达式和匿名函数的组合简直太强了

Kotlin Lambda表达式和匿名函数的组合简直太强了 简介 首先,在 Kotlin 中,函数是“第一公民”(First Class Citizen)。因此,它们可以被分配为变量的值,作为其他函数的参数传递或者函数的返回值。同样&…...

uniapp 小程序 获取手机号---通过前段获取

<template><!-- 获取手机号&#xff0c;登录内容 --><view><!-- 首先需要先登录获取code码&#xff0c;然后才可以获取用户唯一标识openid以及会话密钥及用于解密获取手机的加密信息 --><view click"login">登录</view><view…...

面板安全能力持续增强,新增日志审计功能,1Panel开源面板v1.3.0发布

2023年6月12日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.3.0版本。 在这一版本中&#xff0c;1Panel进一步增强了安全方面的能力&#xff0c;包括新增SSH配置管理、域名绑定和IP授权支持&#xff0c;以及启用网站防盗链功能。此外&#xff0c;该版本…...

k8s学习-CKS考试必过宝典

目录 CKS考纲集群安装&#xff1a;10%集群强化&#xff1a;15%系统强化&#xff1a;15%微服务漏洞最小化&#xff1a;20%供应链安全&#xff1a;20%监控、日志记录和运行时安全&#xff1a;20% 报名模拟考试考试注意事项考前考中考后 参考 CKS考纲 集群安装&#xff1a;10% 使…...

jmeter如何将上一个请求的结果作为下一个请求的参数

目录 1、简介 2、用途 3、下载、简单应用 4、如何将上一个请求的结果作为下一个请求的参数 1、简介 在JMeter中&#xff0c;可以通过使用变量来将上一个请求的结果作为下一个请求的参数传递。 ApacheJMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测…...

JAVA如何学习爬虫呢?

学习Java爬虫需要掌握以下几个方面&#xff1a; Java基础知识&#xff1a;包括Java语法、面向对象编程、集合框架等。 网络编程&#xff1a;了解HTTP协议、Socket编程等。 HTML、CSS、JavaScript基础&#xff1a;了解网页的基本结构和样式&#xff0c;以及JavaScript的基本语…...

距离保护原理

距离保护是反映故障点至保护安装处的距离&#xff0c;并根据距离的远近确定动作时间的一种保护。故障点距保护安装处越近&#xff0c;保护的动作时间就越短&#xff0c;反之就越长&#xff0c;从而保证动作的选择性。测量故障点至保护安装处的距离&#xff0c;实际上就是用阻抗…...

从微观世界的RST包文视角助力企业网络应用故障排查和优化

1. 前言 随着互联网的普及和发展&#xff0c;各行业的业务和应用越来越依赖于网络。然而&#xff0c;网络环境的不稳定性和复杂性使得出现各种异常现象的概率变得更高了。这些异常现象会导致业务无法正常运行&#xff0c;给用户带来困扰&#xff0c;甚至影响企业的形象和利益。…...

企业微信开发,简单测试。

企业微信开发&#xff0c;参考文档&#xff1a; https://github.com/wechat-group/WxJava/wiki...

element日期选择设置默认时间el-date-picker

<el-date-pickerv-model"rangeDate"style"width:350px"type"daterange"value-format"yyyy-MM-dd"change"dataChange"start-placeholder"开始日期"end-placeholder"结束日期"></el-date-picker…...

AB32VG:SDK_AB53XX_V061(3)IO口复用功能的补充资料

文章目录 1.IO口功能复用表格2.功能映射寄存器 FUNCTION03.功能映射寄存器 FUNCTION14.功能映射寄存器 FUNCTION2 AB5301A的官方数据手册很不完善&#xff0c;没有开放出来。我通过阅读源码补充了一些关于IO口功能复用寄存器的资料。 官方寄存器文档&#xff1a;《 AB32VG1_Re…...

UnityVR--组件10--UGUI简单介绍

目录 前言 UI基础组件 1. Canvas 2. EventSystem 3. Image 4. Text/TextMeshPro/InputField 5. Button控件 其他 前言 UGUI是Unity推出的新的UI系统&#xff0c;它与Unity引擎结合得更紧密&#xff0c;并拥有强大的屏幕自适应和更简单的深度处理机制&#xff0c;更容易使用和…...

k8s 探针

1.前言 Kubernetes探针(Probe)是用于检查容器运行状况的一种机制。探针可以检查容器是否正在运行&#xff0c;容器是否能够正常响应请求&#xff0c;以及容器内部的应用程序是否正常运行等。在Kubernetes中&#xff0c;探针可以用于确定容器的健康状态&#xff0c;如果容器的健…...

【爬虫】4.4 Scrapy 爬取网站数据

目录 1. 建立 Web 网站 2. 编写 Scrapy 爬虫程序 为了说明 scrapy 爬虫爬取网站多个网页数据的过程&#xff0c;用 Flask 搭建一个小型的 Web 网站。 1. 建立 Web 网站 &#xff08;1&#xff09;books.html <!DOCTYPE html> <html lang"en"> <h…...

PureComponent和Component的区别和底层处理机制

PureComponent和Component都是React中的组件类&#xff0c;但它们在实现细节和使用上有些差别。 Component是React中定义组件的基类&#xff0c;它的shouldComponentUpdate方法默认返回true&#xff0c;也就是说&#xff0c;每次调用setState或forceUpdate方法都会引发组件重新…...

python3 爬虫相关学习9:BeautifulSoup 官方文档学习

目录 1 BeautifulSoup 官方文档 报错暂时保存 2 用bs 和 requests 打开 本地html的区别&#xff1a;代码里的一段html内容 2.1 代码和运行结果 2.2 用beautiful 打开 本地 html 文件 2.2.1 本地html文件 2.2.2 soup1BeautifulSoup(html1,"lxml") 2.3 用reque…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

EC2安装WebRTC sdk-c环境、构建、编译

1、登录新的ec2实例&#xff0c;证书可以跟之前的实例用一个&#xff1a; ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境&#xff1a; https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...