1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

カイ二乗適合度検定と独立性検定のmatlabでの計算

Last updated at Posted at 2022-07-03

適合度の検定と独立性の検定の違い

カイ二乗適合度の検定と独立性の検定の違いについては下記記事が明解である。
https://qiita.com/m1t0/items/bcfc5f6b2c8697fea326

適合度検定は、期待度数が他から与えられ、この期待度数をもつ母集団から観測値が得られた時に統計量がχ二乗分布に近似的に従うことを利用して検定を行う。独立性の検定では、二元分類の場合、つまり二種類の変数によって観測値が分類されるとき、変数が独立であるとの仮定のもと期待度数を計算し、この期待度数をもつ母集団から観測値が得られた時に統計量がχ二乗分布に近似的に従うことを利用して検定を行う。

matlabでの適合度検定

matlabには適合度検定を行う関数chi2gofが用意されている。
以下の例題について
https://bellcurve.jp/statistics/course/9494.html
matlabで計算した例を示す。

f = [55 22 16 7]; 
e = [40 30 20 10];
[~,p,st] = chi2gof([1:4],'ctrs',[1:4],'frequency',f,'expected',e,...
    'nparams',0,'alpha',0.05)

以下は実行結果です。

p =
    0.0238
st = 
  struct with fields:
    chi2stat: 9.4583
          df: 3
       edges: [1×5 double]
           O: [55 22 16 7]
           E: [40 30 20 10]

matlabでの独立性の検定

matlabにはクロス集計表から独立性の検定を行う関数はないが、独立性の仮定のもと期待度数を計算すれば、適合度検定を行う関数chi2gofで検定を行える。

以下の例題について、
https://bellcurve.jp/statistics/course/9496.html
matlabで計算する例を示す。

x = [55 22 16 7; 40 32 24 4];
f = reshape( x', 1, [] );
e = [];
freedom = (length( f ) - 1) - (size( x, 1 )-1)*(size(x,2)-1);
bins = 1:length(f);
for i = 1:size( x, 1 )
    for j = 1:size( x, 2 )
        e(end+1) = sum(x(:,j))*sum(x(i,:))/sum(x,'all');
    end
end
[~,p,st] = chi2gof(bins,'ctrs',bins,'frequency',f,'expected',e,...
    'nparams',freedom,'alpha',0.05)

以下は実行結果です。

p =
    0.0844
st = 
  struct with fields:
    chi2stat: 6.6385
          df: 3
       edges: [1×9 double]
           O: [1×8 double]
           E: [1×8 double]
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?