LoginSignup
0
0

More than 1 year has passed since last update.

Octave で相関係数行列,分散共分散行列

Last updated at Posted at 2022-07-26

Octave で相関係数行列,分散共分散行列

x = [2, 3, 2, 3, 4, 5, 3, 2, 3, 2, 1];
y = [3, 2, 2, 1, 2, 3, 3, 2, 5, 4, 2];

data = [45.51 43.38 56.91 47.32 55.20;
        56.74 61.85 70.44 57.09 55.59;
        32.62 34.17 47.24 43.64 42.45;
        53.43 59.83 47.97 52.18 46.99;
        37.41 36.15 37.70 26.06 30.12;
        42.85 43.91 44.75 53.73 50.74;
        66.06 52.68 39.87 61.52 68.19;
        62.09 62.36 62.01 62.93 59.58;
        50.81 58.48 40.50 48.10 42.55;
        52.48 47.21 52.61 47.42 48.60];

format short

1. 相関係数および相関係数行列

1.1. ピアソンの積率相関係数

corr(x, y)
ans = 0.073537
corr(data)
ans =

   1.0000   0.8288   0.3214   0.7860   0.7786
   0.8288   1.0000   0.4560   0.7145   0.5004
   0.3214   0.4560   1.0000   0.4643   0.4156
   0.7860   0.7145   0.4643   1.0000   0.8970
   0.7786   0.5004   0.4156   0.8970   1.0000
corr(data(:, 1:2), data(:, 3:5))
ans =

   0.3214   0.7860   0.7786
   0.4560   0.7145   0.5004

1.2. スピアマンの順位相関係数

spearman(x, y)
ans = 0.070711
spearman(data)
ans =

   1.0000   0.8424   0.3455   0.8424   0.7939
   0.8424   1.0000   0.4909   0.8182   0.5636
   0.3455   0.4909   1.0000   0.3333   0.4545
   0.8424   0.8182   0.3333   1.0000   0.8303
   0.7939   0.5636   0.4545   0.8303   1.0000
spearman(data(:, 1:2), data(:, 3:5))
ans =

   0.3455   0.8424   0.7939
   0.4909   0.8182   0.5636

1.3. ケンドールの順位相関係数

kendall(x, y)
ans = 0.070593
kendall(data)
ans =

   1.0000   0.7333   0.2444   0.6889   0.6444
   0.7333   1.0000   0.3333   0.6889   0.3778
   0.2444   0.3333   1.0000   0.2000   0.4222
   0.6889   0.6889   0.2000   1.0000   0.6889
   0.6444   0.3778   0.4222   0.6889   1.0000
kendall(data(:, 1:2), data(:, 3:5))
ans =

   0.2444   0.6889   0.6444
   0.3333   0.6889   0.3778

2. 分散共分散行列

usage:
cov (x)
cov (x, opt)
cov (x, y)
cov (x, y, opt)

opt=0 デフォルト 分散,共分散の正規化に n-1 を使う。opt=1 のとき n を使う。
cov(x, y)
ans = 0.090909
cov(data)
ans =

   111.105    92.086    35.715    87.330    86.519
    92.086   111.114    50.665    79.388    55.607
    35.715    50.665   111.117    51.591    46.188
    87.330    79.388    51.591   111.095    99.670
    86.519    55.607    46.188    99.670   111.136
cov(data(:, 1:2), data(:, 3:5))
ans =

   35.715   87.330   86.519
   50.665   79.388   55.607
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0