当前位置: 首页 > 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.gsyq.cn/news/61153.html

相关文章:

  • 2025年11月休闲食品品牌推荐排行:满足多元场景的理性选择
  • OOP-实验四
  • 2025年LED灯珠优质厂家权威推荐榜单:LED灯‌/led灯‌/led景观灯‌源头厂家精选
  • 分布式、域控及SOA架构车身功能测试方案
  • 2025年广东枫叶卡企业外派保卡豁免条件方案权威榜单:广东枫叶卡企业外派保卡审批/广东枫叶卡企业外派保卡进度查询渠道/广东枫叶卡企业外派保卡失败原因服务机构精选
  • 2025 年 11 月靶材厂家权威推荐榜:溅射/磁控溅射/镀膜/旋转靶材,ITO/半导体/光学镀膜/陶瓷/金属/钛/铝/铜/钨/钼/钽/硅/合金/稀土靶材精选品牌,技术实力与镀膜效果深度解析
  • Java新手建站避坑:3天遭爬取后,10分钟部署免费WAF护住学习笔记
  • 2025天津留学机构推荐排名前十
  • 2025厦门比较好的留学机构有哪些
  • 2025 年 11 月铝单板厂家权威推荐榜:氟碳铝单板、仿木纹铝单板、仿石材铝单板,精选耐用美观的定制化外墙装饰解决方案
  • 2025 年 11 月管道更换服务实力厂家推荐榜:覆盖老旧破损/防腐耐高温/无损快速更换,自来水/燃气/暖气/工业/中央空调/地下室内外管道专业施工与高效解决方案
  • 2025年最受欢迎的一对一家教老师TOP5,一对一家教/上门家教一对一家教机构老师推荐排行榜单
  • [题解]P12444 [COTS 2025] 发好奖 / Hijerarhija
  • 2025年M12焊板式插座厂家权威推荐榜单:M12电源连接器方形法兰插座‌/M12连接器K编码插头‌/M12连接器T编码插座‌源头厂家精选
  • 抓住寒假提分窗!推荐硬实力初中数学补习老师,弯道超车正当时
  • 2025年奥福兰权威深度解析:八大核心技术如何重塑健康睡眠新标准
  • 2025年奥福兰权威解析:八大核心技术如何重塑健康睡眠新标准
  • 2025北京留学机构哪个好
  • 小明网站微信登录改造记——OAuth2完整指南(含续期逻辑)
  • 2025年11月网络推广公司推荐榜单:五大服务商综合对比分析
  • 2025年浙江汽车零部件网站建设公司权威推荐榜单:独立站建设‌/学校网站建设‌/网页设计‌源头公司精选
  • 2025 最新模板厂家权威推荐榜:塑钢 / 水沟 / 现浇等多类型模板优质厂家深度测评水池 / 方墩 / 框格梁 / 菜地沟 / 挡土墙模板推荐
  • 2025 年 11 月中国电线电缆厂家最新推荐,技术实力与市场口碑深度解析!
  • 2025年质量好的史馆展厅设计用户满意度榜
  • 谁在引领中国云市场?Huawei、Alibaba、AWS 成为新主流
  • 2025 年 11 月模切机厂家权威推荐榜:自动模切机/圆刀模切机/激光模切机/手机模切机/标签模切机/印刷模切机/高速模切机/巡边模切机/刻字模切机/压痕模切机/异形模切机,精准高效与稳定耐用之选
  • 2025年知名的隔膜压滤机优质厂家推荐榜单
  • 2025 年电缆桥架厂家最新推荐排行榜:甄选不锈钢铝合金热镀锌等优质类型,8 大靠谱厂家企业权威推荐热镀锌 / 热浸锌 / 托盘式 / 防火喷塑 / 大跨距电缆桥架公司推荐
  • 2025上海装修公司实力甄选:八大品牌严选,满足多元装修需求
  • MySQL至KingbaseES迁移最佳实践(上篇):迁移准备与实施规划 - 详解