SPSS
导入数据
主成分分析
参数设置
选择要压缩的变量
输出结果
越陡说明信息差越大,反之信息差越小
导出数据
双击可以复制
粘贴到matlab
计算
Matlab
clc,clear
data = readmatrix('例2.xlsx'); %将数据保存在txt文件中
data = zscore(data); %数据的标准化
r = corrcoef(data); %计算相关系数矩阵r
%下面利用相关系数矩阵进行主成分分析,vecl的第一列为r的第一特征向量,即主成分的系数
[vec1,lamda,rate] = pcacov(r); %lamda为r的特征值,rate为各个主成分的贡献率
ljrate = cumsum(rate); %累计贡献率
f = repmat(sign(sum(vec1)), size(vec1, 1), 1); %构造与vecl同维数的元素为正负1的矩阵
vec2 = vec1.*f; %修改特征向量的正负号,使得每个特征向量的分量和为正,即为最终的特征向量
num = find(lamda>1, 1, 'last'); %num为选取的主成分的个数,这里选取特征值大于1的
df = data*vec2(:,1:num); %计算各个主成分的得分
tf = df*rate(1:num)/100; %计算综合得分
[stf, ind] = sort(tf,'descend'); %把得分按照从高到低的次序排列
disp('特征值及其贡献率,累加贡献率:')
[lamda, ratem ljrate]
disp('主成分得分及排序')
[stf, ind]
%假定主成分的信息保留率
T = 0.9;
for k = 1:b
if DS(k, 3) >= T
com_num = k;
break;
end
end