数学建模学习:灰色关联分析
一、灰色關聯分析
1.概述
一般的抽象系統,如社會系統、經濟系統、農業系統、生態系統、教育系統等都包含有許多種因素,多種因素共同作用的結果決定了該系統的發展態勢。在眾多的因素中,哪些是主要因素,哪些是次要因素;哪些因素對系統發展影響大,哪些因素對系統發展影響小;哪些因素對系統發展起推動作用需強化發展,哪些因素對系統發展起抑制作用需加以抑制……這些都是系統分析中需要普遍關心的問題。例如糧食生產系統中,人們希望提高糧食產量,而影響糧食總產量的因素是多方面的,有播種面積以及水利、化肥、土壤、種子、勞力、氣候、耕作技術和政策環境等。為了實現少投入多產出,并取得良好的經濟效益、社會效益和生態效益,就必須進行系統分析。
2.數理統計缺點
數理統計中的回歸分析、方差分析、主成分分析等都是用來進行系統分析的方法。這些方法都有下述不足之處:
(1)要求有大量數據,數據量少就難以找到統計規律;
(2)要求樣本服從某個典型的概率分布,要求各因素數據與系統特征數據之間呈線性關系且各因素之間彼此無關,這種要求往往難以滿足;
(3)計算量大,一般要靠計算機幫助;(現在也不算缺點了哈)
(4)可能會出現量化結果于定性分析結果不符的現象,導致系統的關系和規律遭到歪曲和顛倒。
尤其是我國統計數據十分有限,而且現有數據灰度較大,再加上人為的原因,許多數據都出現幾次大起大落,沒有典型的分布規律。因此,采用數理統計方法往往難以奏效。
3.灰色關聯優點
灰色關聯分析方法彌補了采用數理統計方法作系統分析所導致的遺憾。它對樣本量的多少和樣本有無規律都同樣適用,而且計算量小,十分方便,更不會出現量化結果與定性分析結果不符的情況。
灰色關聯分析的基本思想是根據序列曲線幾何形狀的相似程度來判斷其連系是否緊密。曲線越接近,相應序列之間的關聯度就越大,反之就越小。
4.灰色關聯度的計算
分別求兩極最小值和兩極最大值,x0x_0x0?為因變量,xix_ixi?為自變量,也就是求出絕對值差的矩陣的最小值和最大值
a=min?imin?k∣x0(k)?xi(k)∣a=\min _{i} \min _{k}\left|x_{0}(k)-x_{i}(k)\right|a=imin?kmin?∣x0?(k)?xi?(k)∣
b=max?imax?k∣x0(k)?xi(k)∣b=\max _{i} \max _{k}\left|x_{0}(k)-x_{i}(k)\right|b=imax?kmax?∣x0?(k)?xi?(k)∣
我們定義gama為
y(x0(k),xi(k)))=a+ρb∣x0(k)?xi(k)∣+ρby\left(x_{0}(k), x_{i}(k)\right))=\frac{a+ρb}{\left|x_{0}(k)-x_{i}(k)\right|+ρb}y(x0?(k),xi?(k)))=∣x0?(k)?xi?(k)∣+ρba+ρb?
(ρ為分辨率,一般設為0.5)(ρ為分辨率,一般設為0.5)(ρ為分辨率,一般設為0.5)
我們定義灰色關聯度為
Y(x0,xi)=1n∑k=1ny(x0(k),xi(k))Y\left(x_{0}, x_{i}\right)=\frac{1}{n} \sum_{k=1}^{n} y\left(x_{0}(k), x_{i}(k)\right)Y(x0?,xi?)=n1?k=1∑n?y(x0?(k),xi?(k))
二、灰色關聯應用
1.進行系統分析
下表為某地區國內生產總值的統計數據(以百萬元計),問該地區從2000年到2005年之間哪一種產業對GDP總量影響最大。
(1)畫統計圖:
我們可以先用Excel作各個企業和國內生產總值作時間序列曲線圖
首先,我們可以發現四個變量都呈上升趨勢,其次第二產業的增幅比較明顯,第二產業和第三產業的差距在后三年相差更大
(2)確定分析數列:
母數列(又稱參考數列、母指標):能反映系統行為特征的數據序列——類似于因變量Y,此處記作x0
子數列(又稱比較數列、子指標):影響系統行為的因素組成的數據序列——類似于自變量X,此處記作(x1,x2……xm)
本例中,國內生產總值就是Y,第一、第二和第三產業就是X
(3)對數據進行預處理:(兩個目的:去量綱、縮小變量范圍簡化計算)
對母序列和子序列的每個指標進行預處理,先求出每個指標的均值,再利用該指標中的每個元素都除以其均值。
由此我們可以得到的預處理的數據
(4)計算子序列中的各個指標與母序列的關聯系數和灰色關聯度
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; % 分辨系數取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) disp('子序列中各個指標的灰色關聯度分別為:');disp(mean(gamma))由此我們可以得到各個指標與母序列的灰色關聯度
(6)通過比較三個子序列和母序列的灰色關聯度可以得到結論:
該地區在2000年至2005年間的國內生產總值受到第三產業的影響最大(其灰色關聯度最大)
2.用于綜合評價
下表為不同河流的含氧量、PH值、細菌個數和植物性營養物量的統計數據,問水質情況最好的河流
注意:含氧量越高越好,PH值越接近7越好,細菌個數越少越好,植物性營養物量介于10-20之間最好
(1)對指標進行正向化
由題意可知,含氧量為極大型指標,PH值為中間型指標,細菌個數為極小型指標,植物性營養物質為區間型指標
(2)對正向化的指標進行預處理:
%% 對正向化后的矩陣進行預處理 Mean = mean(X); % 求出每一列的均值以供后續的數據預處理 Z = X ./ repmat(Mean,size(X,1),1); disp('預處理后的矩陣為:'); disp(Z)(3)將預處理后的矩陣每一行取最大值構成母序列(虛擬的):
%% 構造母序列和子序列 Y = max(Z,[],2); % 母序列為虛擬的,用每一行的最大值構成的列向量表示母序列 X = Z; % 子序列就是預處理后的數據矩陣(4)計算得分并排序:
%% 計算得分 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; % 分辨系數取0.5 gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 計算子序列中各個指標與母序列的關聯系數 weight = mean(gamma) / sum(mean(gamma)); % 利用子序列中各個指標的灰色關聯度計算權重 score = sum(X .* repmat(weight,size(X,1),1),2); % 未歸一化的得分 stand_S = score / sum(score); % 歸一化后的得分 [sorted_S,index] = sort(stand_S ,'descend') % 進行排序當得出的結果與熵權法+topsis相比時,可以發現兩者有相同的趨勢,但兩個曲線較大的出入,但我們如果只用topsis而并沒有對子序列賦予權重,得出的結果與灰色分析基本一致
三、灰色關聯分析思考
1.什么時候使用標準化回歸,什么時候用灰色關聯分析
當樣本個數n較大時,一般使用標準化回歸,當樣本個數n較小時,一般使用灰色關聯分析
2.如果母序列中有多個指標,應該怎么分析
應該分開計算并分析母序列和各個子序列的灰色關聯度
3.什么時候需要構造母序列
當用于評價類問題時,我們需要選出預處理后的矩陣的每一行的最大值作為母序列
4.灰色關聯分析在什么比賽適用
灰色關聯分析是國人提出的,不適用美賽,但適用于國內比賽,例如五一杯等等比賽
總結
以上是生活随笔為你收集整理的数学建模学习:灰色关联分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自制试题(逻辑思维训练500题)
- 下一篇: 【作业锦集】机器人学导论-空间变换及Ma