0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Octave で統計解析

Last updated at Posted at 2022-08-15

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];

1. 合計 sum()

usage:
sum (x)
sum(x, dim)
sum(…, "native")
sum(…, "double")
sum(…, "extra")
sum(data)
ans =

   500.00   500.02   500.00   499.99   500.01

2. 累積 prod()

usage:
prod(x)
prod(x, dim)
prod(…, "native")
prod(…, "double")
prod(data)
ans =

   7.8905e+16   7.8969e+16   8.0733e+16   7.6062e+16   7.8593e+16

3. 平均値 mean()

usage:
mean(x)
mean(x, dim)
mean(x, opt)
mean(x, dim, opt)

opt="a" 算術平均(デフォルト)
opt="g" 幾何平均
opt="h" 調和平均
mean(x)
ans = 2.7273
mean(data)
ans =

   50.000   50.002   50.000   49.999   50.001
mean(data, dim=2)
ans =

   49.664
   60.342
   40.024
   52.080
   33.488
   47.196
   57.664
   61.794
   48.088
   49.664
mean(data, opt="g")
ans =

   48.945   48.949   49.057   48.766   48.926
mean(data, opt="h")
ans =

   47.843   47.861   48.178   47.229   47.760

4. 不偏分散,分散 var()

usage:
var(x)
var(x, opt)
var(x, opt, dim)

opt=0 不偏分散
opt=1 分散
var(x)
ans = 1.2182
var(data), var(data, opt=1)
ans =

   111.11   111.11   111.12   111.09   111.14

ans =

    99.995   100.002   100.005    99.985   100.023
var(data, opt=0, dim=2)
ans =

    36.3476
    37.5938
    40.0300
    26.1738
    26.6820
    22.7304
   134.4062
     1.6617
    50.9126
     7.1996

5. 標準偏差 std()

usage:
std(x)
std(x, opt)
std(x, opt, dim)

opt=0 不偏分散の平方根, opt=1 分散の平方根
std(x)
ans = 1.1037
std(data) # opt=0, dim=1
ans =

   10.541   10.541   10.541   10.540   10.542
std(data, opt=1) # dim=1
ans =

    9.9997   10.0001   10.0003    9.9993   10.0011
std(data, opt=0, dim=2)
ans =

    6.0289
    6.1314
    6.3269
    5.1160
    5.1655
    4.7676
   11.5934
    1.2891
    7.1353
    2.6832
std(data, opt=1, dim=2)
ans =

    5.3924
    5.4841
    5.6590
    4.5759
    4.6201
    4.2643
   10.3694
    1.1530
    6.3820
    2.3999

6. 尖度 skewness()

usage:
skewness(x)
skewness(x, flag)
skewness(x, flag, dim)

flag=1 標本尖度(デフォルト),flag=0 不偏推定値

s1 = mean((x - mean(x)).^3 / std(x).^3
s0 = sqrt(n * (n - 1)) / (n - 2) * mean((x - mean(x)).^3) / std(x).^3
skewness(x), skewness(x, flag=0)
ans = 0.5609
ans = 0.6536
skewness(data)
ans =

  -0.1430  -0.2036   0.6687  -0.9911  -0.1520
skewness(data, flag=0)
ans =

  -0.1696  -0.2414   0.7930  -1.1753  -0.1802

7. 尖度 kurtosis()

usage:
kurtosis(x)
kurtosis(x, flag)
kurtosis(x, flag, dim)

flag=1 標本歪度(デフォルト),flag=0 不偏推定値

k1 = mean((x - mean(x)).^4 / std(x).^4
k0 = 3 + (n-1)/(n-2)/(n-3) * ((n + 1) * k1 - 3*(n-1))
kurtosis(x), kurtosis(x, flag=0)
ans = 2.9166
ans = 3.6943
kurtosis(data)
ans =

   2.0954   1.6057   2.4006   3.7860   2.8210
kurtosis(data, flag=0)
ans =

   2.3651   1.4994   2.9046   5.3537   3.6478

8. 中央値 median()

usage:
median(x)
median(x, dim)
median(x)
ans = 3
median(data)
ans =

   51.645   49.945   47.605   50.140   49.670

9. 最小値 min()

usage:
min(x)
min(x, [], dim)
[w, iw] = min(x)
min(x, y)

戻り値を指定するとき,最小値 w のある場所(インデックス)が iw で返される。
min(x)
ans = 1
min(data)
ans =

   32.620   34.170   37.700   26.060   30.120
[w,iw] = min(data)
w =

   32.620   34.170   37.700   26.060   30.120

iw =

   3   3   5   5   5

10. 最大値 max()

usage:
max(x)
max(x, [], dim)
[w, iw] = max(x)
max(x, y)
max(x)
ans = 5
max(data)
ans =

   66.060   62.360   70.440   62.930   68.190
[w,iw] = max(data)
w =

   66.060   62.360   70.440   62.930   68.190

iw =

   7   8   2   8   7

11. 範囲 range()

usage:
range(x)
range(x, dim)
range(x), max(x) - min(x)
ans = 4
ans = 4
range(data)
ans =

   33.440   28.190   32.740   36.870   38.070

12. 四分偏差 iqr()

この関数で計算される四分偏差は「第 3 四分位数 - 第 1 四分位数」 $Q_3 - Q_1$ である。統計学では $(Q_3 - Q_1) / 2$ である。

usage:
iqr(x)
iqr(x, dim)
iqr(data), quantile(data, 0.75) - quantile(data, 0.25)
ans =

   13.8900   16.4500   16.4100    9.7700   13.0400

ans =

   13.8900   16.4500   16.4100    9.7700   13.0400

13. 平均平方 meansq()

usage:
meansq(x)
meansq(x, dim)
meansq(x), mean(x.^2)
ans = 8.5455
ans = 8.5455

14. クオンタイル quantile()

usage:
q = quantile(x)
q = quantile(x, p)
q = quantile(x, p, dim)
q = quantile(x, p, dim, method)

p: デフォルトで [0, 0.25, 0.5, 0.75, 1]
method: R で採用されている 9 通りの方法。
quantile(x)
ans =

   1   2   3   3   5
quantile(data)
ans =

   32.620   34.170   37.700   26.060   30.120
   42.850   43.380   40.500   47.320   42.550
   51.645   49.945   47.605   50.140   49.670
   56.740   59.830   56.910   57.090   55.590
   66.060   62.360   70.440   62.930   68.190

Octave では method=5 がデフォルトであるが, R と同じにするなら method=7 にする。

quantile(data, p=0:0.25:1, dim=1, method=7)
ans =

   32.620   34.170   37.700   26.060   30.120
   43.515   43.513   41.562   47.345   43.660
   51.645   49.945   47.605   50.140   49.670
   55.913   59.492   55.835   56.250   55.493
   66.060   62.360   70.440   62.930   68.190

15. 基礎統計量 statistics()

usage:
statistics(x)
statistics(x, dim)

以下の統計量を返す。

  1. 最小値
  2. 第1四分位数
  3. 中央値
  4. 第3四分位数
  5. 最大値
  6. 平均値
  7. 標準偏差
  8. 尖度.
  9. 歪度
statistics(x') % statistics(x) はエラーになる
ans =

   1.0000
   2.0000
   3.0000
   3.0000
   5.0000
   2.7273
   1.1037
   0.5609
   2.9166
statistics(data)
ans =

   32.6200   34.1700   37.7000   26.0600   30.1200
   43.5150   43.5125   41.5625   47.3450   43.6600
   51.6450   49.9450   47.6050   50.1400   49.6700
   55.9125   59.4925   55.8350   56.2500   55.4925
   66.0600   62.3600   70.4400   62.9300   68.1900
   50.0000   50.0020   50.0000   49.9990   50.0010
   10.5406   10.5410   10.5412   10.5401   10.5421
   -0.1430   -0.2036    0.6687   -0.9911   -0.1520
    2.0954    1.6057    2.4006    3.7860    2.8210

16. 順位付け ranks()

同順位の場合には,平均順位になる。

usage: ranks(x, dim)

ranks(x)
ans =

 Columns 1 through 8:

    3.5000    7.5000    3.5000    7.5000   10.0000   11.0000    7.5000    3.5000

 Columns 9 through 11:

    7.5000    3.5000    1.0000
ranks(data)
ans =

    4    3    8    3    7
    8    9   10    8    8
    1    1    5    2    2
    7    8    6    6    4
    2    2    1    1    1
    3    4    4    7    6
   10    6    2    9   10
    9   10    9   10    9
    5    7    3    5    3
    6    5    7    4    5
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?