層次分析法模型原理以及程式碼實現

卢宇博發表於2024-06-27

層次分析法是解決評價類問題的一個常用方法,下面讓我們來介紹一下這個方法

目錄
  • 提出問題
  • 第一步:分析系統中各因素之間的關係,建立系統的遞階層次結構。
    • 1.層次結構實現方法:
  • 第二步:構造判斷矩陣
    • 1.構造各個指標之間的判斷矩陣
    • 2.構造每個指標下的各個單位的判斷矩陣
  • 第三步:進行一致性檢驗
    • 1.一致性檢驗的方法
    • 2.一致性檢驗的程式碼實現
    • 3.如何對一致性指數進行修正?
  • 第四步:根據權重矩陣計算得分,並進行排序
    • 1.算數平均法求權重
      • (1)計算原理
      • (2)例題
      • (3)程式碼實現
    • 2.特徵值法求權重
      • (1)計算原理
      • (2)程式碼實現
  • 第五步:彙總指標權重和對應的單位權重,進行加權求和,得出最後的結果

提出問題

第一步:分析系統中各因素之間的關係,建立系統的遞階層次結構。

1.層次結構實現方法:

可使用ppt自帶的smartart或者清風老師分享的“億圖圖示”。具體過程請觀看教學影片

第二步:構造判斷矩陣

1.構造各個指標之間的判斷矩陣


圖示的判斷矩陣為最終成品,但在實際過程中我們無法直接比較五個指標的重要性,而是指標之間兩兩比較,最後才能得到成品

2.構造每個指標下的各個單位的判斷矩陣

第三步:進行一致性檢驗

1.一致性檢驗的方法

2.一致性檢驗的程式碼實現


利用公式計算出CI的值,再透過與RI進行相除,與0.1進行比較。無論是指標間的判斷矩陣還是單位間的判斷矩陣,都需要透過一致性檢驗

3.如何對一致性指數進行修正?

第四步:根據權重矩陣計算得分,並進行排序

這一步我們要分別對指標判斷矩陣和單位間的判斷矩陣進行求權,一共有三種方法可以達到目標
此處我們只介紹算術平均法特徵值法

1.算數平均法求權重

(1)計算原理

(2)例題

先對每一列進行歸一化,然後把歸一化後的值平均起來

(3)程式碼實現

第一步歸一化:sum(A)對矩陣來說,是對每一列的數進行求和,得到一個行向量,再用repmat(Sum_A,n,1),將這個行向量複製n行,這樣就可以讓原矩陣和這個sum矩陣點除
這一就完成了歸一化的操作

第二步:將歸一化的各列相加(按行求和)
此過程其實是一個平均的過程,用程式碼sum(Stand_A,2)即可實現
第三步:將相加後得到的向量中每個元素除以n即可得到權重向量
此過程其實是一個求平均的過程,上一步是把權重進行求和,這一步則是加權

2.特徵值法求權重

(1)計算原理


(2)程式碼實現

第一步:求出矩陣A的最大特徵值以及其對應的特徵向量
首先,求出特徵值和特徵向量,並找出最大特徵值

之後,找到D中第一個與最大特徵值相等的元素的位置,記錄它的行和列。利用其列的索引找出最大特徵值對應的特徵向量

第二步:對求出的特徵向量進行歸一化即可得到我們的權重
對最大特徵值對應的特徵向量進行歸一化即可

第五步:彙總指標權重和對應的單位權重,進行加權求和,得出最後的結果

此步需要利用excel進行計算(F4鎖定單元格)

相關文章