正規データ

Pythonで学ぶ実験計画法

James Chapman

Curriculum Manager, DataCamp

正規分布

 

  • おなじみの「ベル型」
  • zスコアに関連

$$ {z} = \frac{x-\mu}{\sigma}$$

  • 平均=0、標準偏差=1
    • 「平均から何標準偏差離れているか」
    • 「この得点の確率は?」

 

典型的なベル型の曲線。白地に青い曲線。

Pythonで学ぶ実験計画法

正規データと統計検定

 

  • パラメトリック検定に必須
  • ノンパラメトリック検定: 正規性を仮定しない

 

典型的なベル型の曲線。白地に青い曲線。

Pythonで学ぶ実験計画法

正規分布、Z、α

 

  • 有意水準($\alpha$)と密接に関連
  • p値を$\alpha$と比較
  • 第I種過誤の確率

 

正規分布の両端の小領域が黒で塗られている図

Pythonで学ぶ実験計画法

正規データの可視化

 

sns.displot(data=salaries,
            x='salary',
            kind="kde")
plt.show()

 

通常より背が高く幅が狭いが、典型的なベル型の分布

Pythonで学ぶ実験計画法

QQプロット

QQプロット: データを特定の分布と比較

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • 理想: 点が直線に密着
  • 悪例: 端で弓なりに外れる

 

45度の基準線に沿って点がほぼ密着しているQQプロット

中央は線に沿うが両端で内側に曲がる点列のQQプロット

Pythonで学ぶ実験計画法

正規性の検定

 

  • Shapiro–Wilk(小規模データ向け)
  • D'Agostinoの$K^2$(尖度歪度を使用)
  • Anderson–Darling(閾値リストを返す)

 

$H_0$ = 「データは正規分布に従う」

Pythonで学ぶ実験計画法

Shapiro–Wilk検定

 

from scipy.stats import shapiro
alpha = 0.05

stat, p = shapiro(salaries['salary']) print(f"p: {round(p,4)} test stat: {round(stat,4)}")
p: 0.8293 test stat: 0.9956
  • p > alpha
    • $H_0$を棄却しない → 正規的とみなせる
Pythonで学ぶ実験計画法

Anderson–Darling検定

from scipy.stats import anderson
result = anderson(x=salaries['salary'], dist="norm")
print(round(result.statistic,4))
print(result.significance_level)
print(result.critical_values)
0.2748
[15.  10.   5.   2.5  1. ]
[0.572 0.651 0.781 0.911 1.084]
  • 0.2748 < [0.572 0.651 0.781 0.911 1.084]
    • $H_0$を棄却しない → 正規的とみなせる
Pythonで学ぶ実験計画法

練習しましょう!

Pythonで学ぶ実験計画法

Preparing Video For Download...