3
2

More than 1 year has passed since last update.

scipy.stats: シャピロ・ウィルク検定 shapiro

Posted at

scipy.stats: シャピロ・ウィルク検定 shapiro

シャピロ・ウィルク検定(正規性の検定)を行う。

shapiro(x)

帰無仮説 $H_0$: データは正規母集団から抽出されたものである
対立仮説 $H_1$: データは正規母集団から抽出されたものではない

from scipy.stats import shapiro
import numpy as np

1. 正規乱数

平均値=50,標準偏差=10 の 20 個の乱数を発生させ,シャピロ・ウィルク検定でこのデータが正規分布に従うか検定する。

np.random.seed(123)
x = np.random.normal(50, 10, 20)
shapiro(x)
ShapiroResult(statistic=0.9611964225769043, pvalue=0.5680192112922668)

$p \gt 0.05$ なので,有意水準 5% のもとでは,帰無仮説は棄却できない。結論は,「データは正規母集団から抽出されたものではないとはいえない」となる。

2. t 分布に従う乱数

2.1. 自由度=1 の場合

from scipy.stats import t
np.random.seed(123)
y = t.rvs(df=1, size=50)
shapiro(y)
ShapiroResult(statistic=0.25566935539245605, pvalue=1.693792811086406e-14)

自由度 1 の場合は,コーシー分布である。

$p \lt 0.05$ なので,有意水準 5% のもとでは,帰無仮説は棄却される。結論は,「データは正規母集団から抽出されたものではない」となる。

2.2. 自由度=10 の場合

$t$ 分布は,自由度が無限大の場合には正規分布になる。

np.random.seed(123)
z = t.rvs(df=10, size=100)
shapiro(z)
ShapiroResult(statistic=0.9897159337997437, pvalue=0.6416555643081665)

サンプルサイズが 100 の場合,自由度が 10 程度で正規分布と区別がつきにくくなる。

$p \gt 0.05$ なので,有意水準 5% のもとでは,帰無仮説は棄却できない。結論は,「データは正規母集団から抽出されたものではないとはいえない」となる。

3
2
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
3
2