層次分析法【就業問題選擇】附matlab代碼

就業問題選擇

摘要

畢業生在畢業之際,面臨着就業選擇問題。他們有阿里、百度和騰訊的選擇,但也要考慮工作環境、工資待遇、發展前途、住房條件等因素。我們可以利用層次分析法來確定每個因素之間的比重,得到每個選擇的綜合評分,得到客觀準確的分析來幫助畢業生進行選擇。

 

 

目錄

一、 問題的重述 2

二、模型假設 2

三、變量說明 2

四、模型的建立與求解 2

問題一: 2

1.建模思路 2

2.模型建立: 3

3.求解方法: 4

4.求解結果: 6

五、模型的評價與推廣 7

5.1層次分析法優缺點分析 7

 

 

 


一、 問題的重述

師兄師姐面臨畢業,他們有三個選擇,阿里,騰訊, 百度,有以下四個因素決定,分別是工作環境,工資待遇,發展前途,住房條件。過多的因素和選擇讓他們無法進行客觀的分析,得到最優的選擇。

二、模型假設

  1. 層次分析法的比較矩陣的權重都是根據專家判斷來進行給出的,具有準確性

三、變量說明

 

符號

變量名稱

C1

工作環境

C2

工資待遇

C3

發展前途

C4

住房條件

P1

阿里

P2

騰訊

P3

百度

 

 

四、模型的建立與求解

問題一:

 

1.建模思路

利用層次分析法對準則層裏的影響因素和方案層的選擇進行權重分析,得到滿足一致性檢驗的權重,對每個方案進行綜合評價,得到綜合得分來進行排序。

  1. 建立遞階的層次結構:根據對問題的分析,縷清問題所包含的因素,確定出各個因素之間的關聯和隸屬關係,按這些因素的共同特性,將它們分爲目標層、準則層、方案層等多個層次。
  2. 建立兩兩判斷矩陣:判斷矩陣表示針對上一層次的某元素,本層次與它有關的元素之前相對重要性的比較。

表 1 判斷矩陣的一般形式

A

B1

B2

……

Bn

B1

b11

b12

……

b1n

B2

b21

b22

……

b2n

……

……

……

……

……

Bn

bn1

bn2

……

bnn

 

  1. 判斷矩陣中的 bij 一般採用九分制標度法,根據資料數據、專家意見或者系統分析人員的經驗,經過反覆研究後確定。

                                                                                               兩兩比較尺度表

 

  1. 計算各元素權重:通過對判斷矩陣的運算,計算出本層所有元素對上一層相關元素的權重,再利用單層次權重的計算結果,進一步綜合出對更上一層次元素的權重。通過權重排序,挑選出最優方案。

 

2.模型建立:

2.1.層次分析法的原理

層次分析法,簡稱 AHP,是由美國匹茲堡大學教授 T.L.Satty 於 20 世紀 70 年代提出的一種多目標決策分析方法論 [1]。其原理是將與決策有關的因素分解成目標層、準則層、方案層等若干層次,通過對各因素的計算和比較,得出不同因素的權重,爲決策者選擇最優方案提供參考依據 [2]。

2.2.建立評價體系

 

 

3.求解方法:

 

先構建判斷矩陣:

判斷矩陣C1‐P                                                                              

C1

P1

P2

P3

P1

1

2

4

P2

1/2

1

2

P3

1/4

1/2

1

 判斷矩陣C2-P   

C2

P1

P2

P3

P1

1

1/3

1/8

P2

3

1

1/3

P3

8

3

1

判斷矩陣C3-P                                                                               

C3

P1

P2

P3

P1

1

1

3

P2

1

1

3

P3

1/3

1/3

1

  判斷矩陣C4-P    

C4

P1

P2

P3

P1

1

3

4

P2

1/3

1

1

P3

1/4

1

1

 

                            判斷矩陣〇-C

C1

C2

C3

C4

C1

1

1/2

4

3

C2

2

1

7

5

C4

1/4

1/7

1

1/2

C4

1/3

1/5

2

1

 

 

第一步:計算一致性指標CI

 

                                                                   CI= 0.0072

 

第二步:查找對應的平均隨機一致性指標RI

                                                                  CR=0.0080

因爲CR<0.10,所以該判斷矩陣A的一致性可以接受。

第三步:計算每個因素的權重

影響因素

算術平均法

幾何平均法

特徵值法

工作環境

0.2880

0.2884

0.2884

工資待遇

0.5318

0.5329

0.5323

發展前途

0.0678

0.0674

0.0675

住房條件

0.1124

0.1113

0.1118

 

  最終結果表格:

 

指標權重

阿里

騰訊

百度

工作環境

0.2884

0.5714

0.2857

0.1429

工資待遇

0.5323

0.0819

0.2363

0.6817

發展前途

0.0675

0.4286

0.4286

0.1429

住房條件

0.1118

0.6337

0.1919

0.1744

 

阿里的綜合得分=0.2884*0.5714+0.5323*0.08+0.0675*0.4286+0.1118*0.6337

              =0.308165

騰訊的綜合得分=0.2884*0.2857+0.5323*0.2363+0.0675*0.4286+0.1118*0.1919

               =0.258563

百度的綜合得分=0.2884*0.1429+0.5323*0.6817+0.0675*0.1429+0.1118*0.1744

              =0.433225

 

4.求解結果:

 

通過層次分析法,可以客觀得出百度的綜合分數最高,其次到阿里,最後到騰訊,每家公司評分相差不算非常大。

五、模型的評價與推廣

5.1層次分析法優缺點分析

優點:系統性的分析方法。層次分析法把研究對象作爲一個系統,按照分解、比較判斷、綜合的思維方式進行決策,成爲繼機理分析統計分析之後發展起來的系統分析的重要工具。系統的思想在於不割斷各個因素對結果的影響,而層次分析法中每一層的權重設置最後都會直接或間接影響到結果,而且在每個層次中的每個因素對結果的影響程度都是量化的,非常清晰明確。這種方法尤其可用於對無結構特性的系統評價以及多目標、多準則、多時期等的系統評價。

缺點:特徵值和特徵向量的精確求法比較複雜在求判斷矩陣的特徵值和特徵向量時,所用的方法和我們多元統計所用的方法是一樣的。在二階、三階的時候,我們還比較容易處理,但隨着指標的增加,階數也隨之增加,在計算上也變得越來越困難。不過幸運的是這個缺點比較好解決,我們有三種比較常用的近似計算方法。第一種就是和法,第二種是冪法,還有一種常用方法是根法。

層次分析法求比較矩陣權值和一致性檢驗的代碼

disp('請輸入判斷矩陣A')
A=input('A=');
[n,n] = size(A);
% % % % % % % % % % % % %方法1: 算術平均法求權重% % % % % % % % % % % % %
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;

disp('算術平均法求權重的結果爲:');
disp(sum(Stand_A,2)./n)
% % % % % % % % % % % % %方法2: 幾何平均法求權重% % % % % % % % % % % % %
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('幾何平均法求權重的結果爲:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
% % % % % % % % % % % % %方法3: 特徵值法求權重% % % % % % % % % % % % %
[V,D] = eig(A);
Max_eig = max(max(D));
[r,c]=find(D == Max_eig , 1);
disp('特徵值法求權重的結果爲:');
disp( V(:,c) ./ sum(V(:,c)) )
% % % % % % % % % % % % %下面是計算一致性比例CR的環節% % % % % % % % % % % % %
CI = (Max_eig - n) / (n-1);
RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];  %注意哦,這裏的RI最多支持 n = 15
% 這裏n=2時,一定是一致矩陣,所以CI = 0,我們爲了避免分母爲0,將這裏的第二個元素改爲了很接近0的正數
CR=CI/RI(n);
disp('一致性指標CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
    disp('因爲CR<0.10,所以該判斷矩陣A的一致性可以接受!');
else
    disp('注意:CR >= 0.10,因此該判斷矩陣A需要進行修改!');
end

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章