正規性の検定について
手法
- シャピロ-ウィルク検定(Shapiro-Wilk Test)
- n <= 50のサンプルでワークしやすい
- pが0.05以下で正規分布ではないと判定
- コルモゴロフ-スミルノフ検定(Kolmogorov-Smirnov Test)
- アンダーソン-ダーリング検定(Anderson-Darling Test)
シャピロ-ウィルク検定の例
import numpy as np
from scipy import stats
# データを生成します。ここでは正規分布からランダムに50個のデータを生成しています。
np.random.seed(0) # 結果を再現可能にするためにランダムシードを設定
data = np.random.normal(loc=0, scale=1, size=50)
# シャピロ-ウィルク検定を行います。
W, p = stats.shapiro(data)
print('W statistic:', W)
print('p-value:', p) # 0.8765420317649841なので正規分布を否定できない(≒正規分布である)
data = np.random.uniform(0, 1, 100)
# シャピロ-ウィルク検定を行います。
W, p = stats.shapiro(data)
print('W statistic:', W)
print('p-value:', p) # 0.0003419318236410618なので正規分布ではない