Main Content

chi2gof

カイ二乗適合度検定

説明

h = chi2gof(x) は、カイ二乗適合度検定を使用して、ベクトル x のデータが x で推定される平均と分散をもつ正規分布から取得されているという帰無仮説の検定の判定を返します。対立仮説は、データがそのような分布から取得されていないとします。検定で帰無仮説が有意水準 5% で棄却された場合、結果 h1、それ以外の場合は 0 になります。

h = chi2gof(x,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、カイ二乗適合度検定の検定の判定を返します。たとえば、正規分布以外の分布に対して検定を行ったり、検定の有意水準を変更したりできます。

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

[h,p,stats] = chi2gof(___) は検定統計量に関する情報を含む stats 構造体も返します。

すべて折りたたむ

標準正規確率分布オブジェクトを作成します。この分布の乱数を使用してデータ ベクトル x を作成します。

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

x のデータは正規分布の母集団から得られたデータであるという帰無仮説を検定します。

h = chi2gof(x)
h = 0

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

標準正規確率分布オブジェクトを作成します。この分布の乱数を使用してデータ ベクトル x を作成します。

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

x のデータは正規分布の母集団から得られたデータであるという帰無仮説を有意水準 1% で検定します。

[h,p] = chi2gof(x,'Alpha',0.01)
h = 0
p = 0.3775

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

電球の寿命の標本データを読み込みます。

load lightbulb

データ行列の 1 列目からベクトルを作成します。この列には時間で示された電球の寿命が含まれています。

x = lightbulb(:,1);

x のデータはワイブル分布の母集団から得られたデータであるという帰無仮説を検定します。fitdist を使用して、データから推定された A パラメーターと B パラメーターをもつ確率分布オブジェクトを作成します。

pd = fitdist(x,'Weibull');
h = chi2gof(x,'CDF',pd)
h = 1

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

データ プーリングに使用する 0 から 5 の番号が付けられた 6 個のビンを作成します。

bins = 0:5;

ビンごとの観測数を含むベクトルを作成し、観測の合計数を計算します。

obsCounts = [6 16 10 12 4 2];
n = sum(obsCounts);

データにポアソン確率分布オブジェクトを当てはめ、ビンごとの期待カウント数を計算します。転置演算子 .' を使用し、bins および obsCounts を行ベクトルから列ベクトルに変換します。

pd = fitdist(bins','Poisson','Frequency',obsCounts');
expCounts = n * pdf(pd,bins);

obsCounts のデータは、パラメーター lambda が lambdaHat に等しいポアソン分布から得られたデータであるという帰無仮説を検定します。

[h,p,st] = chi2gof(bins,'Ctrs',bins,...
                        'Frequency',obsCounts, ...
                        'Expected',expCounts,...
                        'NParams',1)
h = 0
p = 0.4654
st = struct with fields:
    chi2stat: 2.5550
          df: 3
       edges: [-0.5000 0.5000 1.5000 2.5000 3.5000 5.5000]
           O: [6 16 10 12 6]
           E: [7.0429 13.8041 13.5280 8.8383 6.0284]

戻り値 h = 0 は、chi2gof が既定の有意水準 5% で帰無仮説を棄却しないことを示します。ベクトル E は、帰無仮説の下でのビンごとの期待カウント数を含みます。ベクトル O は、ビンごとに観測されたカウント数を含みます。

確率分布関数 normcdf をカイ二乗適合度検定 (chi2gof) で関数ハンドルとして使用します。

入力ベクトル x に含まれている標本データが正規分布に由来しており、この正規分布ではパラメーター µ および σ がそれぞれ標本データの平均 (mean) および標準偏差 (std) に等しいという帰無仮説を検定します。

rng('default') % For reproducibility
x = normrnd(50,5,100,1);
h = chi2gof(x,'cdf',{@normcdf,mean(x),std(x)})
h = 0

h = 0 という結果は、5% という既定の有意水準で chi2gof が帰無仮説を棄却しなかったことを示しています。

入力引数

すべて折りたたむ

仮説検定の標本データ。ベクトルとして指定します。

名前と値の引数

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

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

例: 'NBins',8,'Alpha',0.01 は、データを 8 個のビンにプールし、有意水準 1% で仮説検定を行います。

データのプールに使用するビンの数。'NBins' と正の整数値で構成されるコンマ区切りのペアとして指定します。NBins に値を指定する場合は、Ctrs または Edges には値を指定しないでください。

例: 'NBins',8

データ型: single | double

ビンの中心です。'Ctrs' と各ビンの中心の値のベクトルで構成されるコンマ区切りのペアとして指定します。Ctrs に値を指定する場合は、NBins または Edges に値を指定しないでください。

例: 'Ctrs',[1 2 3 4 5]

データ型: single | double

ビンのエッジです。'Edges' と各ビンのエッジの値のベクトルで構成されるコンマ区切りのペアとして指定します。Edges に値を指定する場合は、NBins または Ctrs には値を指定しないでください。

例: 'Edges',[-2.5 -1.5 -0.5 0.5 1.5 2.5]

データ型: single | double

仮定された分布の累積分布関数です。'CDF' と、確率分布オブジェクト、関数ハンドルまたは cell 配列で構成されるコンマ区切りのペアとして指定します。

  • CDF が確率分布オブジェクトの場合、自由度はパラメーターが fitdist で推定されるか makedist で指定されるかの要因となります。

  • CDF が関数ハンドルの場合、分布関数は唯一の引数として x をとらなければなりません。

  • CDF が cell 配列の場合、その最初の要素は関数ハンドルでなければならず、残りの要素はセルごとに 1 つのパラメーター値でなければなりません。関数は最初の引数に x を取りますが、その他の引数には他のパラメーターを配列で指定しなければなりません。

CDF に値を指定する場合は、Expected に値を指定しないでください。

例: 'CDF',pd_object

データ型: single | double

ビンごとの期待カウント数です。'Expected' と非負値のベクトルで構成されるコンマ区切りのペアとして指定します。Expected が推定されたパラメーターに依存する場合は、NParams を使用して chi2gof が自由度を正しく計算できるようにします。Expected に値を指定する場合は、CDF に値を指定しないでください。

例: 'Expected',[19.1446 18.3789 12.3224 8.2432 4.1378]

データ型: single | double

帰無分布を記述するために使用される推定パラメーターの数。'NParams' と正の整数値で構成されるコンマ区切りのペアとして指定します。この値によって調整される検定の自由度は、累積分布関数または期待カウント数の計算に使用される推定パラメーターの数に基づいています。

NParams の既定値は、帰無分布の指定方法に依存します。

  • CDF を確率分布オブジェクトとして指定した場合は、NParams はこのオブジェクトの作成に使用された推定パラメーターの数と等しくなります。

  • CDF を関数名または関数ハンドルとして指定した場合は、NParams の既定値は 0 です。

  • CDF を cell 配列として指定した場合、NParams の既定値は配列内のパラメーター数です。

  • Expected を指定した場合、NParams の既定値は 0 です。

例: 'NParams',1

データ型: single | double

ビンごとの期待カウント数の最小値です。'EMin' と非負の整数値で構成されるコンマ区切りペアとして指定します。いずれかの裾の最も端のビンに含まれている期待値が EMin より小さい場合、それぞれの端のビンはカウントが少なくとも 5 になるまで隣接するビンと結合されます。内側のビンのカウントが 5 未満の場合、chi2gof は警告を表示しますが、内側のビンの結合は行いません。この場合、ビンの数をより少なくする、ビンの中心やエッジを使用するなどしてすべてのビンの期待カウント数を増加させる必要があります。ビンの結合を防止するには、EMin0 に指定します。

例: 'EMin',0

データ型: single | double

データ値の頻度です。'Frequency' と、ベクトル x と同じ長さの非負の整数値ベクトルで構成されるコンマ区切りのペアで指定します。

例: 'Frequency',[20 16 13 10 8]

データ型: single | double

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

例: 'Alpha',0.01

データ型: single | double

出力引数

すべて折りたたむ

1 または 0 として返される仮説検定の結果。

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

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

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

検定統計量。以下を含む構造体として返されます。

  • chi2stat — 検定統計量の値。

  • df — 検定に対する自由度。

  • edges — プール後のビンのエッジのベクトル。

  • O — ビンごとの観測数のベクトル。

  • E — ビンごとの期待カウント数のベクトル。

詳細

すべて折りたたむ

カイ二乗適合度検定

カイ二乗適合度検定は、データ標本が、そのデータから推定されるパラメーターをもつ指定された確率分布から得られたデータかどうかを判断します。

検定では、データをビンにグループ化し、これらのビンに対する観測カウント数と期待カウント数を計算し、カイ二乗検定統計量を次式で計算します。

χ2=i=1N(OiEi)2/Ei,

ここで Oi は観測カウント数、Ei は仮説の分布に基づく期待カウント数です。カウント数が十分大きければ、検定統計量は近似的なカイ二乗分布になります。

アルゴリズム

chi2gof は検定統計量の値を自由度が nbins - 1 - nparams に等しいカイ二乗分布と比較します。ここで nbins はデータ プールに使用されるビンの数、nparams は期待カウント数の決定に使用される推定パラメーターの数です。検定を実施するための十分な自由度がない場合、chi2gof は p 値に NaN を返します。

拡張機能

バージョン履歴

R2006a より前に導入