Main Content

kstest

1 標本コルモゴロフ・スミルノフ検定

説明

h = kstest(x) は、1 標本コルモゴロフ・スミルノフ検定を使用して、ベクトル x のデータが標準の正規分布から派生しているという帰無仮説を、そのデータは正規分布から派生していないという対立仮説に対して検定した結果を返します。検定で帰無仮説が有意水準 5% で棄却された場合、結果 h1、それ以外の場合は 0 になります。

h = kstest(x,Name,Value) は、1 つ以上の名前と値のペア引数で指定された追加のオプションを使用した 1 標本コルモゴロフ・スミルノフ検定の検定の判定を返します。たとえば、標準正規以外の分布に対して検定したり、有意水準を変更したり、片側検定を実行することができます。

[h,p] = kstest(___) は、前の構文の入力引数のいずれかを使用して、仮説検定の p 値 p も返します。

[h,p,ksstat,cv] = kstest(___) は、検定統計量 ksstat と検定の近似の棄却限界値 cv も返します。

すべて折りたたむ

kstest を使用して、1 標本コルモゴロフ・スミルノフ検定を実行します。経験的累積分布関数 (cdf) を標準正規 cdf と視覚的に比較することにより、検定の判定を確認します。

examgrades データ セットを読み込みます。試験採点データの 1 列目が含まれているベクトルを作成します。

load examgrades
test1 = grades(:,1);

平均が 75、標準偏差が 10 の正規分布にデータが由来しているという帰無仮説を検定します。kstest の既定の設定では標準正規分布について検定を行うので、これらのパラメーターを使用してデータ ベクトルの各要素をセンタリングおよびスケーリングします。

x = (test1-75)/10;
h = kstest(x)
h = logical
   0

h = 0 の戻り値は、kstest が既定の有意水準 5% で帰無仮説を棄却できないことを示します。

経験的累積分布関数と標準正規累積分布関数をプロットして、視覚的に比較します。

cdfplot(x)
hold on
x_values = linspace(min(x),max(x));
plot(x_values,normcdf(x_values,0,1),'r-')
legend('Empirical CDF','Standard Normal CDF','Location','best')

Figure contains an axes object. The axes object with title Empirical CDF, xlabel x, ylabel F(x) contains 2 objects of type line. These objects represent Empirical CDF, Standard Normal CDF.

Figure には、センタリングおよびスケーリングされたデータ ベクトルの経験的累積分布関数と標準正規分布の累積分布関数の間の類似性が示されています。

標本データを読み込みます。学生の試験の採点データの 1 列目を含むベクトルを作成します。

load examgrades;
x = grades(:,1);

仮定された分布を 2 列の行列として指定します。列 1 には、データ ベクトル x が含まれます。列 2 には、位置パラメーター 75、スケール パラメーター 10 および自由度 1 をもつ仮定されたスチューデントの t 分布に対して x の各値で評価した累積分布関数値が含まれます。

test_cdf = [x,cdf('tlocationscale',x,75,10,1)];

データが仮定された分布から派生しているかどうかを検定します。

h = kstest(x,'CDF',test_cdf)
h = logical
   1

h = 1 の戻り値は、kstest が既定の有意水準 5% で帰無仮説を棄却することを示します。

標本データを読み込みます。学生の試験の採点データの 1 列目を含むベクトルを作成します。

load examgrades;
x = grades(:,1);

位置パラメーター 75、スケール パラメーター 10 および自由度 1 をもつスチューデントの t 分布からデータが派生したかどうかを検定するため、確率分布オブジェクトを作成します。

test_cdf = makedist('tlocationscale','mu',75,'sigma',10,'nu',1);

データが仮定された分布から派生するという帰無仮説を検定します。

h = kstest(x,'CDF',test_cdf)
h = logical
   1

h = 1 の戻り値は、kstest が既定の有意水準 5% で帰無仮説を棄却することを示します。

標本データを読み込みます。学生の試験の採点の 1 列目を含むベクトルを作成します。

load examgrades;
x = grades(:,1);

位置パラメーター 75、スケール パラメーター 10 および自由度 1 をもつスチューデントの t 分布からデータが派生したかどうかを検定するため、確率分布オブジェクトを作成します。

test_cdf = makedist('tlocationscale','mu',75,'sigma',10,'nu',1);

データは有意水準 1% で仮定された分布からのものであるという帰無仮説を検定します。

[h,p] = kstest(x,'CDF',test_cdf,'Alpha',0.01)
h = logical
   1

p = 0.0021

h = 1 の戻り値は、kstest が有意水準 1% で帰無仮説を棄却することを示します。

標本データを読み込みます。株式収益データ行列の 3 列目が含まれるベクトルを作成します。

load stockreturns;
x = stocks(:,3);

データが標準正規分布から派生しているという帰無仮説を、データの母集団の累積分布関数が標準正規累積分布関数よりも大きいという対立仮説に対して検定します。

[h,p,k,c] = kstest(x,'Tail','larger')
h = logical
   1

p = 5.0854e-05
k = 0.2197
c = 0.1207

h = 1 の戻り値は、kstest が既定の有意水準 5% で対立仮説を優先して帰無仮説を棄却することを示します。

経験的累積分布関数と標準正規累積分布関数をプロットして、視覚的に比較します。

[f,x_values] = ecdf(x);
J = plot(x_values,f);
hold on;
K = plot(x_values,normcdf(x_values),'r--');
set(J,'LineWidth',2);
set(K,'LineWidth',2);
legend([J K],'Empirical CDF','Standard Normal CDF','Location','SE');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Empirical CDF, Standard Normal CDF.

プロットには、データ ベクトル x の経験的累積分布関数と、標準正規分布の累積分布関数間の差分が示されます。

入力引数

すべて折りたたむ

ベクトルとして指定される標本データ。

データ型: single | double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Tail','larger','Alpha',0.01 は、仮定した分布の cdf より標本データの抽出元である母集団の cdf が大きいという対立仮説を使用して、1% の有意水準で検定を行うよう指定します。

仮説検定の有意水準。'Alpha' と、(0,1) の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。

例: 'Alpha',0.01

データ型: single | double

仮説連続分布の累積分布関数。'CDF' と 2 列の行列または連続確率分布オブジェクトで構成されるコンマ区切りのペアで指定します。CDF が行列の場合、列 1 には可能な一連の x 値が含まれ、列 2 には、対応する仮説累積分布関数値 G(x) が含まれます。CDF が、列 1 にデータ ベクトル x の値が含まれるように指定されている場合、計算が最も効率的になります。CDF の列 1 ではなく x に値がある場合、kstest は内挿によって G(x) を近似します。x における値はすべて、CDF の1 列目における最小値と最大値の間になければなりません。既定では、kstest は標準正規分布に対して検定します。

1 標本コルモゴロフ・スミルノフ検定は、連続累積分布関数のみに有効であるため、この検定では CDF が事前に決定されていなければなりません。CDF がデータから推定されている場合、結果は正確ではありません。正規分布、対数正規分布、極値分布、ワイブル分布、指数分布に対して x を検定するには、分布パラメーターを指定するのではなく、代わりに lillietest を使用します。

データ型: single | double

評価する対立仮説のタイプ。'Tail' と以下のいずれかで構成される、コンマ区切りのペアとして指定します。

'unequal'x の母集団の累積分布関数が仮定された分布の累積分布関数と等しくないという対立仮説を検定します。
'larger'x の母集団の累積分布関数が仮定された分布の累積分布関数よりも大きいという対立仮説を検定します。
'smaller'x の母集団の累積分布関数が仮定された分布の累積分布関数よりも小さいという対立仮説を検定します。

データ ベクトル x の値が仮定した分布から予想された値よりも大きくなる傾向がある場合、x の経験的分布関数は小さくなる傾向にあり、その逆も同じです。

例: 'Tail','larger'

出力引数

すべて折りたたむ

論理値として返される仮説検定の結果。

  • h = 1 の場合、有意水準 Alpha で帰無仮説が棄却されることを示します。

  • h = 0 の場合、有意水準 Alpha で帰無仮説が棄却できなかったことを示します。

検定の p 値。[0,1] の範囲のスカラー値として返されます。p は、帰無仮説に基づく観測値と同様に、極端な検定統計量、またはより極端な検定統計量が観測される確率です。p の値が小さい場合、帰無仮説の妥当性に問題がある可能性があります。

仮説検定の検定統計量。非負のスカラー値として返されます。

棄却限界値。非負のスカラー値として返されます。

詳細

すべて折りたたむ

1 標本コルモゴロフ・スミルノフ検定

1 標本コルモゴロフ・スミルノフ検定は、データの母集団の累積分布関数が仮説累積分布関数と等しいという帰無仮説のノンパラメトリック検定です。

「等しくない」累積分布関数についての両側検定では、データの母集団の累積分布関数が仮説累積分布関数と等しくないという対立仮説に対して帰無仮説を検定します。検定統計量は、x から計算された経験的累積分布関数と仮説累積分布関数との差の最大絶対値です。

D*=maxx(|F^(x)G(x)|),

ここで F^(x) は経験的累積分布関数、G(x) は仮説分布の累積分布関数です。

「大きい」累積分布関数についての片側検定では、データの母集団の累積分布関数が仮説累積分布関数よりも大きいという対立仮説に対して帰無仮説を検定します。検定統計量は、x から計算した経験的累積分布関数から仮説累積分布関数を減算した値が最大になる量です。

D*=maxx(F^(x)G(x)).

「小さい」累積分布関数に対する片側検定では、データの母集団の累積分布関数が仮説累積分布関数より小さいという対立仮説に対して帰無仮説を検定します。検定統計量は、x から計算した経験的累積分布関数を仮説累積分布関数から減算した値が最大になる量です。

D*=maxx(G(x)F^(x)).

kstest は、近似の公式を使用するか、テーブルの内挿により棄却限界値 cv を計算します。この式とテーブルでは、両側検定については 0.01alpha0.2、片側検定については 0.005alpha0.1 という範囲がカバーされています。alpha がこの範囲に含まれていない場合、cv には NaN が返されます。

アルゴリズム

kstest は、検定統計量 ksstat を棄却限界値 cv と比較するのではなく、p 値 p を有意水準 Alpha と比較して、帰無仮説を棄却することを決定します。cv は近似であるため、ksstatcv と比較すると、pAlpha と比較した場合とは結果が異なる可能性があります。

参照

[1] Massey, F. J. “The Kolmogorov-Smirnov Test for Goodness of Fit.” Journal of the American Statistical Association. Vol. 46, No. 253, 1951, pp. 68–78.

[2] Miller, L. H. “Table of Percentage Points of Kolmogorov Statistics.” Journal of the American Statistical Association. Vol. 51, No. 273, 1956, pp. 111–121.

[3] Marsaglia, G., W. Tsang, and J. Wang. “Evaluating Kolmogorov’s Distribution.” Journal of Statistical Software. Vol. 8, Issue 18, 2003.

バージョン履歴

R2006a より前に導入