Pythonによる仮説検定まとめ



最近では、ビッグデータのような大量なデータが集められるようになりましたが、元々統計学は少ないデータから母集団の性質を推定するための手法と個人的には考えています。

サンプルデータが少ない場合、平均や分散といった統計量が、サンプルデータに偏ってしまい、母集団の真の統計量を正しく推定できない場合があります。

この真の統計量が、具体的に値はいくらだろうという仮説を立て、これが確率的に合っていそうかどうかを確かめる手法が仮説検定です。

以下に、Pythonにおける仮説検定の方法をまとめました。(随時更新もしていきます)

カイ二乗検定

  • 独立性の検定、一様性の検定、適合度検定など
  • 独立性の検定
    • 観測されたデータを水準ごとに分けた時に、その水準間において関係があるかどうかを調べる
  • 適合度検定
    • 観測されたデータを水準ごとに分けた時に、その水準ごとに仮定される確率(分布、割合)通りに観測値がばらついているかどうかを調べる
  • 一様性の検定
    • 観測されたデータを水準ごとに分けた時に、その水準間において観測値のばらつきに偏りがない(一様に分布されている)かどうかを調べる
  • 期待度数が1以下のものが1つでもあったり、5以下のものが20%あるような場合はフィッシャーの正確確率検定を用いる

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/chi-squared_test.ipynb

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

  • サンプルデータから、母集団に正規性があるかどうかを調べたい時に利用する検定
  • 同じく母集団の正規性を調べる手法として、シャピロ・ウィルク検定がある

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/kolmogorov-smirnov_test.ipynb

シャピロ・ウィルク検定

  • サンプルデータから、母集団に正規性があるかどうかを調べたい時に利用する検定
  • 同じく母集団の正規性を調べる手法として、コルモゴロフ・スミルノフ検定がある

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/shapiro-wilk_test.ipynb

フィッシャーの正確確率検定

  • 独立性の検定
    • 観測されたデータを水準ごとに分けた時に、その水準間において関係があるかどうかを調べる
  • 同じく独立性の検定の手法として、カイ二乗検定がある
    • カイ二乗検定では、カイ二乗統計量がカイ二乗分布に近似できることから導出されるが、データ数が少ないなどで近似が悪くなる場合には、こちらのフィッシャーの正確確率検定を用いることがある

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/fisher_exact_test.ipynb

2標本間の無相関検定

  • 2標本データから得られた相関係数を用いて、母相関(真の相関係数)が0であるかそうでないかを調べる手法
  • 母相関の区間推定については、フィッシャーの z 変換を用いることにより、信頼区間を求めることができる
    • 参考: Pythonによる区間推定まとめ
    • 無相関検定では、回帰モデルにおける回帰係数の検定の仕組みを用いて、検定統計量を導出できる点を利用している

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/non-correlation_test.ipynb

2標本のF検定

  • 2標本データから、それぞれの母分散に統計的に有意な差があるかどうかを調べたい時に利用する検定

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/two_samples_f_test.ipynb

ウィルコクソンの順位和検定

  • ノンパラメトリックな手法
  • 2標本データから、それぞれの母平均に統計的に有意な差があるかどうかを調べたい時に利用する検定
  • ノンパラメトリック検定であるため、正規性を仮定できない場合に有効
  • 順位にのみ注目するため、極端に小さい値は極端に大きい値(外れ値)を含んでいる場合にも強い手法(ロバストな手法)

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/two_samples_wilcoxon_test.ipynb

ウェルチのt検定

  • 2標本データから、それぞれの母平均に統計的に有意な差があるかどうかを調べたい時に利用する検定 
  • 母分散が等しい(等分散性)と仮定できる場合は、スチューデントのt検定を利用するが、それが仮定できない場合にこちらのウェルチのt検定を利用する

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/two_samples_welch_t_test.ipynb

スチューデントのt検定

  • 2標本データから、母平均に統計的に有意な差があるかどうかを調べたい時に利用する検定
  • 母分散に等分散性が仮定できない場合には、ウェルチのt検定を利用する

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/two_samples_t_test.ipynb

拡張ディッキー-フラー検定

  • ADF(Augmented Dickey-Fuller)検定
  • 時系列のサンプルデータ(確率過程の生成値)が、単位根過程(非定常過程)であるかどうかを調べたい時に利用する検定
  • 帰無仮説は「非定常過程である」となり、ADF検定では、非定常過程であることを棄却し、定常過程であるとみなしてよいかどうかを確認する

GitHub: https://github.com/Gin04gh/datascience/blob/master/samples_python/adf_test_statsmodels.ipynb