1.1. はじめに

ほとんどすべての人が知っている最初の方法は、ヒストグラムです。 ヒストグラムは、変数の分布を示すデータの可視化です。 データセット内の値ごとの出現頻度、つまり分布とは何かを教えてくれます。

ヒストグラムは、単一の変数の分布をすばやく視覚化するのに最適な方法です。 解釈

下の図では、2つのヒストグラムが正規分布と非正規分布を示しています。

  • 左側では、サンプル分布(グレー)は理論上のベル曲線分布(赤線)からほとんど外れていません。
  • 右側では、ヒストグラムの形状がかなり異なっており、これが正規分布ではないことが直接わかります。

正規分布からの偏差が目視できるほど明白な場合もある

1.3. 実装

ヒストグラムはpythonで次のように簡単に作成できます。

Creating a histogram using pandas in python

1.4. 結論

ヒストグラムは、単一の変数の分布をすばやく視覚化するのに最適な方法です

2.1. はじめに

箱ひげ図は、非正規標本を検出するために使用できる別の可視化手法です。 箱ひげ図は、変数の5つの数値要約をプロットします:最小値、第1四分位値、中央値、第3四分位値、最大値。

箱ひげ図は、複数の変数の分布を同時に視覚化する素晴らしい方法です。

2.2 解釈

多数の箱ひげ図を隣接して表示できることから箱ひげ図は優れた視覚化の技法と言えます。 変数のこの非常に速い概要を持つことは、分布のアイデアを提供し、「ボーナス」として、さらなる分析に役立つ完全な 5 つの数字の要約を得ることができます。

  • 分布は対称か(正規分布のように)?

正規分布(左)、均一分布(中)、指数分布(右)ボックスプロットと正規ベル曲線

2.3. 実装

ボックスプロットは、次のようにpythonで簡単に実装できます。

Creating a boxplot using pandas in python

2.4. 結論

ボックスプロットは、複数の変数の分布を同時に可視化するのに最適な方法ですが、幅/点数の偏差はボックスプロットでは識別しにくいです。

3.1. はじめに

QQプロットでは、これまで説明した方法よりも少し理解が必要なため、より本格的な内容に入り始めています。

QQプロットはQuantile vs Quantile Plotの略で、まさにその通り、変数の実際の分位値に対して理論的な分位値をプロットします。

QQプロットはヒストグラムやボックスプロットよりはるかによく正規分布の偏差を見ることができます。 解釈

変数が正規分布に従う場合、変数の分位数が「理論的な」正規分位数と完全に一致する必要があります:QQプロット上の直線は正規分布であることを示します。

QQプロット

図に見られるように、正規分布上の点は直線に並び、他の分布は強く外れていることが分かります。

  • 一様分布は両極端(非常に高い値と非常に低い値)で観測値が多すぎます。
  • 指数分布は低い値で観測値が多すぎるが、高い値では少なすぎる。

実際には、より顕著ではないが似た形のものをよく見かけます。 尾部での過不足は正規性を疑わせるもので、その場合は以下で説明する仮説検定の1つを使用する必要があります。 実装

QQプロットの実装は、pythonのstatsmodels apiを使って以下のように行うことができます:

Creating a QQ Plot using statsmodels

3.4. 結論

QQ プロットは、ヒストグラムやボックスプロットよりも正規分布からの逸脱をよく見ることができます。

Kolmogorov Smirnov テスト

QQプロットと他の可視化テクニックが決定的ではない場合、統計的推測(仮説検定)は、変数が正規分布から著しく逸脱しているかどうかについて、より客観的に答えを与えてくれるでしょう。

仮説検定の使い方やタイミングに迷ったら、こちらの記事で仮説検定について直感的に説明されています。

コルモゴロフ・スミルノフ検定は経験分布と理論分布の間の距離を計算し、それらの距離の集合の上澄みとして検定統計量を定義する。

この利点は、正規分布だけでなく、任意の分布の比較に同じアプローチを使用できることである。

4.2.正規分布以外の分布にも使用できる。 解釈

KS検定の検定統計量はKolmogorov Smirnov統計量であり、帰無仮説が真であればKolmogorov分布に従う。

観測データが完全に正規分布に従っていれば、KS統計量の値は0になる。 KS検定のP値が0.05より大きければ正規分布とする

  • KS検定のP値が0.05より小さければ正規分布としない
  • 4.3. 実装

    Scipyを使ったPythonでのKS検定は、以下のように実装できます。 KS統計量とそのP値を返します。

    Applying the KS Test in Python using Scipy

    4.4.KS検定を実装する。 結論

    KS検定はよく知られていますが、あまり検出力がありません。 これは、帰無仮説を棄却するために、多くのオブザベーションが必要であることを意味します。 また外れ値にも敏感である。

    Lilliefors test

    Lilliefors検定はKS検定に強く基づいたものである。 違いは、Lilliefors検定では、母集団分布の平均と分散がユーザーによって事前に指定されるのではなく、推定されることが認められている点です。

    このため、Lilliefors検定はKolmogorov分布ではなくLilliefors分布を使用します。

    Lillieforsにとって残念ながら、その検出力はShapiro Wilk検定よりまだ低くなっています。 解釈

    • Lilliefors検定のP値が0.05より大きければ正規分布とする
    • Lilliefors検定のP値が0.05より小さければ正規分布としない

    5.3. 実装

    statsmodelsのLilliefors検定の実装では、以下のようにLillieforsの検定統計量の値とP-Valueを返します。

    Applying the Lilliefors test using statsmodels

    5.4. 結論

    LillieforsはKS検定より改善されているが、それでもShapiro Wilk検定より検出力が低い。

    Shapiro Wilk検定

    Shapiro Wilk検定は正規分布について検定する際に最も強力な検定である。 これは正規分布のために特別に開発されたもので、例えばKS検定のように他の分布に対する検定には使用できません。

    Shapiro Wilk検定は正規分布の検定で最も強力な検定です。 解釈

    • シャピロ・ウィルク検定のP値が0.05より大きければ正規分布とする
    • シャピロ・ウィルク検定のP値が0.05より小さければ正規分布としない

    6.3. 実装方法

    ShapiroWilk検定は次のように実装できます。 Wという検定統計量とP値を返します。

    Attention: for N > 5000 the W test statistic is accurate but the p-value may not be.

    Applying the Shapiro Wilk test using statsmodels in Python

    6.4. 結論

    ShapiroWilk検定は正規分布の検定を行う際に最も強力な検定です。 この検定は必ず使用すべきです。

    結論 – どのアプローチを使用するか!

    正規分布を素早く視覚的に識別するには、見るべき変数が1つだけの場合はQQプロットを、多数ある場合は箱ひげ図を使用してください。 仮説を確認するための統計的検定として、Shapiro Wilk 検定を使用します。 これは最も強力な検定であり、決定的な論拠となるはずである。

    他の分布に対して検定する場合は、Shapiro Wilkは使用できず、例えばAnderson-Darling検定やKS検定などを使用する必要がある。

    コメントを残す

    メールアドレスが公開されることはありません。