連検定

nAG Toolbox for MATLAB®用のサンプルコード

Keyword: 連検定, Runs Test, 検定

概要

本サンプルは連検定(Runs Test) を行うサンプルプログラムです。 本サンプルは[0,1]の一様分布から生成される疑似乱数ベクトルを分析対象とし、見つかった連の総数、カイ二乗検定統計量、自由度と上側確率を算出します。

※本サンプルはnAG Toolbox for MATLAB®が提供する関数 g08ea() のExampleコードです。実行にはMATLAB®本体(他社製品)とnAG Toolbox for MATLAB®が必要です。
本サンプル及び関数の詳細情報は g08ea のマニュアルページをご参照ください。

入力データ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

% Initialize the seed
seed = [int32(324213)];
% genid and subid identify the base generator
genid = int32(1);
subid =  int32(1);

m = int32(0);
nruns = int32(0);
ncount = [int32(0);0;0;0;0;0];
% Initialize the generator to a repeatable sequence
[state, ifail] = g05kf(genid, subid, seed);
for i=1:10 
  % Generate some U(0,1) values
  [state, x, ifail] = g05sq(int32(1000), 0, 1, state);
  if i==1 
    cl = 'F';
  elseif i==10
    cl = 'L';
  else
    cl = 'I';
  end
  [nruns, ncount, ex, cov, chi, df, prob, ifail] = g08ea(cl, x, m, nruns, ncount);
end
if (ifail == 0 || ifail == 10)
  fprintf('\nTotal number of runs found = %d\n', nruns);
  if ifail == 10
    fprintf(' ** Note : the number of runs requested were not found.\n');
  end
  fprintf('\n                             Count\n');
  fprintf('          1        2        3        4        5       >5\n  ');
  for i=1:numel(ncount)
    fprintf('%9d', ncount(i));
  end
  fprintf('\n\n                             Expect\n');
  fprintf('          1        2        3        4        5       >5\n  ');
  for i=1:numel(ex)
    fprintf('%9.2f', ex(i));
  end
  fprintf('\n\n                       Covariance matrix\n');
  fprintf('          1        2        3        4        5       >5\n');
  [mc, nc] = size(cov);
  for i = 1:mc
    fprintf('%2d', i);
    for j = 1:nc
      fprintf('%9.2f', cov(i,j));
    end
    fprintf('\n');
  end
  fprintf('\nChisq = %10.4f\n', chi);
  fprintf('DF    = %7.1f\n', df);
  fprintf('Prob  = %10.4f\n', prob);
end

  • 1行目はコメント行で読み飛ばされます。
  • 2~5行目は g05kf の入力パラメータを指定しています。
  • 7~9行目は g08ea の入力パラメータを指定しています。
  • 10行目はコメント行で読み飛ばされます。
  • 11行目は g05kf を呼び出し疑似乱数生成器を初期化しています。
  • 12~22行目は g05sq を呼び出し[0,1]の一様分布から疑似乱数を生成後、g08eaを呼び出し連検定を行っています。g08ea の入力パラメータは以下です。
    cl 本関数の呼び出しの種類を指定しています。"F" は最初の呼び出し、"I" は中間の呼び出し、"L" は最後の呼び出しであることを意味しています。
    x 疑似乱数を与えています。
    m 連の最大値を指定しています。"0" は制限がないことを意味します。
    nruns 連の数を与えています。
    ncount 異なる長さの連の数を与えています。
    この処理を10回繰り返しています。
  • 24~52行目は g08ea の実行結果を出力しています。

出力結果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

Total number of runs found = 5024

                             Count
          1        2        3        4        5       >5
       1703     2072      919      268       51       11

                             Expect
          1        2        3        4        5       >5
    1667.17  2083.17   916.46   263.80    57.51    11.90

                       Covariance matrix
          1        2        3        4        5       >5
 1  1278.11  -194.59  -148.85   -71.59   -22.92    -6.67
 2  -194.59  1410.00  -490.51  -197.23   -55.20   -14.36
 3  -148.85  -490.51   601.32  -117.41   -31.23    -7.79
 4   -71.59  -197.23  -117.41   222.05   -10.75    -2.61
 5   -22.92   -55.20   -31.23   -10.75    54.81    -0.65
 6    -6.67   -14.36    -7.79    -2.61    -0.65    11.75

Chisq =     1.8717
DF    =     6.0
Prob  =     0.9311

  • Total number of runs found は見つかった連の総数を示しています。
  • Count は異なる長さの連の数を示しています。
  • Expect は連の数の予測値を示しています。
  • Covariance matrix は連の数の共分散行列を示しています。
  • Chisq はカイ二乗検定統計量を示してています。
  • DF はカイ二乗統計の自由度を示しています。
  • Prob はカイ二乗検定統計量に対応する上側確率(upper tail probability)を示しています。

関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks