MATLAB kstest() 関数

Ammar Ali 2024年2月15日
MATLAB kstest() 関数

このチュートリアルでは、MATLAB の kstest() 関数を使用して、データ セットが標準正規分布に由来するかどうか、または標準正規分布に由来しないかどうかを確認するために使用される、データ セットの帰無仮説の検定決定を見つける方法について説明します。 .

Matlab kstest() 関数

Matlab では、kstest() 関数を使用して、データ セットが標準正規分布に由来するかどうか、または標準正規分布に由来しないかどうかを確認するために使用されるデータ セットの帰無仮説の検定決定を見つけます。 分布。 kstest() 関数は、1 サンプルのコルモゴロフ スミルノフ アルゴリズムを使用して、テストの決定を見つけます。

kstest() 関数の基本的な構文は次のとおりです。

output = kstest(data)

上記の構文の出力は 0 または 1 です。出力が 0 の場合、関数は帰無仮説の検定決定を棄却しません。出力が 1 の場合、関数は検定の決定を棄却したことを意味します。

kstest() 関数のテスト判定を確認するために、試験の成績の例について説明しましょう。 標準正規分布と経験的累積分布を 1つのプロットにプロットして、それらを比較し、検定の決定を確認できます。

以下のコード例と出力を参照してください。

clc
clear

load examgrades
data = grades(:,1);
a = (data-75)/10;
testResult = kstest(a)

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

出力:

testResult =

  logical

   0

kstest 結果画像 1

上記のコードでは、既に Matlab にある examgrades データ セットを使用しました。 75 の平均と 10 の標準偏差を使用して、与えられた成績からデータ セットを作成し、それを kstest() 関数内に渡しました。この関数はテスト判定値として 0 を返しました。これは関数が 帰無仮説の検定決定を棄却しません。

上の出力画像を見ると、2つの分布が互いに接近していることがわかります。これは、テストの決定が正確であることを示しています。 cdfplot() 関数を使用してデータの累積分布関数をプロットし、normcdf() 関数を使用して特定のデータの正規分布を見つけました。

legend() 関数を使用してプロットに凡例を追加し、簡単に理解できるようにしました。 では、上記のコードで平均値を 75 から 85 に変更して、結果を確認してみましょう。

以下のコード例と出力を参照してください。

clc
clear

load examgrades
data = grades(:,1);
a = (data-85)/10;
testResult = kstest(a)

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

出力:

testResult =

  logical

   1

kstest 結果画像 2

上記のコードでは、kstest() 関数は 1 を返しました。これは、テストの決定が拒否されたことを意味します。上の図を使用して確認することもできます。これは、2つの分布が明確に示され、互いに等しくないことを示しています。

2 列の行列を使用してテストの決定を見つけながら、仮説の分布を指定することもできます。 最初の列にはデータが含まれ、2 番目の列には累積分布値または cdf が含まれます。

また、以下に示すように、CDF 引数を使用して、kstest() 関数に通知する必要があります。

output = kstest(data,'CDF',cdfOfData)

上記のコードでは、cdfOfData は 2 列の行列で、最初の列がデータで、2 番目の列がそのデータの cdf です。 cdf は、Matlab の cdf() 関数を使用して見つけることができます。

makedist() 関数を使用して作成できる確率分布オブジェクトを使用して、仮説分布を指定することもできます。 makedist() 関数の詳細については、この リンク を確認してください。

以下に示すように、CDF 引数を使用して、kstest() 関数内で分布オブジェクトを渡す必要があります。

output = kstest(data,'CDF',cdfObject)

Alpha 引数を使用し、その値を 0 から 1 に設定することで、さまざまな有意レベルでのテスト判定を見つけることもできます。kstest() 関数は、新しい引数 p も返します。 テスト決定。

Alpha 引数を使用した kstest() 関数の例を以下に示します。

[output, p] = kstest(data,'CDF',cdfObject, 'Alpha', 0.2)

Tail 引数を使用して、対立仮説を使用してテストの決定を確認することもできます。この引数では、kstest() 関数は対立仮説を支持して 0 または 1 を返します。 Tail 引数の値は、等しくなくても、大きくても小さくてもかまいません。

デフォルトでは、Tail 引数の値は 等しくない に設定されています。これは、母集団の cdf と仮説分布の cdf が等しくないことを意味します。 larger 値は、母集団の cdf を仮説分布の cdf より大きく設定し、smaller 値は母集団 cdf を仮説 cdf より小さく設定します。

Tail 引数を指定した kstest() 関数の例を以下に示します。

output = kstest(data, 'Tail', 'larger')

kstest() 関数は、以下の構文に示す合計 4つの引数を返します。

[h,p,ksstat,cv] = kstest(data)

kstest() 関数の最初の 2つの引数については既によく知っています。

ksstat 引数には、仮説検定の統計の非負のスケーラー値が含まれます。 cv 引数には、非負のスカラーである臨界値があります。

Matlab には kstest2() 関数も含まれています。これは、2つのサンプルのコルモゴロフ スミルノフ アルゴリズムを使用して 2つのベクトルの決定をテストするために使用されます。

kstest() 関数の詳細については、この リンク を確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - MATLAB Function