x=[
3.69 3.71 3.65 3.87
3.71 4.07 3.87 4.42
4.30 3.75 3.63 4.43
4.08 3.78 3.65 4.49
3.93 3.87 4.37 4.47
4.18 3.96 3.72 4.46
]
% 函数shang.m, 实现用熵值法求各指标(列)的权重及各数据行的得分
% x为原始数据矩阵, 一行代表一个组, 每列对应一个成分指标
% s返回各行得分, w返回各列权重
[n,m]=size(x)% n=响应面/实验组数, m=成分指标
%% 数据的归一化处理
[X,ps]=mapminmax(x',0,1)
ps.ymin=0.002% 归一化后的最小值
ps.ymax=0.996% 归一化后扮首的最大值
ps.yrange=ps.ymax-ps.ymin% 归一化后的极差,若不调整该值, 则逆运算会出错
X=mapminmax(x'裂旅,ps)
% mapminmax('reverse',xx,ps)% 反归一化, 回到原数据
X=X' % X为归一化后的数据
%% 计算第j个指标下,肆缺凳第i个记录占该指标的比重p(i,j)
for i=1:n
for j=1:m
p(i,j)=X(i,j)/sum(X(:,j))
end
end
%% 计算第j个指标的熵值e(j)
k=1/log(n)
for j=1:m
e(j)=-k*sum(p(:,j).*log(p(:,j)))
end
d=ones(1,m)-e % 计算信息熵冗余度
w=d./sum(d) % 求权值w
y(:,1)=x(:,1)*w(1)+x(:,2)*w(2)%输出
y
在线分析软件spssau(SPSSAU)可以做熵值法计算,点一下返滚裂即可完成分析,漏闭非常简单。
同时提供智能分析文字,如果有不会的地方可以查看备首帮助手册中的说明。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)