Main Content

corrcoef

説明

R = corrcoef(A) は、A相関係数の行列を返します。ここで、A の列は確率変数を、行は観測値を表します。

R = corrcoef(A,B) は、2 つの確率変数 AB の間の相関係数を返します。

[R,P] = corrcoef(___) は、相関係数の行列と、観測された複数の現象の間に相関がないという仮説 (帰無仮説) を検証するための p 値の行列を返します。この構文では、前述の構文の任意の引数を使用します。P の非対角要素が有意水準 (既定値は 0.05) より小さい場合、R での対応する相関は有意であると見なされます。R に複素数要素が含まれる場合、この構文は無効です。

[R,P,RL,RU] = corrcoef(___) は、個々の係数に関して 95% の信頼区間の下限と上限を格納する行列も返します。R に複素数要素が含まれる場合、この構文は無効です。

___ = corrcoef(___,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションを使用して、前術の構文に示した任意の出力引数を返します。たとえば、corrcoef(A,'Alpha',0.1) は 90% の信頼区間を指定し、corrcoef(A,'Rows','complete')NaN 値を 1 つ以上含む A のすべての行を省略します。

すべて折りたたむ

2 つの正規分布する乱数列と、それらの一方の列で定義されるもう 1 つの列をもつ行列について、相関係数を計算します。A の 3 列目は 2 列目の倍数なので、これら 2 つの変数は直接相関しています。したがって、R の要素 (2,3) および (3,2) の相関係数は 1 です。

x = randn(6,1);
y = randn(6,1);
A = [x y 2*y+3];
R = corrcoef(A)
R = 3×3

    1.0000   -0.6237   -0.6237
   -0.6237    1.0000    1.0000
   -0.6237    1.0000    1.0000

それぞれ正規分布した 10 の観測値をもつ 2 つの乱数ベクトルについて、相関係数の行列を計算します。

A = randn(10,1);
B = randn(10,1);
R = corrcoef(A,B)
R = 2×2

    1.0000    0.4518
    0.4518    1.0000

正規分布の乱数行列の相関係数と p 値を計算します。行列には、他の 3 列の合計値と等価な 4 列目が追加されています。A の最後の列は他の列の線形結合なので、4 番目の変数と、他の 3 つの変数それぞれの間には相関が導入されます。したがって、P の 4 列目と 4 行目の p 値は非常に小さくなり、有意の相関があることが示されます。

A = randn(50,3);       
A(:,4) = sum(A,2); 
[R,P] = corrcoef(A)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

正規分布の乱数行列を作成し、他の 3 列の合計値と等価な 4 列目を追加してから、相関係数、p 値、係数の下限および上限を計算します。

A = randn(50,3);       
A(:,4) = sum(A,2); 
[R,P,RL,RU] = corrcoef(A)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

RL = 4×4

    1.0000   -0.1702   -0.1952    0.5688
   -0.1702    1.0000   -0.4070    0.2677
   -0.1952   -0.4070    1.0000    0.2825
    0.5688    0.2677    0.2825    1.0000

RU = 4×4

    1.0000    0.3799    0.3575    0.8389
    0.3799    1.0000    0.1388    0.6890
    0.3575    0.1388    1.0000    0.6974
    0.8389    0.6890    0.6974    1.0000

行列 RL および RU はそれぞれ、各相関係数の下限と上限 (既定では 95% の信頼区間) を指定します。Alpha 値を指定して信頼度を変更できます。この値は百分率での信頼度 100*(1-Alpha)% を定義します。たとえば、99% の信頼区間を計算するには、Alpha 値に 0.01 を使用し、これが、上下限値 RL および RU に反映されます。RL および RU の係数の上下限値で定義される区間は、信頼度 99% の場合のほうが信頼度 95% の場合より広くなります。これは、信頼度が高くなるほど、相関値を含むと考えられる範囲がより広く必要になるからです。

[R,P,RL,RU] = corrcoef(A,'Alpha',0.01)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

RL = 4×4

    1.0000   -0.2559   -0.2799    0.5049
   -0.2559    1.0000   -0.4792    0.1825
   -0.2799   -0.4792    1.0000    0.1979
    0.5049    0.1825    0.1979    1.0000

RU = 4×4

    1.0000    0.4540    0.4332    0.8636
    0.4540    1.0000    0.2256    0.7334
    0.4332    0.2256    1.0000    0.7407
    0.8636    0.7334    0.7407    1.0000

NaN 値を含む正規分布行列を作成し、NaN を含む行をすべて除外して相関係数の行列を計算します。

A = randn(5,3);
A(1,3) = NaN;
A(3,2) = NaN;
A
A = 5×3

    0.5377   -1.3077       NaN
    1.8339   -0.4336    3.0349
   -2.2588       NaN    0.7254
    0.8622    3.5784   -0.0631
    0.3188    2.7694    0.7147

R = corrcoef(A,'Rows','complete')
R = 3×3

    1.0000   -0.8506    0.8222
   -0.8506    1.0000   -0.9987
    0.8222   -0.9987    1.0000

すべての NaN 値を計算に含めるには、'all' を使用します。

R = corrcoef(A,'Rows','all')
R = 3×3

     1   NaN   NaN
   NaN   NaN   NaN
   NaN   NaN   NaN

2 列の相関係数をそれぞれペア単位で計算するには、'pairwise' を使用します。2 列のいずれかに NaN が含まれる場合、その行は省略されます。

R = corrcoef(A,'Rows','pairwise')
R = 3×3

    1.0000   -0.3388    0.4649
   -0.3388    1.0000   -0.9987
    0.4649   -0.9987    1.0000

入力引数

すべて折りたたむ

行列として指定される入力配列。

  • A がスカラーの場合、corrcoef(A)NaN を返します。

  • A がベクトルの場合、corrcoef(A)1 を返します。

データ型: single | double
複素数のサポート: あり

追加の入力配列。ベクトル、行列または多次元配列として指定します。

  • AB は同じサイズでなければなりません。

  • AB がスカラーの場合、corrcoef(A,B)1 を返します。ただし、AB が等しい場合、corrcoef(A,B)NaN を返します。

  • AB が行列または多次元配列である場合、corrcoef(A,B) は各入力をベクトル表現に変換し、corrcoef(A(:),B(:)) または corrcoef([A(:) B(:)]) と等価になります。

  • AB が 0 行 0 列の空配列である場合、corrcoef(A,B)NaN 値からなる 2 行 2 列の行列を返します。

データ型: single | double
複素数のサポート: あり

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: R = corrcoef(A,'Alpha',0.03)

有意水準。0 ~ 1 の数値として指定します。'Alpha' パラメーターの値は、相関係数の百分率による信頼度 100*(1-Alpha)% を定義し、これによって RLRU の限界が決まります。

データ型: single | double

NaN オプションの使用方法。次の値のいずれかとして指定します。

  • 'all' — 相関係数を計算する前に、すべての NaN 値を入力に含めます。

  • 'complete' — 相関係数を計算する前に、NaN 値を含む入力の行をすべて省略します。このオプションは常に、半正定値行列を返します。

  • 'pairwise' — 2 列の相関係数の計算ごとに、ペア単位でのみ NaN を含む任意の行を省略します。このオプションは、半正定値ではない行列を返すことがあります。

データ型: char

出力引数

すべて折りたたむ

相関係数。行列として返されます。

  • 入力が行列 1 つの場合、R のサイズは、A によって表現される確率変数の数 (列数) に基づき [size(A,2) size(A,2)] となります。慣例により、対角要素は 1 に設定され、非対角要素は変数ペアの相関係数になります。係数の値の範囲は -1 ~ 1 です。-1 は直接の負の相関、0 は相関なし、1 は直接の正の相関を表します。R は対称です。

  • 入力引数が 2 つの場合、R は、対角要素に 1、非対角要素に相関係数をもつ 2 行 2 列の行列です。

  • いずれかの確率変数が定数の場合、その変数とその他すべての変数との相関は未定義であり、対応する行と列の値は NaN になります。

p 値。行列として返されます。P は対称で、R と同じサイズになります。対角要素はすべて 1 で、非対角要素は各変数ペアの p 値になります。p 値の範囲は 0 ~ 1 です。0 に近い値は R の有意な相関に対応し、帰無仮説が観察される確率が低いことを示します。

相関係数の下限。行列として返されます。RL は対称であり、R と同じサイズになります。対角要素はすべて 1 で、非対角要素は R における対応する係数の 95% 信頼区間の下限です。R に複素数値が含まれる場合、RL を返す構文は無効です。

相関係数の上限。行列として返されます。RU は対称であり、R と同じサイズになります。対角要素はすべて 1 で、非対角要素は R における対応する係数の 95% 信頼区間の上限です。R に複素数値が含まれる場合、RL を返す構文は無効です。

詳細

すべて折りたたむ

相関係数

2 つの確率変数の相関係数は、それらの線形従属性の尺度です。各変数に N 個のスカラー観測値がある場合、ピアソンの相関係数は次のように定義されます。

ρ(A,B)=1N1i=1N(AiμAσA)(BiμBσB),

ここで、μAσA はそれぞれ A の平均と標準偏差であり、μBσB は B の平均と標準偏差です。あるいは、A と B の共分散を使用して相関係数を定義できます。

ρ(A,B)=cov(A,B)σAσB.

2 つの確率変数の相関係数 "行列" は、各ペア単位の変数の組み合わせに対する相関係数からなる行列です。

R=(ρ(A,A)ρ(A,B)ρ(B,A)ρ(B,B)).

A と B は常に自分自身と直接相関しているので対角要素は 1 であり、つまり次のようになります。

R=(1ρ(A,B)ρ(B,A)1).

参照

[1] Fisher, R.A. Statistical Methods for Research Workers, 13th Ed., Hafner, 1958.

[2] Kendall, M.G. The Advanced Theory of Statistics, 4th Ed., Macmillan, 1979.

[3] Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P. Numerical Recipes in C, 2nd Ed., Cambridge University Press, 1992.

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | |