三、数学建模之灰色关联分析【清风数学建模个人笔记】
目錄
灰色關聯(lián)分析概述
應用一:進行系統(tǒng)分析
什么是系統(tǒng)分析
步驟
?代碼
?應用二用于綜合評價
步驟:
灰色關聯(lián)分析概述
當樣本個數(shù)n較大時使用標準化回歸;當樣本個數(shù)n較少時,才使用灰色關聯(lián)分析
系統(tǒng)分析的方法:回歸分析、方差分析、主成分分析等
灰色關聯(lián)分析對樣本量的多少和樣本有誤規(guī)律都同樣適用,而且計算量小,十分方便,更不會出現(xiàn)量化結果與定性分析結果不相符的情況
灰色關聯(lián)分析的基本思想是根據(jù)序列曲線幾何形狀的相似程度來判斷其聯(lián)系是否緊密。曲線越接近,相應序列之間的關聯(lián)程度就越大,犯組織就越小
綜合評價的方法:層次分析法,優(yōu)劣解距離法等
應用一:進行系統(tǒng)分析
什么是系統(tǒng)分析
一般的抽象系統(tǒng),如社會系統(tǒng)、經(jīng)濟系統(tǒng)、農(nóng)業(yè)系統(tǒng)、生態(tài)系統(tǒng)、教育系統(tǒng)等都是多種因素共同作用的結果決定了該系統(tǒng)的發(fā)展態(tài)勢。在這些眾多因素中,哪些是主要因素,哪些是次要因素;哪些因素對系統(tǒng)發(fā)展影響大,哪些影響小;哪些因素對系統(tǒng)發(fā)展起推動作用需強化發(fā)展,哪些因素對系統(tǒng)發(fā)展起阻礙作用需加以抑制
步驟
例題:
下表為某地區(qū)國內生產(chǎn)總值的統(tǒng)計數(shù)據(jù)(以百萬元計),問該地區(qū)從2000年到2005年之間哪一種產(chǎn)業(yè)對GDP總量影響最大。
| 年份 | 國內生產(chǎn)總值 | 第一產(chǎn)業(yè) | 第二產(chǎn)業(yè) | 第三產(chǎn)業(yè) |
| 2000 | 1988 | 386 | 839 | 763 |
| 2001 | 2061 | 408 | 846 | 808 |
| 2002 | 2335 | 422 | 960 | 953 |
| 2003 | 2750 | 482 | 1258 | 1010 |
| 2004 | 3356 | 511 | 1577 | 1268 |
| 2005 | 3806 | 561 | 1893 | 1352 |
第一步畫統(tǒng)計圖
畫圖分析
第二步確定分析序列
第三步對變量進行預處理
先求出每個指標的均值,再用該指標中的每個元素都除以其均值
?目的:去量綱、縮小變量范圍簡化計算
第四步計算序列中各個指標與母序列的關聯(lián)系數(shù)
?第五步計算灰色關聯(lián)度
本例中n=6,m=3
兩極最小差:每一個子序列與母序列作差后求絕對值
?灰色關聯(lián)度:對第四步求出的關聯(lián)度表格求算術平均值,該值為該子序列與母序列的灰色關聯(lián)度
第六步比較三個子序列與母序列的關聯(lián)度得出結論
美賽不推薦用?
?代碼
load gdp.mat % 導入數(shù)據(jù) 一個6*4的矩陣 % 不會導入數(shù)據(jù)的同學可以看看第二講topsis模型,我們也可以自己在工作區(qū)新建變量,并把Excel的數(shù)據(jù)粘貼過來 % 注意Matlab的當前文件夾一定要切換到有數(shù)據(jù)文件的這個文件夾內 Mean = mean(gdp); % 求出每一列的均值以供后續(xù)的數(shù)據(jù)預處理 gdp = gdp ./ repmat(Mean,size(gdp,1),1); %size(gdp,1)=6, repmat(Mean,6,1)可以將矩陣進行復制,復制為和gdp同等大小,然后使用點除(對應元素相除),這些在第一講層次分析法都講過 disp('預處理后的矩陣為:'); disp(gdp) Y = gdp(:,1); % 母序列 X = gdp(:,2:end); % 子序列 absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 計算|X0-Xi|矩陣(在這里我們把X0定義為了Y) a = min(min(absX0_Xi)) % 計算兩級最小差a b = max(max(absX0_Xi)) % 計算兩級最大差b rho = 0.5; % 分辨系數(shù)取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 計算子序列中各個指標與母序列的關聯(lián)系數(shù) disp('子序列中各個指標的灰色關聯(lián)度分別為:') disp(mean(gamma))?應用二用于綜合評價
例題:
步驟:
第五步相當于歸一化,歸一化后更方便分析
%% 灰色關聯(lián)分析用于綜合評價模型例題的講解 clear;clc load data_water_quality.mat % 不會導入數(shù)據(jù)的同學可以看看第二講topsis模型,我們也可以自己在工作區(qū)新建變量,并把Excel的數(shù)據(jù)粘貼過來 % 注意Matlab的當前文件夾一定要切換到有數(shù)據(jù)文件的這個文件夾內%% 判斷是否需要正向化 [n,m] = size(X); disp(['共有' num2str(n) '個評價對象, ' num2str(m) '個評價指標']) Judge = input(['這' num2str(m) '個指標是否需要經(jīng)過正向化處理,需要請輸入1 ,不需要輸入0: ']); %1if Judge == 1Position = input('請輸入需要正向化處理的指標所在的列,例如第2、3、6三列需要處理,那么你需要輸入[2,3,6]: '); %[2,3,4]disp('請輸入需要處理的這些列的指 標類型(1:極小型, 2:中間型, 3:區(qū)間型) ')Type = input('例如:第2列是極小型,第3列是區(qū)間型,第6列是中間型,就輸入[1,3,2]: '); %[2,1,3]% 注意,Position和Type是兩個同維度的行向量for i = 1 : size(Position,2) %這里需要對這些列分別處理,因此我們需要知道一共要處理的次數(shù),即循環(huán)的次數(shù)X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i));% Positivization是我們自己定義的函數(shù),其作用是進行正向化,其一共接收三個參數(shù)% 第一個參數(shù)是要正向化處理的那一列向量 X(:,Position(i)) 回顧上一講的知識,X(:,n)表示取第n列的全部元素% 第二個參數(shù)是對應的這一列的指標類型(1:極小型, 2:中間型, 3:區(qū)間型)% 第三個參數(shù)是告訴函數(shù)我們正在處理的是原始矩陣中的哪一列% 該函數(shù)有一個返回值,它返回正向化之后的指標,我們可以將其直接賦值給我們原始要處理的那一列向量enddisp('正向化后的矩陣 X = ')disp(X) end%% 對正向化后的矩陣進行預處理 Mean = mean(X); % 求出每一列的均值以供后續(xù)的數(shù)據(jù)預處理 Z = X ./ repmat(Mean,size(X,1),1); disp('預處理后的矩陣為:'); disp(Z)%% 構造母序列和子序列 Y = max(Z,[],2); % 母序列為虛擬的,用每一行的最大值構成的列向量表示母序列【max()函數(shù)用法自己搜吧】 X = Z; % 子序列就是預處理后的數(shù)據(jù)矩陣%% 計算得分 absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 計算|X0-Xi|矩陣 a = min(min(absX0_Xi)) % 計算兩級最小差a b = max(max(absX0_Xi)) % 計算兩級最大差b rho = 0.5; % 分辨系數(shù)取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 計算子序列中各個指標與母序列的關聯(lián)系數(shù) weight = mean(gamma) / sum(mean(gamma)); % 利用子序列中各個指標的灰色關聯(lián)度計算權重 score = sum(X .* repmat(weight,size(X,1),1),2); % 未歸一化的得分 stand_S = score / sum(score); % 歸一化后的得分 [sorted_S,index] = sort(stand_S ,'descend') % 進行排序總結
以上是生活随笔為你收集整理的三、数学建模之灰色关联分析【清风数学建模个人笔记】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP 协议有什么缺陷?
- 下一篇: java计算机毕业设计评标专家管理信息系