xlsread('工作簿1');
[X,textdata]=xlsread('工作簿1');
XZ=zscore(X);%标准化变量
[COEFF,SCORE,latent,tsquare]=pca(XZ);%进行主成分分析
%(2)princomp函数
% princomp函数用来根据样本观测值矩阵进行主成分分析,其调用格式如下:
% <1>[COEFF,SCORE]=princomp(X)
% 根据样本观测值矩阵X进行主成分分析。输入参数X是n行p列的矩阵,每一行对应一
% 个观测(样品),每一列对应一个变量。输出参数COEFF是p个主成分析的系数矩阵,
% 他是pxp的矩阵,它的第i列对应第i个主成分的系数向量。输出参数SCORE是
% n个样品的p个主成分得分矩阵,它是n行p列的矩阵,每一行对应一个观测,
% 每一列对应一个主成分,第i行第j列元素表示第i个样品的第j个主成分得分,
% SCORE与X是一 一对应的关系,是X在新坐标系中的数据,可以通过X*系数矩阵得到。
% <2>[COEFF,SCORE,latent]=princomp(X)
% 返回样本协方差矩阵的特征值向量latent,它是由p个特征值构成的列向量,其中特征值按降序排列。
% <3>[COEFF,SCORE,latent,tsquare]=princomp(X)
% 返回一个包含n个元素的列向量tsquare,它的第i个元素的第i个观测对应的霍特林T^2统计量,表述了第i个观测与数据集(样本观测矩阵)的中心之间的距离,可用来寻找远离中心的极端数据。
% <4>[......]=princomp(X,‘econ’)
% 通过设置参数‘econ’参数,使得当n<=p时,只返回latent中的前n-1个元素(去掉不必要的0元素)及COEFF和SCORE矩阵中相应的列。
explained = 100*latent/sum(latent);%计算贡献率
[m, n] = size(X);%求X的行数和列数
result1 = cell(n+1, 4);%定义一个n+1行、4列的元胞数组
%result1中第一行存放的数据
result1(1,:) = {'特征值', '差值', '贡献率', '累积贡献率'};
%result1中第1列的第2行到最后一行存放的数据(latent)特征值
result1(2:end,1) = num2cell(latent);
%result1中第2列的第2行到倒数第2行存放的数据(latent的方差,特征值的方差)
result1(2:end-1,2) = num2cell(-diff(latent));
%result1中第3列和第4列的第2行到最后一行分别存放主成分的贡献率和累积贡献率
result1(2:end,3:4) = num2cell([explained, cumsum(explained)]);
% 为了直观,定义元胞数组result2,用来存放前2个(贡献大的成分)主成分表达式的系数数据
varname = extdata(3,2:end)';%提取变量名数据
result2 = cell(n+1, 3); %定义一个n+1行,3列的元胞数组
result2(1,:) = {'标准化变量', '特征向量t1', '特征向量t2'};%result2的第一行数据
result2(2:end, 1) = varname;%result2第1列
result2(2:end, 2:end) = num2cell(COEFF(:,1:2)) ;%存放前2个主成表达式的系数矩阵
zhuchengfen.rar_主成分分析
版权申诉
51 浏览量
2022-09-23
20:02:12
上传
评论
收藏 1KB RAR 举报
刘良运
- 粉丝: 70
- 资源: 1万+
最新资源
- 疯狂吃月饼游戏小程序前端源码
- 开源光谱分析仪博客的代码
- 基于深度学习的工业缺陷检测(续篇)
- 大创项目编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 树莓派智能车编程实例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 电子设计竞赛(Electronic Design Contest) 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料
- Cpu-Z 是一款计算机的CPU检测软件
- 美国大学生数学建模竞赛 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 最新版点微同城源码34.7+全套插件+小程序前后端附图片
- 计算机二级 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈