ギャップ検定

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

Keyword: ギャップ検定, Gaps Test, 検定

概要

本サンプルはギャップ検定(Gaps Test) を行うサンプルプログラムです。 本サンプルは一様分布から生成される疑似乱数ベクトルを分析対象とし、カイ二乗検定統計量、自由度と上側確率を算出します。

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

入力データ

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

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

m = int32(0);
rlo = 0.4;
rup = 0.6;
totlen = 1;
ncount = zeros(10, 1, 'int32');
ngaps = int32(0);

% Initialize the generator to a repeatable sequence
[state, ifail] = g05kf(genid, subid, seed);
for i=1:5 
  % Generate some U(0,1) values
  [state, x, ifail] = g05sq(int32(1000), 0, 1, state);
  if i==1 
    cl = 'F';
  elseif i==5
    cl = 'L';
  else
    cl = 'I';
  end
  [ngaps, ncount, ex, chi, df, prob, ifail] = ...
          g08ed(cl, x, m, rlo, rup, totlen, ngaps, ncount);
end
if (ifail == 0 || ifail >= 8)
  fprintf('\nTotal number of gaps found = %d\n', ngaps);
  if ifail == 8
    fprintf(' ** Note : the number of gaps requested were not found.\n');
  end
  fprintf('\nCount\n      ');
  fprintf('0      1      2      3      4      5      6      7      8     >9\n');
  for i=1:numel(ncount)
    fprintf('%7d', ncount(i));
  end
  fprintf('\n\nExpect\n      ');
  fprintf('0      1      2      3      4      5      6      7      8     >9\n');
  for i=1:numel(ex)
    fprintf('%7.1f', ex(i));
  end
  fprintf('\n\nChisq = %10.4f\n', chi);
  fprintf('DF    = %7.1f\n', df);
  fprintf('Prob  = %10.4f\n', prob);
  if ifail == 9
    fprintf('\n** Note : the chi square approximation may not be very good.\n');
  end
end

  • 1行目はコメント行で読み飛ばされます。
  • 2~5行目は g05kf の入力パラメータの値を指定しています。
  • 7~12行目は g08ed の入力パラメータの値を指定しています。
  • 14行目はコメント行で読み飛ばされます。
  • 15行目は g05kf を呼び出し疑似乱数生成器を初期化しています。
  • 16~28行目は g05sq を呼び出し[0,1]の一様分布から疑似乱数を生成後、g08edを呼び出しギャップ検定を行っています。g08ed の入力パラメータは以下です。
    cl 本関数の呼び出しの種類を指定しています。"F" は最初の呼び出し、"I" は中間の呼び出し、"L" は最後の呼び出しであることを意味しています。
    x 疑似乱数を与えています。
    m ギャップ数の最大値を指定しています。
    rho ギャップの定義に使用される区間の下限です。
    rup ギャップの定義に使用される区間の上限です。
    totlen 疑似乱数列に現れる可能性のある数を含む区間の長さの合計です。
    ngaps ギャップ数です。
    ncount 異なる長さのギャップをカウントした数です。
    この処理を10回繰り返しています。
  • 29~50行目は g08ed の実行結果を出力しています。

出力結果

1
2
3
4
5
6
7
8
9
10
11
12
13

Total number of gaps found = 1007

Count
      0      1      2      3      4      5      6      7      8     >9
    220    158    127     96     79     79     44     43     30    131

Expect
      0      1      2      3      4      5      6      7      8     >9
  201.4  161.1  128.9  103.1   82.5   66.0   52.8   42.2   33.8  135.2

Chisq =     7.0401
DF    =     9.0
Prob  =     0.6329

  • Total number of gaps found は見つかったギャップの総数を示しています。
  • Count は異なる長さのギャップをカウントした数を示しています。
  • Expect はカウント数の推定値を示しています。
  • Chisq はカイ二乗検定統計量を示しています。
  • DF はカイ二乗統計の自由度を示しています。
  • Prob はカイ二乗検定統計量に対応する上側確率(upper tail probability)を示しています。

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