MATLAB中主成分分析(PCA)与相关性分析的实现

news/2025/11/26 10:32:51/文章来源:https://www.cnblogs.com/ll55522201/p/19271548

一、相关性分析程序

1. 基本Pearson相关系数计算
% 加载数据(假设数据存储在矩阵X中,每列代表一个变量)
X = load('data.mat');  % 替换为实际文件路径% 计算相关系数矩阵(默认Pearson)
corr_matrix = corr(X);% 显著性检验(p值)
[p_values, ~] = corr(X, 'type', 'pearson', 'rows', 'complete');% 可视化热力图
figure;
heatmap(corr_matrix, 'XData', X.Properties.VariableNames, ...'YData', X.Properties.VariableNames, ...'ColorMap', parula);
title('Pearson相关系数热力图');
xlabel('变量X');
ylabel('变量Y');

说明

  • corr()函数默认计算Pearson相关系数,若需Spearman或Kendall相关系数,需指定'type'参数。
  • p_values矩阵中每个元素对应相关系数的显著性水平(p值<0.05表示显著相关)。

2. 多变量相关性分析(含缺失值处理)
% 读取含缺失值的数据
data = readtable('data_with_nan.xlsx');% 计算相关系数矩阵(排除含缺失值的行)
[corr_matrix, p_values] = corr(data, 'rows', 'complete');% 输出显著相关对(p值<0.01)
significant_corr = corr_matrix(p_values < 0.01);
disp('显著相关系数矩阵:');
disp(significant_corr);

二、主成分分析(PCA)程序

1. 基础PCA实现(含数据标准化)
% 加载数据并标准化(消除量纲影响)
X = load('data.mat');
X_standardized = zscore(X);  % 标准化(均值为0,标准差为1)% 执行PCA
[coeff, score, latent, tsquared, explained] = pca(X_standardized);% 输出结果
disp('主成分载荷矩阵:');
disp(coeff);
disp('各主成分解释方差比例:');
disp(explained);% 碎石图(确定主成分数量)
figure;
pareto(explained / sum(explained) * 100);
xlabel('主成分序号');
ylabel('累计方差贡献率 (%)');
title('碎石图');

说明

  • zscore()函数对数据进行标准化,确保各变量量纲一致。
  • explained向量表示每个主成分解释的方差比例,累计贡献率≥85%时停止降维。

2. 主成分得分与可视化
% 计算前两个主成分得分
score_top2 = score(:, 1:2);% 绘制散点图(观察样本分布)
figure;
gscatter(score_top2(:,1), score_top2(:,2));
xlabel('第一主成分');
ylabel('第二主成分');
title('主成分得分分布');% 添加原始变量方向向量(载荷向量)
hold on;
quiver(mean(score_top2(:,1)), mean(score_top2(:,2)), ...mean(coeff(:,1)*10), mean(coeff(:,2)*10), 'r', 'LineWidth', 2);
legend('样本点', '变量方向');
hold off;

3. 基于协方差矩阵的PCA(手动计算)
% 计算协方差矩阵
cov_matrix = cov(X_standardized);% 特征值分解
[eigenvectors, eigenvalues] = eig(cov_matrix);
[~, idx] = sort(diag(eigenvalues), 'descend');
eigenvectors = eigenvectors(:, idx);% 主成分投影
projected_data = X_standardized * eigenvectors;% 输出前两个主成分
PC1 = projected_data(:, 1);
PC2 = projected_data(:, 2);

三、综合应用示例

1. 数据预处理与PCA
% 加载示例数据(MATLAB自带)
load carsmall;
X = [Horsepower Weight Acceleration MPG];% 处理缺失值(删除含NaN的行)
X = rmmissing(X);% 标准化数据
X_standardized = zscore(X);% 执行PCA
[coeff, score, latent] = pca(X_standardized);% 输出结果
disp('主成分载荷:');
disp(coeff);
disp('方差解释率:');
disp(latent / sum(latent) * 100);
2. 主成分重构与残差分析
% 重构数据(保留前两个主成分)
reconstructed_data = score(:, 1:2) * coeff(:, 1:2)';% 计算残差
residuals = X_standardized - reconstructed_data;% 绘制残差热力图
figure;
heatmap(residuals, 'XData', X.Properties.VariableNames, ...'YData', X.Properties.VariableNames, ...'ColorMap', parula);
title('主成分重构残差热力图');

四、关键函数与参数说明

函数 功能描述 示例参数
pca() 执行主成分分析,返回载荷矩阵、得分、方差解释率等 pca(X, 'NumComponents', 3)
corr() 计算相关系数矩阵(支持Pearson/Spearman/Kendall) corr(X, 'type', 'spearman')
zscore() 数据标准化(均值为0,标准差为1) zscore(X)
eig() 计算矩阵特征值与特征向量 [V,D] = eig(A)
pareto() 绘制帕累托图(用于确定主成分数量) pareto(percent_explained)

参考代码 用于主成分分析,相关性分析的程序 www.youwenfan.com/contentcnm/82494.html

五、注意事项

  1. 数据标准化:PCA对量纲敏感,必须先标准化(推荐zscore)。
  2. 缺失值处理:使用rmmissing()删除含缺失值的行,或通过'rows', 'pairwise'参数计算相关系数。
  3. 主成分选择:通过碎石图或累计方差贡献率(通常≥85%)确定保留的主成分数量。
  4. 结果解释:主成分载荷矩阵(coeff)的绝对值越大,对应原始变量对主成分的贡献越高。

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

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

相关文章

【2025-11-25】连岳摘抄

23:59我在每一天里重新诞生,每天都是我新生命的开始。——埃米尔左拉你老公选错单位吗?未必。一是单位好坏差距明显,不会选错。既然选了目前这个单位,那说明其他单位也在伯仲之间,差距是极细微的。选了其他单位,…

【C++升华篇】学习C++就看这篇--->AVLtree深度剖析模拟建立

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月漏水检测服务权威推荐榜:精准无损声学/红外/超声波技术,专业提供管道/地暖/中央空调/屋顶等室内外漏水检测上门服务

2025 年 11 月漏水检测服务权威推荐榜:精准无损声学/红外/超声波技术,专业提供管道/地暖/中央空调/屋顶等室内外漏水检测上门服务 行业背景与发展趋势 随着城市化进程加速和建筑老化问题日益突出,漏水检测行业正迎来…

2025年自动打包机生产商权威推荐榜单:自动捆扎机/纸箱自动捆扎机/纸箱自动打包机源头厂家精选

自动打包机作为现代工业生产中不可或缺的设备,其市场规模持续扩大。据行业数据显示,2025年中国自动打包机市场规模预计突破85亿元,年增长率维持在12%以上。在制造业转型升级的背景下,自动化捆扎设备的需求呈现多元…

2025年压接电压降定做厂家权威推荐榜单:线束电压降测试仪‌/电压降测试仪‌/线束电压降‌源头厂家精选

在电气系统安全性日益受到重视的今天,精确测量压接电压降已成为保障电气连接可靠性的关键环节,高效精准的测试设备在其中扮演着不可或缺的角色。 压接电压降测试仪通过精准检测电气系统中的电压降情况,能够有效评估…

为什么说NumPy 中的“广播”机制的“广播”一词非常形象?

这个词其实非常形象,英文是 Broadcasting。下面我为你详细解释一下为什么用“广播”这个词。 英文原词:Broadcasting中文直译: 广播、播放、撒播。 核心含义: 从一个中心点向周围广阔的区域广泛地发送信号、信息或…

2025年11月休闲食品品牌推荐排行:满足多元场景的理性选择

在快节奏的现代生活中,休闲食品已成为许多人日常解压、社交分享的重要选择。作为消费者,您可能正在寻找既满足口味又兼顾健康需求的零食品牌,或是希望了解当前市场上有哪些值得信赖的选择。根据2024年中国休闲食品行…

使用SCP命令在CentOS 7上向目标服务器传输文件

使用SCP(Secure Copy Protocol)在CentOS 7操作系统上向远程服务器传输文件是一个安全且常用的方法。SCP工具基于SSH (Secure Shell) 协议,能保证传输过程的安全性。以下为在CentOS 7上使用SCP命令向目标服务器传输文…

2025 年 11 月传感器厂家权威推荐榜:覆盖压力传感器,温度传感器,位移传感器,智能传感器的最新精选与选购指南

2025 年 11 月传感器厂家权威推荐榜:覆盖压力传感器,温度传感器,位移传感器,智能传感器的最新精选与选购指南 随着工业 4.0 和物联网技术的快速发展,传感器作为数据采集的核心部件,在智能制造、环境监测、医疗设…

OOP-实验四

实验任务一 源代码 GradeCalc.hpp点击查看代码 #pragma once#include <vector> #include <array> #include <string>class GradeCalc { public:GradeCalc(const std::string &cname); void…

2025年LED灯珠优质厂家权威推荐榜单:LED灯‌/led灯‌/led景观灯‌源头厂家精选

在2025年LED照明行业持续发展的背景下,全球LED灯珠市场规模稳步增长,技术创新与专业化分工已成为推动行业发展的核心动力。 LED灯珠作为照明产品的核心部件,其性能直接决定终端产品的品质与寿命。当前,高光效、高显…

吴恩达深度学习课程三: 结构化机器学习项目 第一周:机器学习策略(二)数据集设置

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

分布式、域控及SOA架构车身功能测试方案

车身域是指负责管理和控制汽车车身相关功能的一个功能域,在汽车域控系统中起着至关重要的作用。它涵盖了车门、车窗、车灯、雨刮器等各种与车身相关的功能模块。与汽车电子电气架构升级相一致,车身域发展亦可以划分为…

2025年广东枫叶卡企业外派保卡豁免条件方案权威榜单:广东枫叶卡企业外派保卡审批/广东枫叶卡企业外派保卡进度查询渠道/广东枫叶卡企业外派保卡失败原因服务机构精选

面对加拿大永久居民卡的居住要求,众多企业外派人员通过人道主义与同情理由申请豁免,成功率高达95%的专业方案揭秘。 对于常驻广东的加拿大永久居民而言,企业外派任务往往与维持枫叶卡有效性形成矛盾。根据加拿大移民…

2025 年 11 月靶材厂家权威推荐榜:溅射/磁控溅射/镀膜/旋转靶材,ITO/半导体/光学镀膜/陶瓷/金属/钛/铝/铜/钨/钼/钽/硅/合金/稀土靶材精选品牌,技术实力与镀膜效果深度解析

2025 年 11 月靶材厂家权威推荐榜:溅射/磁控溅射/镀膜/旋转靶材,ITO/半导体/光学镀膜/陶瓷/金属/钛/铝/铜/钨/钼/钽/硅/合金/稀土靶材精选品牌,技术实力与镀膜效果深度解析 一、行业背景与发展趋势 靶材作为现代高端…

2025 年 11 月 CNC 加工中心厂家权威推荐榜:精密零件/五轴模具/高速龙门加工中心定制选型与编程技术深度解析

2025 年 11 月 CNC 加工中心厂家权威推荐榜:精密零件/五轴模具/高速龙门加工中心定制选型与编程技术深度解析 行业背景与发展趋势 随着制造业向智能化、精密化方向快速发展,CNC加工中心作为现代制造业的核心装备,其…

基于MATLAB GUI的AIS自动船舶系统显示实现

一、系统架构设计功能模块划分 数据接收模块:支持串口或网络接收AIS数据(NMEA格式)。 数据解析模块:解析MMSI、经纬度、航向、速度等关键字段。 地图显示模块:基于地理坐标动态展示船舶位置与航迹。 状态监控模块…

Java新手建站避坑:3天遭爬取后,10分钟部署免费WAF护住学习笔记

Java新手建站避坑:3天遭爬取后,10分钟部署免费WAF护住学习笔记逛博客园三年,去年终于下定决心搭了自己的技术博客,专门用来沉淀Java学习笔记。跟着园友的教程,用腾讯云学生机+宝塔面板装好了Typecho,第一篇《Spr…

2025年复式别墅定做厂家权威推荐榜单:活动房‌/苹果舱‌/集装箱房‌源头厂家精选

在2025年,模块化建筑已成为复式别墅领域的一股创新力量,以其施工速度快、设计个性化和环保可重复利用的特点,正改变着传统高端住宅的建造模式。 复式别墅定做行业在2025年正迎来高速发展期,活动房、苹果舱、集装箱…

2025天津留学机构推荐排名前十

2025天津留学机构推荐排名前十作为一名从业12年的国际教育规划师,我经常被天津的留学生和家长问及如何选择靠谱的留学中介。随着2025年留学申请季的临近,许多天津学生开始纠结:天津本地的留学中介哪家更值得信赖?申…