🔆 文章首发于我的个人博客:欢迎大佬们来逛逛
变异系数法
变异系数法的设计原理是:
- 若某项指标的数值差异较大,能明确区分开各被评价对象,说明该指标的分辨信息丰富,因而应给该指标以较大的权重;
- 若某项指标的数值差异较小,那么这项指标区分各评价对象的能力较弱,因而应给该指标较小的权重。
因为方差可以描述取值的离散程度,即某指标的方差反映了该指标的的分辨能力,所以可用方差定义指标的权重。
注意:使用变异系数法的前提恰恰是所有指标在评价体系中的重要性相当。也就是说,当指标在评价体系中的重要性相差较大时,使用变异系数法确定权重并不一定合适。
算法流程
- 创建原始指标数据矩阵: D a t a Data Data 形状为 m ∗ n m * n m∗n 列 ,表示有 m m m 行对象, n n n个指标
- 对 D a t a Data Data进行指标正向化处理,然后进行指标标准化处理
- 计算第
j
j
j 项指标的均值和标准差:
- 实际上我们进行变成时,计算均值和标准差也就是一条语句而已。
mean
与std
- 实际上我们进行变成时,计算均值和标准差也就是一条语句而已。
{ x ˉ j = 1 n ∑ i = 1 n x i j S j = ∑ i = 1 n ( x i j − x ˉ j ) 2 n − 1 \left\{\begin{array}{rcl}\mathrm{\bar x_j~=~\frac1n~\sum_{i=1}^nx_{ij}}\\\\\mathrm{S_j~=\sqrt{\frac{\sum_{i=1}^n\left(x_{ij}~-\bar x_j~\right)^2}{n-1}}}\end{array}\right. ⎩ ⎨ ⎧xˉj = n1 ∑i=1nxijSj =n−1∑i=1n(xij −xˉj )2
- 计算第 j j j 项指标的变异系数 V V V
v j = s j x ˉ j , j = 1 , 2 , ⋯ , p \mathrm{v_j~=~\frac{s_j}{\bar{x}_j}~,~j=1,2,\cdots,p} vj = xˉjsj , j=1,2,⋯,p
- 对各指标的变异系数进行归一化处理。
w j = V j ∑ j = 1 p v j \mathrm{w_j=\frac{V_j}{\sum_{j=1}^pv_j}} wj=∑j=1pvjVj文章来源:https://www.toymoban.com/news/detail-681578.html
- 最后我们得到全部指标的权重
W = { w 1 , w 2 , ⋯ , w p } \text{W}=\{\mathrm{w}_1,\mathrm{w}_2,\cdots,\mathrm{w}_\mathrm{p}\} W={w1,w2,⋯,wp}文章来源地址https://www.toymoban.com/news/detail-681578.html
代码实现
function [Score,w]=mfunc_variableCoefficient(data)
% 变异系数法:求解每个指标的权重
% paramts:
% data: 原始数据矩阵,(m,n) m为评价对象,n为评价指标
% returns:
% Score:每个评价对象的综合得分
% w: 所有指标的权重
%数据标准化
for j=1:size(data,2)
data(:,j)= data(:,j)./sqrt(sum(data(:,j).^2));
end
A=mean(data); %求每列指标平均值
S=std(data); %求每列指标方差
%计算变异系数
V=S./A;
%计算各指标的权重
w=V./sum(V);
%计算得分
s=data*w';
Score=100*s/max(s);
end
到了这里,关于数学建模:变异系数法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!