那位知道用Matlab怎么做主成分分析,对应分析和因子分析啊?能不能给些原码啊?
下面是一个主成分分析的例子,都是使用了统计工具箱中的函数,详细参见matlab统计工具箱的帮助,这里我觉得使用SPSS进行相关分析更加方便,你可以试一试!
%基于相关系数矩阵
clear;
load suju.mat;
stdr=std(dataset); %求个变量的标准差
[n,m]=size(dataset); %定义矩阵行列数
sddata=dataset./stdr(ones(n,1),
; %将原始数据采集标准化
sddata %输出标准化数据
[p,princ,eigenvalue,t2]=princomp(sddata);
% p 每列是相应的特征向量数值,也即是每个组成分在各原是变量上的系数
%第一列是想对应于最大的特征值的特征向量 依此类推 princ n行m列矩阵
%是代表第一条信息的m个主成分分值
%eigenvalue 1维m元列向量,每条信息到样本中心的距离
per=100*eigenvalue/sum(eigenvalue) %求出各主成分的贡献率
cumsum(per) %列出各主成分的累积贡献率
figure(1)
pareto(per); %将贡献率绘成直方图
figure(2)
plot(eigenvalue,'r+'); %绘制方差贡献散点图
hold on
%保持图形
plot(eigenvalue,'g-'); %绘制方差贡献山麓图
p3=p(:,1:10) %提取前10个主成分得分系数
sc=princ(:,1:10) %提取前10个主成分得分值
不会
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |