層次分析法--可以幫助你做決策的簡單算法
作用
層次分析法是一個多指標的評價算法,主要用來在做決策時,給目標的多個影響因子做權重評分。特別是那些需要主觀決策的、或者需要用經驗判斷的決策方案,例如:
- 買房子(主觀決策)
- 選擇旅游地(主觀決策)
- 給員工進行績效評估(經驗判斷)
- 選擇開店地址(經驗判斷)
實現(xiàn)步驟
構建層次評價模型
一般可以分為三個層次:目標層、準則層和方案層。如圖,目標層:最優(yōu)旅游地選擇;準則層:景色、費用、居住、飲食、旅途;方案層:西安、云南、西藏、青海。
圖片
構造判斷矩陣
構造判斷矩陣就是將準則層各要素之間兩兩相互比較,確定各要素對目標層的重要程度(權重)。
圖片
準則層A構建如下:
圖片
準則層A各要素必須滿足如下條件:即各要素必須大于0;對角線必須等于1;對角線對稱的元素互為倒數(shù)。
圖片
標度值的大小如圖所示方法進行配置
圖片
層次單排序與一致性檢驗
層次單排序就是根據(jù)我們構成的判斷矩陣,求解各個指標的權重。
圖片
計算權重有兩種方法:方根法、和法。
計算權重
方根法
1、通過計算每行乘積的m次方,得到m維向量。
圖片
示例中的計算如圖
圖片
2、將向量標準化,得到權重
圖片
計算示例的權重如圖
圖片
和法
1、先將矩陣的每列進行標準化
2、將標準化后的各元素按行求和
3、將求和結果進行標準化
圖片
求解最大特征根λmax與CI值
以上,求得權重矩陣后,可以計算最大特征根,其公式為:
圖片
其中n為維度數(shù),例如構建的判斷矩陣為:景色、費用、居住、飲食、旅途時,n=5;
AW為:判斷矩陣*標準化后的權重,然后按按行的累加值。
即判斷矩陣A為:
圖片
標準化后權重W為:
圖片
其中A*W為:
圖片
AW:
圖片
λmax:
AW1/W1+AW2/W2+AW3/W3+···+AWn/Wn=x
圖片
最大特征值λmax=x/矩陣階數(shù)=5.416
最大特征值λmax求解出來后,C.I值就好算多了,
根據(jù)C.I值公式,λmax=5.416,n=5,代入可得C.I值=0.1042
圖片
求解CR值,判斷一致性
一致性校驗目的是確定構建的判斷矩陣是否有邏輯問題。例如,如果a相當于b為3,a相當于c為1/3,在判斷b相當于c時,理應c比b重要。
RI值通過查表可以得知,這個是模擬 1000 次得到的隨機一致性指標 R.I.:
圖片
而我們的矩陣是5階(準則層因子個數(shù)),矩陣階數(shù)為5時對應的RI值為1.12,代入公式,可以得到C.R.值為 0.1042 / 1.12 = 0.093。
圖片
所以 C.R.=0.093<0.1 時,表明判斷矩陣 A 的一致性程度被認為在容許的范圍內。如果C.R.≥0.1, 說明我們在構建判斷矩陣時出現(xiàn)了邏輯錯誤。
圖片
層次總排序與一致性檢驗
層次總排序,其實就是通過類型層次單排序的方法來給方案打分。即上一步的層次單排序通過判斷矩陣計算出了景色、費用、居住、飲食和旅途的權重?,F(xiàn)在如果想要知道目標地的權重,那就再構建一個判斷矩陣,利用層次單排序計算目標地點的權重,即目標方案的分數(shù)。
層次單排序是對一個目標下的多個影響因子,計算各個因子的權重,例如下圖中的Z和A1、A2、A3、A4和A5?;蛘邔1(景色)作為目標,B1、B2和B3作為影響因子,計算B1、B2和B3的權重,即蘇杭、北戴河和桂林對目標景色的重要性。
圖片
具體做法是這樣的。根據(jù)上一步算出來的各個因素的權重,確定A1~A5的權重為
圖片
現(xiàn)在我想計算方案B1蘇杭的權重,那么我們就要重復上個步驟的層次單排序的方法,首先構建一個判斷矩陣
圖片
依此類推,上述步驟循環(huán)5次,就能得到蘇杭、北戴河、桂林在景色上的得分矩陣A1,在費用上的得分矩陣A2,在居住上的得分矩陣A3,在飲食上的得分矩陣A4,在旅途上的得分矩陣A5:
圖片
以上的判斷矩陣全部需要做一致性校驗。
通過判斷矩陣再計算蘇杭、北戴河、桂林在景色、費用等因素上的權重。
圖片
對于方案B1(蘇杭),它的總得分為:
蘇杭在景色上的得分*景色的權重+蘇杭在費用上的得分*費用的權重+蘇杭在居住上的得分*居住的權重+蘇杭在飲食上的得分*飲食的權重+蘇杭在旅途上的得分*旅途的權重=0.5954*0.3104+0.819*0.0591+0.4286*0.1157+0.6337*0.4716+0.1667*0.0432=0.5889
以此類推,方案B2(北戴河)為
0.2764*0.3104+0.2363*0.0591+0.4286*0.1157+0.1919*0.4716+0.1667*0.0432=0.2471
方案B3(桂林):
0.1283*0.3104+0.6817*0.0591+0.1429*0.1157+0.1744*0.4716+0.6667*0.0432=0.2077
因此蘇杭得分最高,選擇去蘇杭。
總結
層次分析法的核心其實就是層次單排序。層次單排序是對一個目標下的多個影響因子,計算各個因子對于該目標的權重。利用層次單排序我們就能在一個樹型結構的層次評價模型里,由最上層的目標層層遞進向下,最終得到樹的葉子節(jié)點的權重,即我們想要得到的各個方案的權重。
當我們把一個樹模型上的所有節(jié)點的得分(可以理解為對上一層的權重)都計算出來之后,最終的方案的權重也就出來了。