11/28/2006

11.2.7 相關係數 corrcoef

11.2.7相關係數 corrcoef


兩個變數相關性可由相關係數求得。其指令型式如下:

R = corrcoef(X)
R = corrcoef(x,y)
[R,P]=corrcoef(...)
[R,P,RLO,RUP]=corrcoef(...)
[...]=corrcoef(...,'param1',val1,'param2',val2,...)


基本上,R=CORRCOEF(X)在於計算一個R矩陣,其內有X陣列行間之相關係數。而CORRCOEF(X,Y)則計算 X 與 Y兩行向量之相關係數,其意義與CORRCOEF([X Y])相同。

假設 C為共方矩陣,且 C = COV(X),則R=CORRCOEF(X)之定義為:

R(i,j) = C(i,j)/sqrt{C(i,i)C(j,j)}

輸入項中除XY等資料矩陣外,尚可輸入其他特定變數與常數。這些可以用 'PARAM1',VAL1成對表示,其項目包括:

參數值:
'alpha' 顯著水準,預設值為0.05(即95%信任區間)
'rows' 使用 'all' (預設值)表示使用所有列值;
'complete'表示使用沒有含NaN 值之列;
'pairwise'表示計算R(i,j)時使用不含
NaN值之 i行或 j行。

輸出值中, P表示檢驗無關係假設之P值矩陣。每一個P值代表隨機可以觀察得到之最大值域。若 P(i,j)值很小,例如小於 0.05,則R(i,j) 之關係甚為顯著。

此外,有RLO與RUP代表95%信任水準之下限與上限矩陣,其大小與R相同。

例一



>> x=1:5
x =

1 2 3 4 5

>> y=x.^3
y =

1 8 27 64 125

>> r=corrcoef(x,y)
r =

1.0000 0.9431
0.9431 1.0000

答案中r之值愈接近於1,其相關性愈高。此例中,對角線為自己對自己(即x對x;y對y)故其相關性為1,其餘x對y或y對x,兩者相關性一樣,其數值為0.9431,也相當高。

例二


利用常態分配亂數指令randn產生30X4大小之資料,開始時先利用第四行建立與其他行間之關係,以橫向加總於第四行。其後以corrcoef求相關係數r及機率p。就機率而言,p值愈小,表示兩者之相異性更強,其結果可利用find指令找出小於0.05以下之機率項目。

x = randn(20,4); % uncorrelated data
x(:,4) = sum(x,2) % introduce correlation
[r,p] = corrcoef(x)
% compute sample correlation and p-values
[i,j] = find(p<0.05);
% find significant correlations [i,j]

x =
0.0828 -0.5703 -0.0716 -0.5850
0.7662 -1.4986 -2.4146 -4.2576
2.2368 -0.0503 -0.6943 2.2430
0.3269 0.5530 -1.3914 -0.0113
0.8633 0.0835 0.3296 0.7592
0.6794 1.5775 0.5985 2.2962
0.5548 -0.3308 0.1472 -0.3822
1.0016 0.7952 -0.1014 2.6212
1.2594 -0.7848 -2.6350 -2.4089
0.0442 -1.2631 0.0281 -1.3408
-0.3141 0.6667 -0.8763 -1.7822
0.2267 -1.3926 -0.2655 -1.1188
0.9967 -1.3006 -0.3276 2.0588
1.2159 -0.6050 -1.1582 -0.2577
-0.5427 -1.4886 0.5801 -2.8740
0.9122 0.5585 0.2398 1.9573
-0.1721 -0.2774 -0.3509 -2.2362
-0.3360 -1.2937 0.8921 -0.5890
0.5415 -0.8884 1.5783 -0.4617
0.9321 -0.9865 -1.1082 -0.4434
r =
1.0000 0.1950 -0.3475 0.5143
0.1950 1.0000 0.0929 0.5785
-0.3475 0.0929 1.0000 0.3822
0.5143 0.5785 0.3822 1.0000
p =
1.0000 0.4100 0.1333 0.0203
0.4100 1.0000 0.6969 0.0075
0.1333 0.6969 1.0000 0.0963
0.0203 0.0075 0.0963 1.0000
ans =
4 1
4 2
1 4
2 4