綜合評價模塊
在數學建模比賽和數據分析中,綜合評價模型的出場率還是比較高的,實際應用也確實比較廣泛。下面是我在學習過程中對綜合評價模型的總結。
1 綜合評價的目的
綜合評價無外乎兩種:對多個系統進行評價和對一個系統進行評價。對多個系統進行評價的目的基本上有兩種:這東西是誰的——分類;哪個好哪個差——比較、排序。對一個系統進行評價的目的基本上就是看它達沒達標、及不及格——實現程度。對一個系統的精確評價往往對它進行進一步的預測起着決定性的參考作用。因為如果我們需要對某一系統進行預測的話一個良好的評價系統也非常關鍵。
2 綜合評價的基本要素
綜合評價模型中的五個基本要素:被評價對象、評價指標、權重系數、綜合評價模型和評價者。
2.1被評價對象
被評價對象就是綜合評價問題中所研究的對象。這里將被評價對象記為

2.2評價指標
評價指標的選取對系統的綜合評價起着至關重要的作用。可以說根據不同的評價指標評價出來的結論之間可能大相徑庭。評價指標的選取應該主要以下幾個原則:
- 獨立性。盡量減少每一個評價指標之間的耦合關系,即每個評價指標中包含的絕大部分信息在其他評價指標中應該不存在。比如評價兩地之間的交通狀況,如果選擇了汽車的平均行駛速度和公路距離為評價指標后,就不要在選取汽車平均使用時間作為評價指標了。因為它包含的信息在其他的評價指標中能反映出來。
- 全面性。所有評價指標包含的信息總和應該等於被評價模型的所有信息。獨立性和全面性可以類比古典概型中樣本點和樣本空間的概念。
- 量子性。如果一個評價指標可以使用兩個或者多個評價指標表示,那么將評價指標的進一步細化有助於我們實現指標之間的解耦和對問題的分析。再分析清楚問題之后,在構建評價模型的時候我們可以通過合適的算法將相關的評價指標進行聚合。
- 可測性。保證選擇的評價指標能直接或者間接的測量也非常重要。
評價指標我們用
.
表示。
2.3權重系數
不同的評價指標的不同重要程度我們可以使用權重系數進行表示。每一個評價指標都應該對應一個權重系數。所以我們可以用
.
表示。權重系數還應該滿足
.
2.4綜合評價模型
有了評價指標和其對應的權重之后,我們就可建立合適的綜合評價模型了。一般的做法就是對所有系統的各個評價指標測量值進行加權平均。假設我們已經得到了所有系統的測量矩陣
.
其中
.
表示第i個系統第j個測量指標的測量值。
我們可以定義綜合評價函數如下:
.
特別的,對應加權平均的評價函數有:
.
2.5評價者
3 綜合評價的一般步驟
- 確定綜合評價目的(分類、排序、實現程度)。
- 選取評價指標。
- 對評價指標進行測量建立測量矩陣。
- 對測量矩陣進行預處理(一致化、無量綱化)。
- 確定權重。
- 確定評價模型。
4 評價指標的規范化處理
一般來說我們直接測量到的評價指標數據有以下四種類型。極大型指標、極小型指標、中間型指標和區間型指標。
- 極大型指標:取值越大系統對應指標表現越好。
- 極小型指標:取值越小系統對應指標表現越好。
- 中間型指標:取值越靠近中間值表現越好。
- 區間型指標:取值越靠近某一區間表現越好,區間內表現都為最好。
4.1評價指標類型一致化
在建立評價模型之前,我們應該將所有的評價指標都化為同一種類型,一般都會選擇極大型。下面是評價指標化為極大型的方法。
4.1.1極小型化為極大型
- 倒數法
.
- 平移法
.
其中
.
4.1.2 居中型化為極大型
對於測量矩陣中的某一列j評價指標,如果其取值為中間值最好。我們可以采用如下的方法將其化為極大型。
設最好的中間值為:
.
其中
.
則:
.
下面是使用matlab將居中型轉化為極大型的代碼:
%% 將居中型化為極大型
clear
clc
%參數設置
xMax = 100; %設置最大值
xMin = 0; %設置最小值
plotPoints = 100; %設置繪圖的點數
%下面代碼不用修改
x = linspace(xMin,xMax,plotPoints);
xBest = (xMax+xMin)/2;
xLessPoints = x(x<xBest);
xLessPoints = 2*(xLessPoints-xMin)./(xMax-xMin);
xGreaterPoints = x(x>=xBest);
xGreaterPoints = 2*(xMax-xGreaterPoints)./(xMax-xMin);
xTrans = [xLessPoints,xGreaterPoints];
plot(x,xTrans)
繪圖結果如下圖所示:

4.1.3區間型化為極大型
對於區間型的數據類型可以使用如下公式進行轉換:

其中[d,e]為a(這里省略了下標)的最佳穩定區間。c=max{d-m,M-e},其中M和m分別為a所在列(對應一個指標)取值的最大值和最小值。
下面是使用matlab程序將區間型化為極大型:
%% 將區間型化為極大型
clear
clc
%參數設置
xMin = 0; %設置x的最小值
xMax = 100; %設置x的最大值
bestMinX = 40; %設置最佳區間的最小值
bestMaxX = 50; %設置最佳區間的最大值
plotPoints = 100; %設置繪圖點數
%下面代碼不用修改
x = linspace(xMin,xMax,plotPoints);
c = max((bestMinX-xMin),(xMax-bestMaxX));
xLessBestPoints = x(x<bestMinX);
xLessBestPoints = 1-(bestMinX-xLessBestPoints)/c;
xEqualBestPoints = x((x>=bestMinX)&(x<bestMaxX));
xEqualBestPoints = ones(size(xEqualBestPoints));
xGreaterPoints = x(x>=bestMaxX);
xGreaterPoints = 1-(xGreaterPoints-bestMaxX)/c;
xTrans = [xLessBestPoints,xEqualBestPoints,xGreaterPoints];
plot(x,xTrans);
繪圖結果如下圖所示:

4.1.4定性指標的量化處理
實際上,很多指標並不能直接就進行定量分析,大部分指標都是只能進行定性分析。那么如何將定性分析的問題轉化為定量分析呢?大部分情況下我們采用的方法是采用隸屬函數的方法。比如我們可以對常用的五等級評價標准(A,B,C,D,E)進行量化處理。如果我們用1-5個數字表示這五個等級的話。我們可以采用如下隸屬函數進行量化(不能簡單的認為這種評價是線性的)。
對應1到3我們可以采用對數函數作為隸屬函數,對於3-5我們采用偏大型柯西分布作為隸屬函數。這樣選取隸屬函數的原因是我們通常在打分的時候認為D和E,A和B之間的實際差距並不是那么明顯。而我們打分C,D之間往往代表這兩個指標值差距更大。隸屬函數的選擇應該考慮到實際情況進行選擇。我們得到隸屬函數如下:

其中待定系數為

同時給出已知數據點

待定系數后,我們就可以將上面定性的分析轉化為可以參與計算的定量指標值。關於matlab中函數的擬合可以參考matlab已知函數類型的擬合
4.2 評價指標的無量綱化
不同的指標量綱不同如果在此基礎上直接進行權重確定,會使權重的確定變得非常困難,同時也會使評價模型的建立和選取的指標有直接的耦合。我們一般在確定權重之前首先進行無量綱化處理,使他們在權重的確定時不會再考慮量綱的因素。使得模型的建立和指標的選取進行解耦,讓模型具有清晰的邏輯和通用性。常用的無量綱化方法有:標准差方法、極值差方法和功效數方法等。
假設m個評價指標

,在此不妨假設已經進行了類型的一致化處理,並且共有n個評價系統。那么我們就得到了一個處理后的測量矩陣

4.2.1標准差方法
令

其中

,

顯然無量綱化后的測量矩陣

的均值和均方差分別為0和1,這時指標變成了無量綱的指標,稱矩陣中的值

為標准觀測值。
4.2.2極值差方法
令

,其中

.則

是無量綱的指標觀測值。
4.2.3功效系數法
使用上面的極值差方法變換后每一列的指標中總會有一個值為0一個值為1.這樣會將拉大指標值之間的差距。我們知道對於一個序列,如果每個序列中的值都減去一個小於等於序列中的最小值的值,那么序列中的各個值之間的差距會增加。相反如果將序列中的值都加上同一個數據那么它們之間的相對差距會減少。比如序列{1,2,4}的差距比較大,后面的數據都是前面的兩倍,但是如果我將序列中的值都增加了1000變成了{1001,1002,1004}那么它們之間的相對差距就會減少。同樣我們也可以對序列做乘除運算來改變數據之間相對的重要程度,這便是功效系數法的思想。
令

,其中c,d為根據對數據差距的要求所確定的常數。c表示平移量,d表示縮放量。可以看出

5 綜合評價模型的建立方法
前面我們說過綜合平鍵模型的建立其實就是建立規范化后的測量矩陣X和權重向量w的關系,即

5.1線性加權綜合法
前面我們說過最基本也是最簡單的一種建模方法就是將權重直接和對應的規范化后的測量值相乘然后求和。這種建模方法叫做線性加權函數。

這種線性加權的方法在各個評價指標之間為相互獨立時效果比較好。但是如果各個評價指標之間存在着信息的耦合的話,這種評價指標往往不能客觀的反應實際情況。
線性加權有如下特點:
- 該方法能使得各個評價指標之間作用得到線性補償,保證綜合評價指標的公平性。
- 該方法中權重系數對評價結果的影響明顯。
- 當權重系數預先給定時,該方法使評價結果對應各備選方案之間的差異表現不敏感。
- 該方法計算簡便,可操作性強,便於推廣使用。
5.2 非線性加權綜合法
用非線性函數作為綜合評價模型,比如

。
非線性加權綜合法適用於各指標間有較強關聯的情況。
主要特點:
- 對數據要求較高,指標數值不能為0,、負數。
- 乘除法容易拉開評價檔次,對較小數值的變動更敏感。
- 適用於各個指標有較強關聯的情況。
5.3動態加權綜合評價方法
上面兩種方法中,權重向量w都是常數。我們知道有時候一個指標的重要程度可能和指標的取值有關。比如我們在評價一個人的時候,如果他有某種特長遠超常人,那么我們可能就不太關心其他的評價指標,而將這個權重相應的增加。
5.3.1分段變冪函數
如果某一個評價指標一共分為K個等級,每個等級內又有不同的重要程度。這時候我們可以用如下的分段變冪函數去近似權值的變化。

其中

為等級K的區間內。
分段變冪函數如下圖所示:

對應matlab代碼如下:
clear
clc
kMax = 6; %這里設置分段數
x = linspace(0.0001,1,200);
for k = 1:kMax
xi = x((x>1/kMax*(k-1))&(x<1/kMax*k));
yi = xi.^(1/k);
plot(xi,yi)
hold on
end
legend('k=1','k=2','...')
title('分段變冪函數')
分段變冪函數中等級越高權值也越高,不同等級之間有一個明顯的突變,同一等級之間不同階段權值也不相同。需要注意分段變冪函數中,不能有值為0等變換后測量值。
5.3.2偏大型正態分布函數
我們知道生物增長模型中S型函數能對其很好的表達。同樣這種隨類別的增長權重先快速增長然后趨於平緩的模型在在動態加權的模型中也十分常見。我們可以使用偏大型正態分布函數進行描述。

如果也將x的取值分為K段,則

的取值應該在第一段內,

的取值應該保證第K段的某測量值的權值為0.9.
下面繪出

時的函數曲線。

相關matlab代碼如下:
clear
clc
% alpha = 0.05;
% x = 0.75; %觀察x=0.75時delta和x權值的關系
% delta = linspace(0.1,0.5,100);
% wX = 1-exp(-((x-alpha)./delta).^2);
% plot(delta,wX)
% %由圖得delta約等於0.45時x的權值為0.9.
alpha = 0.05;
delta = 0.45;
x=linspace(0,1,200);
y = x;
y(x<=alpha) = 0;
index = (x>alpha);
y(index) = 1-exp(-((x(index)-alpha)./delta).^2);
plot(x,y)
title('偏大型正態分布函數')
5.3.3S型分布函數
S型分布函數的模型如下:

其中

,且

。這里可以將

看成圖像兩邊的控制點。下面是

時的函數圖像。

對應matlab代碼如下:
clear
clc
a1 = 0.05;
bk = 1;
c = (a1+bk)/2;
x = linspace(0,1,200);
y = x;
y(x<a1)=0;
index = (x>=a1)&(x<=c);
y(index)= 2*((x(index)-a1)/(bk-a1)).^2;
index = (x>c)&(x<=bk);
y(index) = 1-2*((x(index)-bk)/(bk-a1)).^2;
plot(x,y)
title('S型分布函數')
6 總結
綜合評價模型的建立步驟總結如下:
- 選取評價指標。需要注意指標獨立性和全面性。
- 得到測量矩陣。
- 對指標進行一致化處理。一般都轉換成極大型。可以使用極小到極大、居中到極大、區間化極大、建立隸屬函數等方法。
- 進行無量綱化處理。常用方法有標准差方法、極值差方法、功效系數法等。
- 確定權重。是固定權值還是動態加權?動態加權函數有分段變冪函數、偏大型正態分布函數、S型分布函數等。
- 建立綜合評價模型。是線性加權還是非線性加權?
- 給出結論。如果對多個對象進行評價對它們進行排序,如果對單個對象進行評價給出實現程度或當前等級。
