1、關聯分析
現實中事物的聯系很復雜,我們往往就需要對系統分析,哪些因素對他影響較大,那些較小,所以就會用到關聯性分析。
以下面一個例子來介紹怎么做
x1 = [45.8 43.4 42.3 41.9];
x2 = [39.1 41.6 43.9 44.9];
求x2,x3,x4與x1的關聯性,并確定誰與x1的關聯性最強
x = [x1;x2;x3;x4];%將數據組成數據矩陣
首先就是標準化數據也叫初值化數據即xi(k)/xi(1);
上面每一個數據有4個觀測時刻
這樣就求出了觀測時刻的個數。
接下來就是求各比較數據與參考數據的關系
bj = data(2:end,:);%提出比較列
m2 = size(bj,1);%求比較數列的個數,即行數
t(j,:) = bj(j,:) - ck;%相當于x0(t)-xs(t)
然后就是求關聯系數了
mn = min(min(abs(t')));%求最小差
mx = max(max(abs(t')));%求最大差
ksi = (mn+rho*mx)./(abs(t)+rho*mx);%求關聯系數
最后就是求關聯度和進行關聯度排名了
[rs,rind] = sort(r,'descend')%對關聯度進行排序
運行結果為:

rs代表關聯度從大到小排序,rind代表對應的x的序號。可以看出x2以x1的關聯性是最大的。
代碼為

2、優勢分析
優勢分析就是當目標數列不止一個,與目標數列相關的因素也不止一個時,為了判斷那個因素的影響較大,就會進行優勢分析。假如有m個目標,記為y1,y2,...,ym。再假設有l個因素,記為x1,x2,…,xl。顯然每一個目標對l個因素就有l個關聯度。設rij表示相關因素xj對目標yi的關聯度,可構造關聯(度)矩陣R=(rij)mxl
下面以一個例子來說明
下面為目標數列
y1 = [170 174 197 216.4 235.8];
y2 = [57.55 71.74 76.8 80.7 89.85];
y3 = [68.56 70 85.38 99.83 103.4];
下面為因素數列
x1 = [308.58 310 295 346 367];
x2 = [195.4 189.9 189.2 205 222.7];
x3 = [24.6 21 12.2 15.1 14.57];
x4 = [20 25.6 23.3 29.2 30];
x5 = [18.98 19 22.3 23.5 27.66];
通過分析得到關聯度矩陣R為

可以看出最大的數為0.9468,說明x2對y1的影響較大。
具體代碼為

優勢分析代碼中求關聯度的函數為根據上述求關聯度代碼改編成關聯度函數。
文章來源:matlab分享