综合评价与决策方法
主观观赋权(合咨询评分确定权重,如综合指数法 、模糊综合评判法、层次分析法、功效系数法 )
模糊综合评判法
该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价
主要步骤:
(1)确定因素集
(2)确定评语集
(3)确定各因素的权重
(4)确定模糊综合判断矩阵
(5)综合评判
具体实例:
例二:
matlab解法如下:
a = [0.8 0.15 0.05 0 0 0.2 0.6 0.1 0.1 0 0.5 0.4 0.1 0 0 0.1 0.3 0.5 0.05 0.05 0.3 0.5 0.15 0.05 0 0.2 0.2 0.4 0.1 0.1 0.4 0.4 0.1 0.1 0 0.1 0.3 0.3 0.2 0.1 0.3 0.2 0.2 0.2 0.1 0.1 0.3 0.5 0.1 0 0.2 0.3 0.3 0.1 0.1 0.2 0.3 0.35 0.15 0 0.1 0.3 0.4 0.1 0.1 0.1 0.4 0.3 0.1 0.1 0.3 0.4 0.2 0.1 0 0.1 0.4 0.3 0.1 0.1 0.2 0.3 0.4 0.1 0 0.4 0.3 0.2 0.1 0]; W = [0.4 0.3 0.2 0.1]; W1 = [0.2 0.3 0.3 0.2]; W2 = [0.3 0.2 0.1 0.2 0.2]; W3 = [0.1 0.2 0.3 0.2 0.2]; W4 = [0.3 0.2 0.2 0.3]; B(1,:) = W1*a(1:4,:); B(2,:) = W2*a(5:9,:); B(3,:) = W3*a(10:14,:); B(4,:) = W4*a(15:end,:);B c = W*B
客观观赋权(理想解法、因子分析法 、主成分分析法)
理想解法(TOPSIS)
理想解法亦称为TOPSIS法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案
主要步骤:
(1)用向量规划化的方法求得规范决策
(2)构造加权规范阵
(3)确定正理想解 和负理想解
(4)计算各方案到正理想解与负理想解的距离
(5)计算各方案的排序指标值
(6)按由大到小排列方案的优劣次序
具体实例:
matlab解法如下:
clc; clear; a = [0.1 5 5000 4.7 0.2 6 6000 5.6 0.4 7 7000 6.7 0.9 10 10000 2.3 1.2 2 400 1.8] %已知的罗列 [m,n] = size(a); qujian = [5,6];lb = 2; ub = 12; w = [0.2 0.3 0.4 0.1] x2 =@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)-lb)).*(x>=lb & x<qujian(1))+(x>=qujian(1) & x<=qujian(2))+(1-(x-qujian(2))./(ub-qujian(2))).*(x>qujian(2) & x<=ub); %第一步数据预处理:用向量规划化的方法求得规范决策,目的:使得表中任一属性下性能越优的方案变换后的属性值越大 %具体方法(无量纲化、归一化) a(:,2) = x2(qujian,lb,ub,a(:,2)) %第二列的规范化处理:区间型属性的变换 b = a./vecnorm(a);%help vecnorm:发现返回的是矩阵的每一列元素平方相加的开根号值;这里是用来规范化所有元素 %第二步构造加权规范阵 c = b.*w;%矩阵点乘向量,矩阵对应列元素乘以向量对应列元素 %第三步:求正理想解 Cstar = max(c);%max(矩阵):对矩阵的每列元素取最大值,返回一个向量 Cstar(4) = min(c(:,4)); %对于成本型,最小值才是最理想解 %第四步:求负理想解 C0 = min(c); C0(4) = max(c(:,4)); %第五步:计算各方案的排序指标值 Sstar = vecnorm(c-Cstar,2,2);%help vecnorm,发现 vecnorm构造方法之一vecnorm(矩阵(A),系数(p),方式(n)),其中系数是指矩阵的每一(列(n = 1)/行(n = 2))元素平方相加的开几次根号值,既1/p; S0 = vecnorm(c-C0,2,2); %第六步:按由大到小排列方案的优劣次序 f = S0./(Sstar+S0); [sf,ind] = sort(f,'descend')
主成分分析法
主成分分析(Principal Component Analysis,PCA)是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
主要步骤:
(1)对原始数据进行标准化处理。
(2)计算相关系数矩阵R。
(3)计算特征值和特征向量。
(4)选择 p个主成分,计算综合评价值。
具体实例:
matlab解法如下:
clc; clear; a = [0.71 0.49 0.41 0.51 0.46 0.40 0.49 0.44 0.57 0.50 0.55 0.56 0.48 0.53 0.49 0.62 0.93 0.38 0.53 0.47 0.45 0.42 0.41 0.54 0.47 0.36 0.37 0.46 0.54 0.48 0.55 0.68 0.42 0.54 0.46 0.62 0.90 0.38 0.56 0.46 0.61 0.99 0.33 0.57 0.43 0.71 0.93 0.35 0.66 0.44 0.59 0.69 0.36 0.57 0.48 0.41 0.47 0.40 0.54 0.48 0.26 0.29 0.43 0.57 0.48 0.14 0.16 0.43 0.55 0.47 0.12 0.13 0.45 0.59 0.54 0.22 0.25 0.44 0.58 0.52 0.71 0.49 0.41 0.51 0.46]; %第一步:对原始数据进行标准化处理 a = zscore(a);a%对每一个数据进行规范化,公式:a(i,j) =( a(i,j)-mu(j) )./s(j)即 mu(j),s(j)为第j个指标的样本均值和样本标准差。 %第二步:计算相关系数矩阵 r = corrcoef(a);r %第三步:计算特征值和特征向量。 [x,y,z] = pcacov(r);%返回值x为特征值,y为特征向量,z为贡献率 %第四步:选择 p个主成分,计算综合评价值。 f = sign(sum(x));%help sign,发现sign返回元素值为(1:x(i)>0 / -1:x(i)<0 )的向量 x = x.*f;%修改特征向量的正负号 %根据已知数据进行选取主成分的个数 num = 3;%num为选取的主成分的个数 df = a*x(:,1:num); tf = df*z(1:num); [stf,ind] = sort(tf,'descend'); stf = stf',ind = ind'