1.層次分析法(AHP)
? ? ? ?在決策理論中,層次分析法是一種以數(shù)學(xué)和心理學(xué)為基礎(chǔ),組織和分析復(fù)雜決策的結(jié)構(gòu)化技術(shù),它代表了一種量化決策標(biāo)準(zhǔn)權(quán)重的準(zhǔn)確方法,通過成對比較,利用個別專家的經(jīng)驗來估計因素的相對大小
2.算法用途
? ? ? ?在很多情況下,我們對事物的評價,應(yīng)該多維度的進(jìn)行評價。多維度評價之后我們要如何把它們合并成一個指標(biāo)用于比較事物的好壞?這時候需要對各個指標(biāo)賦權(quán),層次分析法就是用來賦權(quán)重的,這個方法個體主觀性較強(qiáng),在數(shù)據(jù)集比較小,實在不好比較的時候可以選擇這種方法
3.算法簡述
這個算法是一個多指標(biāo)綜合評價算法,這種算法一般會有兩個用途:
- 指標(biāo)定權(quán)
我們可以在沒有數(shù)據(jù)支撐的情況下可以根據(jù)每個人對重視程度不一樣而給各個指標(biāo)指定權(quán)重
- 量化方案選擇
? ? ? 我們在旅游的時候,可能會面臨去哪的難題,我們會假設(shè)有幾套方案,例如:杭州、三亞、成都,而每個地方的都可以綜合以上的4個因素,給這些方案計算出一個量化得分,然后我們就可以根據(jù)它們各自的得分得出我們心里的最優(yōu)選擇
?4.AHP層次分析過程
? ? ? ?在分析一個現(xiàn)象或者問題之前,首先將現(xiàn)象或問題根據(jù)它們的性質(zhì)分解成有關(guān)因素,并根據(jù)它們之間的關(guān)系分類而形成一個多層次的結(jié)構(gòu)模型,然后通過經(jīng)驗或者專家,來判斷和衡量底層因素對高層因素的相對重要性,并根據(jù)重要性的程度得出權(quán)重排序,進(jìn)而可以量化分析比較。
? ? ? ?層次分析法的核心是將影響因素層次化和數(shù)據(jù)化,它把一個抽象的現(xiàn)象或問題由難到易的予以分解,易于對復(fù)雜問題進(jìn)行直觀的判斷并做出決策。層次分析法具有將復(fù)雜問題簡單化且計算簡單等優(yōu)點(diǎn),應(yīng)用都十分廣泛,諸如在人員素質(zhì)評估、多方案比較、科學(xué)成果評比和工作成效評價等多領(lǐng)域多方面都有運(yùn)用?
一般的層次分析法分為三層:
- 目標(biāo)層(分析目的)
- 準(zhǔn)則層(分析因素)
- 方案層(分析種類)
?注意:一致性檢驗的含義用于確定構(gòu)建構(gòu)建的判斷矩陣是否存在邏輯問題
? ? ? 類似于A對于B是3,就說明A比B重要,A對于C是1/3,就說明C比A重要,那么如果B對于C是2的話,就說明B比C重要,但是根據(jù)上述的邏輯,這樣就犯了邏輯性的錯誤,理應(yīng)是C比B重要
?4.1 構(gòu)建層次評價模型
我們應(yīng)該在分析前先確認(rèn)整個決策事件的目標(biāo)層、準(zhǔn)則層、方案層
4.2構(gòu)造判斷矩陣
構(gòu)造判斷矩陣就是通過各要素之間相互兩兩比較,并確定各準(zhǔn)則層對目標(biāo)的權(quán)重
標(biāo)度 | 含義 |
1 | 表示兩個元素相比,具有同樣的重要性 |
3 | 表示兩個元素相比,前者比后者稍重要 |
5 | 表示兩個元素相比,前者比后者明顯重要 |
7 | 表示兩個元素相比,前者比后者極其重要 |
9 | 表示兩個元素相比,前者比后者強(qiáng)烈重要 |
2,4,6,8 | 表示上述相鄰判斷的中間值 |
1~9的倒數(shù) | 表示相應(yīng)兩因素交換次序比較的重要性 |
判斷矩陣滿足:
?我們可以對于準(zhǔn)則A,可以構(gòu)造一個:
我們就可以根據(jù)我們對這些因素的一個客觀認(rèn)識去得到這個完整的判斷矩陣
4.3 層次單排序與一致性檢驗
4.3.1層次單排序
?所謂的層次排序法就是根據(jù)我們構(gòu)成的判別矩陣,求解各個指標(biāo)的權(quán)重
方法一:方根法
- 計算每行乘積得到m次方,得到一個m維向量
- 將向量標(biāo)準(zhǔn)即為權(quán)重向量,即得到權(quán)重?
方法二:和法
- 先將矩陣的每列進(jìn)行標(biāo)準(zhǔn)化
- 將標(biāo)準(zhǔn)化后的各元素按行求和
- 將求和結(jié)果進(jìn)行標(biāo)準(zhǔn)化
4.3.2 求解最大特征值與CI值
設(shè) n 階判斷矩陣為 B,則可用以下方法求出其最大的特征根 :BW=λW,其中,W 是 B 的特征向量。 在層次分析法中, 我們用以下的一致性指標(biāo) CI 來檢驗判斷的一致性指標(biāo) (Consistency Index):
? ? ? ? ?CI=0表示判斷矩陣完全一致,CI越大,判斷矩陣的不一致性程度越嚴(yán)重
當(dāng)?shù)贸鰴?quán)重矩陣后,我們可以計算最大特征根,其公式為:
其中n為維度數(shù),AW為判斷矩陣標(biāo)準(zhǔn)化后的權(quán)重,然后按行的累加值
4.3.3 根據(jù)CI、RI值求解CR值,判斷其一致性是否通過
? ?情況如下:
- CR<0.1時,矩陣A的一致性程度被認(rèn)為在容許的范圍內(nèi)
- CR>=0.1時,我們應(yīng)該考慮對矩陣A進(jìn)行修正
4.3.4 層次總排序與一致性檢驗
計算某一層所有因素對于最高層(目標(biāo)層)相對重要性的權(quán)值,稱為層次總排序
案例分析:
文章來源:http://www.zghlxwxcb.cn/news/detail-704656.html
?matlab源碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-704656.html
%層次分析法
%P是指標(biāo)評分 B是判別矩陣
function level(P,A)
%求出判別矩陣的行列數(shù)
[n,~]=size(A);
%求出該矩陣的特征向量與特征值
[V,D]=eig(A)
tzz=max(max(D))%找出最大的特征值
c1=D(1,:)==tzz%找出最大的特征值的位置
tzx=V(:,c1)%最大特征值對應(yīng)的特征向量
%賦權(quán)重
quan=zeros(n,1)
%得到權(quán)重向量
for i=1:n
quan(i,1)=tzx(i,1)/sum(tzx);
end
Q=quan
%--------------------------------一致性檢驗---------------------------------
%計算一致性指標(biāo)CI
CI=(tzz-n)/(n-1)
%平均隨機(jī)一致性指標(biāo)RI
RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];
%判斷是否通過一致性
CR=CI/RI(1,n)
if CR>=0.1
fprintf('沒有通過一致性\n');
else
fprintf('通過一致性檢驗\n');
end
%顯示出所有評分對象的評分值
score=P*Q;
for i=1:length(score)
name=['object_score',num2str(i)];
eval([name,'=score(i)'])
end
到了這里,關(guān)于層次分析法(matlab實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!