灰色关联法 —— matlab
目錄
1.簡(jiǎn)介
2.算法詳解
2.1 數(shù)據(jù)標(biāo)準(zhǔn)化
2.2?計(jì)算灰色相關(guān)系數(shù)
2.3 計(jì)算灰色關(guān)聯(lián)度系數(shù)?
3.實(shí)例分析
3.1 讀取數(shù)據(jù)
3.2 數(shù)據(jù)標(biāo)準(zhǔn)化
3.3?繪制 x1,x4,x5,x6,x7 的折線圖
3.4?計(jì)算灰色相關(guān)系數(shù)
完整代碼
1.簡(jiǎn)介
????????對(duì)于兩個(gè)系統(tǒng)之間的因素,其隨時(shí)間或不同對(duì)象而變化的關(guān)聯(lián)性大小的量度,稱為關(guān)聯(lián)度。在系統(tǒng)發(fā)展過(guò)程中,若兩個(gè)因素變化的趨勢(shì)具有一致性,即同步變化程度較高,即可謂二者關(guān)聯(lián)程度較高;反之,則較低。因此,灰色關(guān)聯(lián)分析方法,是根據(jù)因素之間發(fā)展趨勢(shì)的相似或相異程度,亦即“灰色關(guān)聯(lián)度”,作為衡量因素間關(guān)聯(lián)程度的一種方法。
????????灰色關(guān)聯(lián)分析可以用于衡量因素相關(guān)程度的同時(shí),也有論文將其用于綜合評(píng)價(jià),其原理思想和TOPSIS法是比較相似的。?
2.算法詳解
2.1 數(shù)據(jù)標(biāo)準(zhǔn)化
?因?yàn)槊總€(gè)指標(biāo)的數(shù)量級(jí)不一樣,需要把它們化到同一個(gè)范圍內(nèi)再比較。標(biāo)準(zhǔn)化的方法比較多,這里僅用最大最小值標(biāo)準(zhǔn)化方法。
????????設(shè)標(biāo)準(zhǔn)化后的數(shù)據(jù)矩陣元素為rij,由上可得指標(biāo)正向化后數(shù)據(jù)矩陣元素為?(Xij)'
2.2?計(jì)算灰色相關(guān)系數(shù)
我們常見(jiàn)的灰色相關(guān)系數(shù)表達(dá)式如下:
? ?Xo(k)為參考列,p為分辨系數(shù)。它的范圍為(0~1),它的作用為控制區(qū)分度,它的值越小,區(qū)分度越大,它的值越大,區(qū)分度越小。??常常取0.5。乍一看這個(gè)公式還是有些難懂,接下來(lái)詳細(xì)介紹一下它的原理。
2.3 計(jì)算灰色關(guān)聯(lián)度系數(shù)?
- 參考向量的選擇
????????例如研究x2指標(biāo)與x1指標(biāo)之間的灰色關(guān)聯(lián)度。所以將x1列作為參考向量,即要研究與誰(shuí)的關(guān)系,就將誰(shuí)作為參考。設(shè)參考向量為Y1=x1,生成新的數(shù)據(jù)矩陣 X1=x2.
- 生成絕對(duì)值矩陣?
設(shè)生成的絕對(duì)值矩陣為A
A=[X1-Y1],亦是A=[x2-x1]
設(shè)dmax為絕對(duì)值矩陣A的最大值,dmin為絕對(duì)值矩陣A的最小值。
-
計(jì)算灰色關(guān)聯(lián)矩陣
設(shè)灰色關(guān)聯(lián)矩陣為B
- 計(jì)算灰色關(guān)聯(lián)度
3.實(shí)例分析
其中指標(biāo),x1:貨物運(yùn)輸量;x2:港口貨物吞吐量;x3:貨物周轉(zhuǎn)量;x4:GDP;x5:財(cái)政收入x6:城市居民人均可支配收入;x7:農(nóng)村居民人均凈收入。現(xiàn)研究x4-x7指標(biāo)與x1指標(biāo)之間的灰色關(guān)聯(lián)度。數(shù)據(jù)表格如下:
| 年份 | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
| 2007 | 22578 | 27569 | 4987 | 2567.7 | 267.98 | 1.5429 | 1.172 |
| 2008 | 25698 | 29484 | 5048 | 3131 | 348.51 | 1.8546 | 1.2514 |
| 2009 | 27896 | 31589 | 5129 | 3858.2 | 429.1 | 2.0369 | 1.0254 |
| 2010 | 29540 | 34894 | 5569 | 4417.7 | 541.29 | 2.2589 | 1.189 |
| 2011 | 31058 | 36478 | 5783 | 5158.1 | 647.25 | 2.4276 | 1.4213 |
| 2012 | 35980 | 38695 | 6045 | 6150.1 | 736.45 | 2.5678 | 1.5304 |
| 2013 | 39483 | 40746 | 6259 | 7002.8 | 850 | 2.8546 | 1.7421 |
3.1 讀取數(shù)據(jù)
data=xlsread('D:\桌面\huiseguanlian.xlsx')返回:
3.2 數(shù)據(jù)標(biāo)準(zhǔn)化
%數(shù)據(jù)標(biāo)準(zhǔn)化 data1=mapminmax(data',0.002,1) %標(biāo)準(zhǔn)化到0.002-1區(qū)間?返回:
3.3?繪制 x1,x4,x5,x6,x7 的折線圖
figure(1) t=[2007:2013]; plot(t,data1(:,1),'LineWidth',2) hold on for i=1:4plot(t,data1(:,3+i),'--')hold on end xlabel('year') legend('x1','x4','x5','x6','x7') title('灰色關(guān)聯(lián)分析')返回:
從圖中可以看出,這幾個(gè)指標(biāo)的趨勢(shì)大致相同
3.4?計(jì)算灰色相關(guān)系數(shù)
3.4.1?得到其他列和參考列相等的絕對(duì)值
%得到其他列和參考列相等的絕對(duì)值 for i=4:7data1(:,i)=abs(data1(:,i)-data1(:,1)); end3.4.2?得到絕對(duì)值矩陣的全局最大值和最小值
%得到絕對(duì)值矩陣的全局最大值和最小值 data2=data1(:,4:7); d_max=max(max(data2)); d_min=min(min(data2));3.4.3 定義分辨系數(shù)
a=0.53.4.4 計(jì)算灰色關(guān)聯(lián)矩陣
data3=(d_min+a*d_max)./(data2+a*d_max); xishu=mean(data3); disp(' x4,x5,x6,x7 與 x1之間的灰色關(guān)聯(lián)度分別為:') disp(xishu)返回:
完整代碼
clc;clear; %讀取數(shù)據(jù) data=xlsread('D:\桌面\huiseguanlian.xlsx'); %數(shù)據(jù)標(biāo)準(zhǔn)化 data1=mapminmax(data',0.002,1); %標(biāo)準(zhǔn)化到0.002-1區(qū)間 data1=data1'; %%繪制 x1,x4,x5,x6,x7 的折線圖 figure(1) t=[2007:2013]; plot(t,data1(:,1),'LineWidth',2) hold on for i=1:4plot(t,data1(:,3+i),'--')hold on end xlabel('year') legend('x1','x4','x5','x6','x7') title('灰色關(guān)聯(lián)分析')%%計(jì)算灰色相關(guān)系數(shù) %得到其他列和參考列相等的絕對(duì)值 for i=4:7data1(:,i)=abs(data1(:,i)-data1(:,1)); end%得到絕對(duì)值矩陣的全局最大值和最小值 data2=data1(:,4:7); d_max=max(max(data2)); d_min=min(min(data2)); %灰色關(guān)聯(lián)矩陣 a=0.5; %分辨系數(shù) data3=(d_min+a*d_max)./(data2+a*d_max); xishu=mean(data3); disp(' x4,x5,x6,x7 與 x1之間的灰色關(guān)聯(lián)度分別為:') disp(xishu)總結(jié)
以上是生活随笔為你收集整理的灰色关联法 —— matlab的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 没有bug队——加贝——Python 练
- 下一篇: python基础入门(8)之集合