因子分析基础指南:原理、步骤与地球化学数据分析应用解析
前言
在看深度学习成矿预测以及地球化学数据分析的文献的时候很多引言部分的内容会提到一些老的技术,正所谓:知其然知其所以然。所以我把关于一些老技术的基础铺垫的内容作为:研究生基础指南部分进行记录。
这部分讲述的是因子分析(Factor Analysis),这部分将会说明如下几点内容:
-
什么是因子分析?
-
因子分析的原理
-
因子分析和主成分分析(PCA)的区别
注:请确保你已经先掌握了主成分分析(PCA)方法
什么是因子分析?
因子分析(Factor Analysis,简称FA) 是一种统计方法,主要用于降维 和探索变量之间的潜在结构 。它通过识别一组可观测变量背后可能存在的、不可直接观测的潜在变量(latent variables)或因子(factors) ,来解释这些变量之间的相关性。
其基本思路是:试图找出少数几个公共因子 ,这些因子能够解释原始变量之间的相关关系。
因子分析的原理
听起来了和主成分分析(PCA)很像不是吗?关于和主成分分析的区别将在本文的最后说明。现在我们来关注一下他的过程。因子分析的一般模型可以表示为:
ε
,其中:
-
X:p个可观测变量组成的向量;
-
F:k个不可观测的公共因子(k < p);
-
Λ:因子载荷矩阵(loadings),表示每个变量与各因子的关系强度;
-
ε:特殊因子(unique factors),代表每个变量中不能被公共因子解释的部分。
这个公式可以先不用仔细看,我们更多的需要关系,他做了什么。在明白他做了什么后,再看公式才会明白他的意思。其具体计算过程如下:
-
数据准备 :标准化数据,检查变量间是否适合做因子分析(如KMO检验、Bartlett球形度检验)。
-
提取因子 :使用主成分法、主轴迭代法等提取初始因子。
-
确定因子个数 :根据特征值 > 1、碎石图(Scree Plot)、解释方差比例等判断。
-
因子旋转 :使因子更容易解释,常用正交旋转(如Varimax)或斜交旋转(如Oblimin)。
-
解释因子 :观察因子载荷,给每个因子命名并赋予实际意义。
-
计算因子得分 :可用于后续分析。
乍一看这个过程前半截和PCA很像,或者你可以说,他在提取因子和筛选因子个数的时候就是可以通过PCA的方法来选择。不同的地方在于数据适用条件和因子旋转。
适用前提
-
因子分析要求变量之间的共线性或相关关系比较强。
-
因子分析变量应该服从正态分布或近似正态分布。
对于第一点而言,就可以通过KMO检验、Bartlett球形度检验来得知,对于第二点,可以通过标准化或者对数变换来消除量纲并且使得数据近似服从正态分布。
KMO 检验和Bartlett球形度检验听起来非常的吓人啊,其实不然,此处做一个简短的说明就能明白了:
KMO检验的作用就是:衡量变量之间的偏相关性是否足够强,也就是说,变量之间是否存在潜在的共同因子。他的判别标准就是计算的值,如果在 0.8-1 之间则表示可以做因子分析,小于 0.5 表示数据没办法做因子分析。
而对于Bartlett球形度检验而言,他的作用就是:检验相关系数矩阵是否是一个单位阵(即所有变量是否彼此不相关)。
这么说的话这两个方法就很简单了,无非就是判别是否满足我们对数据做因子分析的前提工具。
因子旋转
这又是一个第一次听起来非常唬人的名词啊,我来简单解释一下:
因子旋转的作用是调整空间坐标系来使得因子更好解释。它主要是解决一个问题,在我们选择好公因子后,会出现某个变量在其他公因子里面都占据有不小的相关性。
比如我们选择降维 5 个公因子,SiO2 元素在 5 个公因子里面会出现全部占有超过 0.6 的相关度。这就导致没办法解释了。因为,我们要提取共性,或者换个角度来理解,类似于聚类,我们需要把不同的变量用一个公因子来代表,而不是把每个变量都用公因子来代表。
因子旋转的方法有两种:正交旋转(如Varimax)和斜交旋转两个类别。:
-
正交旋转假设因子之间是不相关的(即因子轴相互垂直),常用的正交旋转方法是 Varimax 旋转。
-
斜交旋转允许因子之间存在相关性(即因子轴不再相互垂直)。常用的斜交旋转方法包括 Promax 旋转和 Direct Oblimin 旋转。
示例
这个示例来源于:卢文东等人发表的《因子分析在地球化学分区中的应用及指示意义——以山东省莒县—五莲地区1∶5万水系沉积物测量数据为例》。
这个数据是已经进行挑选因子以及因子旋转后的结果,我们可以很清晰的了解,作者选择了 8 个公因子,通过因子旋转后的结果可以得知:F1 因子代表了元素组合 V-Ti-Co-Mn,F2 因子代表了元素组合 Au-Cu-Ag-Mo-Bi。其他省略。
对于这些元素组合的解释,就需要根据实际情况具体解释了。到此为止你就完成了数据的因子分析。
因子分析和PCA的区别
因子分析和PCA的区别可以通过上图可以清晰的了解,因子分析思想类似于聚类,他通过把一些相关性强的元素作为一组提取公因子。而PCA是通过在所有的变量数据空间中,重新定义坐标系,重新定义”新“数据来代表原来的数据。
End
记得关注唯一微信公众号:码上地球🌹
这部分内容完全是为了后续的 矿物勘探的地球化学数据的处理和解释 部分内容做的基础铺垫。后面将会更新一些深度学习成矿预测GIS的内容,内容是基于书籍《Geospatial analysis applied to mineral exploration: remote sensing, GIS, geochemical, and geophysical applications to mineral resources》。可以让做地质大数据的相关伙伴快速入门并掌握基础知识。
参考文献
-
大腿粗的小吖,2025. FA因子分析.
-
Pour, A.B., Parsa, M., Eldosouky, A.M., 2023. Geospatial analysis applied to mineral exploration: remote sensing, GIS, geochemical, and geophysical applications to mineral resources. Elsevier.
-
李硕,高洪生,吴瑾,侯建涛,周泽旭,宋淑艳,陈峥嵘,2025. 津南区土壤地球化学背景值与元素组合特征. 环境生态学, 15-22.
-
卢文东,孙斌,李光杰,魏伟,夏小兴,潘丙磊,乔娜,2025. 因子分析在地球化学分区中的应用及指示意义——以山东省莒县—五莲地区1∶5万水系沉积物测量数据为例. 物探与化探, 411-421.
相关文章:
因子分析基础指南:原理、步骤与地球化学数据分析应用解析
前言 在看深度学习成矿预测以及地球化学数据分析的文献的时候很多引言部分的内容会提到一些老的技术,正所谓:知其然知其所以然。所以我把关于一些老技术的基础铺垫的内容作为:研究生基础指南部分进行记录。 这部分讲述的是因子分析…...
采用AI神经网络降噪算法的通信语音降噪(ENC)模组性能测试和应用
采用AI降噪的语言通话环境抑制模组性能效果测试 随着AI时代来临.通话设备的环境噪音抑制也进入AI降噪算法时代. AI神经网络降噪技术是一款革命性的语音处理技术,他突破了传统单麦克风和双麦克风降噪的局限性,利用采集的各种日常环境中的噪音样本进行训练学习.让降噪…...
面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
在当今的高并发、大数据时代,系统架构的复杂性呈指数级增长。你是否曾遇到过这样的问题:用户订单提交后,系统响应缓慢甚至卡顿?或者在业务高峰期,消息积压导致系统崩溃? 这些问题的背后,往往隐…...
【落羽的落羽 C++】stack和queue、deque、priority_queue、仿函数
文章目录 一、stack和queue1. 概述2. 使用3. 模拟实现 二、deque三、priority_queue1. 概述和使用2. 模拟实现 四、仿函数 一、stack和queue 1. 概述 我们之前学习的vector和list,以及下面要认识的deque,都属于STL的容器(containers&#x…...
Golang 空结构体特性与用法
文章目录 1.简介2.核心特性2.1 零内存占用2.2 值比较语义2.3 类型隔离2.4 值地址 3.作用3.1 实现集合(Set)3.2 不发送数据的信道3.3 无状态方法接收者3.4 作为 context 的 value 的 key 4.小结参考文献 1.简介 在 Go 语言中,空结构体是一个不…...
企业对数据集成工具的需求及 ETL 工具工作原理详解
当下,数据已然成为企业运营发展过程中的关键生产要素,其重要性不言而喻。 海量的数据分散在企业的各类系统、平台以及不同的业务部门之中,企业要充分挖掘这些数据背后所蕴含的巨大价值,实现数据驱动的精准决策,数据集…...
基于HTTP头部字段的SQL注入:SQLi-labs第17-20关
前置知识:HTTP头部介绍 HTTP(超文本传输协议)头部(Headers)是客户端和服务器在通信时传递的元数据,用于控制请求和响应的行为、传递附加信息或定义内容类型等。它们分为请求头(Request Headers&…...
Megatron系列——流水线并行
内容总结自:bilibili zomi 视频大模型流水线并行 注:这里PipeDream 1F1B对应时PP,Interleaved 1F1B对应的是VPP 1、朴素流水线并行 备注: (1)红色三个圈都为空泡时间,GPU没有做任何计算 &am…...
Android HttpAPI通信问题(待解决)
使用ClearTextTraffic是Android中一项重要的网络设置,它控制了应用程序是否允许在不使用HTTPS加密的情况下访问网络。在默认情况下,usescleartexttraffic的值为true,这意味着应用程序可以通过普通的HTTP协议进行网络通信。然而,这…...
WebFlux vs WebMVC vs Servlet 对比
WebFlux vs WebMVC vs Servlet 技术对比 WebFlux、WebMVC 和 Servlet 是 Java Web 开发中三种不同的技术架构,它们在编程模型、并发模型和适用场景上有显著区别。以下是它们的核心对比: 核心区别总览 特性ServletSpring WebMVCSpring WebFlux编程模型…...
Spring MVC参数传递
本内容采用最新SpringBoot3框架版本,视频观看地址:B站视频播放 1. Postman基础 Postman是一个接口测试工具,Postman相当于一个客户端,可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果。 2. Spring MVC相关注解 3. Spring MVC参数传递 Spri…...
Spring MVC 和 Spring Boot 是如何访问静态资源的?
Spring MVC 和 Spring Boot 在配置静态资源访问方面有所不同,Spring Boot 提供了更便捷的自动配置。 一、Spring Boot 如何配置静态资源访问 (推荐方式) Spring Boot 遵循“约定优于配置”的原则,对静态资源的访问提供了非常方便的自动配置。 默认静态…...
如何应对网站被爬虫和采集?综合防护策略与实用方案
在互联网时代,网站内容被恶意爬虫或采集工具窃取已成为常见问题。这不仅侵犯原创权益,还可能影响网站性能和SEO排名。以下是结合技术、策略与法律的综合解决方案,帮助网站构建有效防护体系。 一、技术防护:阻断爬虫的“技术防线”…...
MySQL 分页查询优化
目录 前言1. LIMIT offset, count 的性能陷阱:为什么它慢?😩2. 优化策略一:基于排序字段的“跳跃式”查询 (Seek Method) 🚀3. 优化策略二:利用子查询优化 OFFSET 扫描 (ID Subquery)4. 基础优化࿱…...
我用Deepseek + 亮数据爬虫神器 1小时做出輿情分析器
我用Deepseek 亮数据爬虫神器 1小时做出輿情分析器 一、前言二、Web Scraper API 实战(1)选择对应的URL(2)点击进入对应url界面(3)API结果实例和爬取结果展示(4)用户直接使用post请…...
langchain4j中使用milvus向量数据库做RAG增加索引
安装milvus向量数据库 官方网址 https://milvus.io/zh 使用docker安装milvus mkdir -p /data/docker/milvus cd /data/docker/milvus wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh#在docker中启动milvus sh standalone_emb…...
【开源工具】深度解析:基于PyQt6的Windows时间校时同步工具开发全攻略
🕒 【开源工具】深度解析:基于PyQt6的Windows时间校时同步工具开发全攻略 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热…...
开源 RPA 工具深度解析与官网指引
开源 RPA 工具深度解析与官网指引 摘要 :本文深入解析了多款开源 RPA 工具,涵盖 TagUI、Aibote、Taskt 等,分别介绍了它们的核心功能,并提供了各工具的官网链接,方便读者进一步了解与使用,同时给出了基于不…...
【免杀】C2免杀技术(一)VS设置
一、概述 编译器生成的二进制文件特征(代码结构、元数据、指纹)可能被杀软的静态或动态检测规则匹配。Visual Studio 的构建设置(特别是运行库、编译器优化、链接方式等)会直接影响最终生成的二进制文件的结构、行为特征和依赖关…...
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——nettle库
准备工作 请依照这篇文章搭建环境 OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——环境配置_openharmony交叉编译-CSDN博客 编译依赖 相关依赖有 gmp-6.3.0 请依照这篇文章编译 OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库…...
Kotlin与Ktor构建Android后端API
以下是一个使用 Kotlin 和 Ktor 构建 Android 后端 API 的详细示例,包含常见功能实现: 1. 项目搭建 (build.gradle.kts) plugins {applicationkotlin("jvm") version "1.9.0"id("io.ktor.plugin") version "2.3.4"id("org.je…...
网页jupyter如何显示jpipvenv虚拟环境
今天使用社区版pycharm编辑.ipynb文件时,发现pycharm编辑.ipynb文件需要订阅。但是发现pipvenv虚拟环境解释器在jupyter中只有一个Python3:ipykernel版本,没有venv和conda的虚拟环境。因此在网上搜寻资料,作为备份记录。 以windows为例 假设目…...
学习黑客5 分钟深入浅出理解Windows System Configuration
5 分钟深入浅出理解Windows System Configuration ⚙️ 大家好!今天我们将探索Windows系统配置——这是Windows操作系统的核心控制中心,决定了系统如何启动、运行和管理各种功能。无论你是计算机初学者,还是在TryHackMe等平台上学习网络安全…...
Spyglass:跨时钟域同步方案
相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 Spyglass可以用于检测设计中的跨时钟域相关问题,确保电路中添加了适当的同步机制,以避免此类问题的发生,例如: 与亚稳…...
Ubuntu虚拟机文件系统扩容
1. 删除所有的虚拟机快照。 2. 选择扩展 将最大大小调整为你所需的大小 3. 进入虚拟机,输入命令: sudo apt install gparted sudo gparted 4. 选择磁盘,右键根分区,选择Resize/Move,调整大小。 5. 调整所需分区大…...
Window、CentOs、Ubuntu 安装 docker
Window 版本 网址:https://www.docker.com/ 下载 下载完成后,双击安装就可以了 Centos 版本 卸载 Docker (可选) yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-log…...
mac M2下虚拟机CentOS 8 安装上安装 Berkeley DB
问题:直接在centos8 yum安装db4-devel失败,只能手工安装 进入home目录,下载 wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz 解压 tar -zxvf db-4.6.21.tar.gz 切到cd db-4.6.21的build_unix下 cd db-4.6.21 cd build_…...
Python文字转语音TTS库示例(edge-tts)
1. 安装 pip install edge-tts2. 命令行使用 # 生成语音文件 # -f:要转换语音的文本文件,例如一个txt文件 # --text:指明要保存的mp3的文本 # --write-media:指明保存的mp3文件路径 # --write-subtitles:指定输出字幕…...
lua入门语法,包含安装,注释,变量,循环等
文章目录 LUA入门什么是lualua安装入门lua的使用方式注释定义变量lua中的数据类型流程控制ifelsewhile语法:for 函数表模块 LUA入门 什么是lua 一种脚本语言,设计的目的是为了能够在一些应用程序提供灵活的扩展功能和定制功能。 lua安装 有linux版本…...
【文心智能体】使用文心一言来给智能体设计一段稳定调用工作流的提示词
🌹欢迎来到《小5讲堂》🌹 🌹这是《文心智能体》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正࿰…...
TWASandGWAS中GBS filtering and GWAS(1)
F:\文章代码\TWASandGWAS\GBS filtering and GWAS README.TXT 请检查幻灯片“Vitamaize_update_Gorelab_Ames_GBS_filtering_20191122.pptx”中关于阿姆斯(Ames)ID处理流程的详细信息。 文件夹“Ames_ID_processing”包含了用于处理阿姆斯ID的文件和R…...
Linux电源管理(五),发热管理(thermal),温度控制
更多linux系统电源管理相关的内容请看:Linux电源管理、功耗管理 和 发热管理 (CPUFreq、CPUIdle、RPM、thermal、睡眠 和 唤醒)-CSDN博客 本文主要基于linux-5.4.18版本的内核代码进行分析。 1 简介 1.1 硬件知识 CPU等芯片在工作时会产生大量热量,…...
【C++11】异常
前言 上文我们学习到了C11中类的新功能【C11】类的新功能-CSDN博客 本文我们来学习C下一个新语法:异常 1.异常的概念 异常的处理机制允许程序在运行时就出现的问题进行相应的处理。异常可以使得我们将问题的发现和问题的解决分开,程序的一部分负…...
C#WPF里不能出现滚动条的原因
使用下面这段代码,就不能出现滚动条: <mdix:DrawerHost.LeftDrawerContent><Grid Width="260" Background="{StaticResource MaterialDesign.Brush.Primary}"><Grid.RowDefinitions><RowDefinition Height="auto"/>&l…...
安装Hadoop并运行WordCount程序
一、安装 Java Hadoop 依赖 Java,首先需要安装 Java 开发工具包(JDK)。以 Ubuntu 为例: bash sudo apt update sudo apt install openjdk-8-jdk安装后,设置环境变量: bash echo export JAVA_HOME/usr/li…...
从零搭建AI工作站:Gemma3大模型本地部署+WebUI配置全套方案
文章目录 前言1. 安装Ollama2.Gemma3模型安装与运行3. 安装Open WebUI图形化界面3.1 Open WebUI安装运行3.2 添加模型3.3 多模态测试 4. 安装内网穿透工具5. 配置固定公网地址总结 前言 如今各家的AI大模型厮杀得如火如荼,每天都有新的突破。今天我要给大家安利一款…...
《数字人技术实现路径深度剖析与研究报告》
《数字人技术实现路径深度剖析与研究报告》 一、引言 1.1 研究背景与意义 近年来,随着人工智能、虚拟现实、计算机图形学等技术的飞速发展,数字人技术应运而生并取得了显著进展。数字人作为一种新兴的技术应用,正逐步渗透到各个领域,成为推动行业创新发展的重要力量。从最…...
《棒球百科》MLB棒球公益课·棒球1号位
MLB(美国职业棒球大联盟)的棒球公益课通过推广棒球运动、普及体育教育,对全球多个地区产生了多层次的影响: 1. 体育文化推广 非传统棒球地区的普及:在棒球基础较弱的地区(如中国、欧洲部分国家)…...
Android 中 Handler (创建时)内存泄漏问题及解决方案
一、Handler 内存泄漏核心原理 真题 1:分析 Handler 内存泄漏场景 题目描述: 在 Activity 中使用非静态内部类 Handler 发送延迟消息,旋转屏幕后 Activity 无法释放,分析原因并给出解决方案。 内存泄漏链路分析: 引…...
linux-驱动开发之设备树详解(RK平台为例)
前言 Linux3.x以后的版本才引入了设备树,设备树用于描述一个硬件平台的板级细节。 在早些的linux内核,这些“硬件平台的板级细节”保存在linux内核目录“/arch”, 以ARM为例“硬件平台的板级细节”保存在“/arch/arm/plat-xxx”和“/arch/ar…...
【现代深度学习技术】注意力机制05:多头注意力
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…...
RDD的五大特征
1. 由多个分区(Partitions)组成 特性:RDD 是分区的集合,每个分区在集群的不同节点上存储。分区是数据并行处理的基本单位。作用:分区使 RDD 能够在集群中并行计算,提高处理效率。 2. 有一个计算每个分区的…...
键盘RGB矩阵与LED指示灯(理论部分)
键盘RGB矩阵与LED指示灯(理论部分) 一、LED指示灯基础 在键盘世界里,LED指示灯不仅仅是装饰,它们还能提供丰富的状态信息。QMK固件提供了读取HID规范中定义的5种LED状态的方法: Num Lock(数字锁定)Caps Lock(大写锁定)Scroll Lock(滚动锁定)Compose(组合键)Desp…...
HTTP方法和状态码(Status Code)
HTTP方法 HTTP方法(也称HTTP动词)主要用于定义对资源的操作类型。根据HTTP/1.1规范(RFC 7231)以及后续扩展,常用的HTTP方法有以下几种: GET:请求获取指定资源的表示形式。POST:向指…...
【sqlmap需要掌握的参数】
sqlmap需要掌握的参数 目标-u 指定URL 用于get请求-l 用于post请求- r 用于post请求指定数据库/表/字段 -D/-T/-C 脱库获得数据库获取用户获取表获取列获取字段获取字段类型获取值 其他 目标 -u 指定URL 用于get请求 -u URL, --urlURL 目标URL 只使用于get命令中 -l 用于pos…...
用 AltSnap 解锁 Windows 窗口管理的“魔法”
你有没有遇到过这样的场景:电脑屏幕上堆满了窗口,想快速调整它们的大小和位置,却只能拖来拖去,费时又费力?或者你是个多任务狂魔,喜欢一边写代码、一边看文档、一边刷视频,却发现 Windows 自带的…...
高并发内存池(三):TLS无锁访问以及Central Cache结构设计
目录 前言: 一,thread cache线程局部存储的实现 问题引入 概念说明 基本使用 thread cache TLS的实现 二,Central Cache整体的结构框架 大致结构 span结构 span结构的实现 三,Central Cache大致结构的实现 单例模式 thr…...
数据治理域——数据治理体系建设
摘要 本文主要介绍了数据治理系统的建设。数据治理对企业至关重要,其动因包括应对数据爆炸增长、提升内部管理效率、支撑复杂业务需求、加强风险防控与合规管理以及实现数字化转型战略。其核心目的是提升数据质量、统一数据标准、优化数据资产管理、支撑业务发展和…...
数据库实验报告 SQL SERVER 2008的基本操作 1
实验报告(第 1 次) 实验名称 SQL SERVER 2008的基本操作 实验时间 9月14日1-2节 一、实验内容 数据库的基本操作:包括创建、修改、附加、分离和删除数据库等。 二、源程序及主要算法说明 本次实验不涉及程序和算法。 三、测…...
基于STM32、HAL库的ICP-20100气压传感器 驱动程序设计
一、简介: ICP-20100 是 InvenSense(TDK 集团旗下公司)生产的一款高精度数字气压传感器,专为需要精确测量气压和海拔高度的应用场景设计。它具有低功耗、高精度、快速响应等特点,非常适合物联网、可穿戴设备和无人机等应用。 二、硬件接口: ICP-20100 引脚STM32L4XX 引脚…...