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

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

一、相关性分析程序

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.jsqmd.com/news/51250/

相关文章:

  • 【2025-11-25】连岳摘抄
  • 【C++升华篇】学习C++就看这篇--->AVLtree深度剖析模拟建立
  • 2025 年 11 月漏水检测服务权威推荐榜:精准无损声学/红外/超声波技术,专业提供管道/地暖/中央空调/屋顶等室内外漏水检测上门服务
  • 2025年自动打包机生产商权威推荐榜单:自动捆扎机/纸箱自动捆扎机/纸箱自动打包机源头厂家精选
  • 2025年压接电压降定做厂家权威推荐榜单:线束电压降测试仪‌/电压降测试仪‌/线束电压降‌源头厂家精选
  • 为什么说NumPy 中的“广播”机制的“广播”一词非常形象?
  • 2025年11月休闲食品品牌推荐排行:满足多元场景的理性选择
  • 使用SCP命令在CentOS 7上向目标服务器传输文件
  • 2025 年 11 月传感器厂家权威推荐榜:覆盖压力传感器,温度传感器,位移传感器,智能传感器的最新精选与选购指南
  • OOP-实验四
  • 2025年LED灯珠优质厂家权威推荐榜单:LED灯‌/led灯‌/led景观灯‌源头厂家精选
  • 吴恩达深度学习课程三: 结构化机器学习项目 第一周:机器学习策略(二)数据集设置
  • 分布式、域控及SOA架构车身功能测试方案
  • 2025年广东枫叶卡企业外派保卡豁免条件方案权威榜单:广东枫叶卡企业外派保卡审批/广东枫叶卡企业外派保卡进度查询渠道/广东枫叶卡企业外派保卡失败原因服务机构精选
  • 2025 年 11 月靶材厂家权威推荐榜:溅射/磁控溅射/镀膜/旋转靶材,ITO/半导体/光学镀膜/陶瓷/金属/钛/铝/铜/钨/钼/钽/硅/合金/稀土靶材精选品牌,技术实力与镀膜效果深度解析
  • 2025 年 11 月 CNC 加工中心厂家权威推荐榜:精密零件/五轴模具/高速龙门加工中心定制选型与编程技术深度解析
  • 基于MATLAB GUI的AIS自动船舶系统显示实现
  • Java新手建站避坑:3天遭爬取后,10分钟部署免费WAF护住学习笔记
  • 2025年复式别墅定做厂家权威推荐榜单:活动房‌/苹果舱‌/集装箱房‌源头厂家精选
  • 2025天津留学机构推荐排名前十
  • 2025厦门比较好的留学机构有哪些
  • 2025 最新推荐黄金麻实力厂家排行榜:涵盖全品类加工 + 出口级品质,助力工程采购精准选型黄金麻蘑菇石/黄金麻自然面/黄金麻地铺石/黄金麻火烧板/黄金麻地铺板/黄金麻仿古石公司推荐
  • 2025热门出国留学机构
  • 2025北京留学机构哪家好
  • 2025 年 11 月铝单板厂家权威推荐榜:氟碳铝单板、仿木纹铝单板、仿石材铝单板,精选耐用美观的定制化外墙装饰解决方案
  • 2025 年 11 月管道更换服务实力厂家推荐榜:覆盖老旧破损/防腐耐高温/无损快速更换,自来水/燃气/暖气/工业/中央空调/地下室内外管道专业施工与高效解决方案
  • 2025年一对一辅导机构口碑教师排行榜TOP10,一对一家教/上门家教一对一家教机构老师排行
  • 2025年最受欢迎的一对一家教老师TOP5,一对一家教/上门家教一对一家教机构老师推荐排行榜单
  • [题解]P12444 [COTS 2025] 发好奖 / Hijerarhija
  • 开源的 微信、QQ、TIM 防撤回补丁