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 異なる長さの連の数を与えています。 - 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)を示しています。