前言
在社會科學、自然科學,特別是醫學研究中,我們經常面臨決策的問題。比如從若干個備選治療方案中選其一作為最終的質量方案,我們可能需要考慮費用、治療效果、生存時間、生存質量等因素。假設醫生朋友或者親屬朋友作為決策者,對上述因素表達各自的建議,如何能綜合大家的意見呢?關鍵的一步是對各個需要考慮的因素確定權重,然後對各備選方案進行評分,取最高分者為最終治療方案。
再如,在量表(問卷)研製的過程中,對不同維度權重的確定,以及對同一維度下不同條目權重的確定,都是至關重要的一步,將決定量表在應用中被測對象的最終評分。
AHP簡介
層次分析法 (Analytic Hierarchy Process, AHP) 正是解決上述權重確定問題,從而做出決策的統計方法。AHP法由美國運籌學家Thomas L. Saaty (1926-2017) 最先提出,將複雜系統的決策思維進行層次化,把決策過程中定性和定量的因素有機地結合,通過判斷矩陣的建立、排序計算和一致性檢驗得到最終決策方案,克服了決策者的個人偏好,提高了決策的有效性,在多目標規劃領域具有廣泛的應用價值。
經典的AHP法是採用九標度 (1~9分) 進行評分的,各位專家(決策者) 對各個需要考慮的因素 (條目) 進行1~9的打分。計算權重時對各因素 (條目) 進行兩兩比較 (相減或倒數),其結果構成的矩陣稱作判斷矩陣。
根據判斷矩陣即可對各因素 (條目) 計算權重,結果是否可靠?我們需要進行一致性檢驗對判斷誤差進行評價,評價指標為一致性比率 (consistency ratio, CR) ,當CR<0.1時,可以認為判斷矩陣通過一致性檢驗。
AHP的軟體實現
在AHP的軟體實現方法中,BPMSG項目提供的EXCEL模板程序是最為權威的方法之一,感興趣的朋友可前往官網 (https://bpmsg.com/) 下載使用。R包easyAHP是根據BPMSG項目編寫的,下面以easyAHP為例簡介AHP在R語言中的實現。為了方便大家理解,案例採用R包自帶的例子。
有兩名專家 (maker1、maker2) 對四個條目 (item1、item2、item3、item4) 進行評分,1為最低分,9為最高分,maker1對四個條目的評分為6、8、1、3,maker2的評分為6、8、2、3,擬確定各個item的權重。
#加載R包
library(easyAHP)
#創建評分數據框
data=data.frame(maker1=c(6,8,1,3),maker2=c(6,8,2,3))
row.names(data)=c("item1","item2","item3","item4")
#進行AHP估計
rst=easyAHP(data)
#查看各個maker及綜合的權重
rst$Maker1$Weights
rst$Maker2$Weights
rst$Makers$Weights
#查看各個maker及綜合的一致性比率
rst$Maker1$CR
rst$Maker2$CR
rst$Makers$CR
從一致性檢驗的結果可得,CR均小於0.1,表示所有maker和綜合的判斷矩陣通過一致性檢驗。四個條目最終的權重分別為0.30、0.53、0.07、0.10。
▼歡迎關注《統計諮詢》公眾號▼