1: 2019-06-23 (日) 23:47:38 njf[5] [6] [7] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Pythonでカイ二乗分布の値を求めるなら、SciPyのscipy.stats.chi2が利用できます。 | ||
+ | カイ二乗分布はカイ二乗検定などでよく使います。しかし、検定自体はPythonならscipy.stats.chi2_contingencyなどで行えますし、他の統計ソフトでも実装されているので、そちらを使うべきです。 | ||
+ | |||
+ | しかし、ちょっと分布の値を参照してみたい場合などには便利です。 | ||
+ | |||
+ | 横軸の値から下側確率を求めるにはcdfを使います。 | ||
+ | |||
+ | from scipy.stats import chi2 | ||
+ | |||
+ | chi2.cdf(x = 2,df = 4) | ||
+ | |||
+ | 結果 | ||
+ | 0.2642411176571154 | ||
+ | |||
+ | xが横軸の値、dfが次元です。 | ||
+ | |||
+ | 横軸の値から上側確率を求めるにはsfを使います。 | ||
+ | |||
+ | from scipy.stats import chi2 | ||
+ | |||
+ | chi2.sf(x = 2, df = 4) | ||
+ | |||
+ | 結果: | ||
+ | |||
+ | 0.7357588823428847 | ||
+ | |||
+ | 確率の定義より、上の結果を加えると1になります。 | ||
+ | |||
+ | そのため、例えば上側確率を求めるのに1 - chi2.cdfとしても良いですが、誤差がでることもあるようです。 | ||
+ | |||
+ | カイ二乗検定自体が通常近似的な物なのであまりないとは思いますが、ごくわずかな誤差が気になる場合は上記二つを使い分ける必要があります。 | ||
+ | |||
+ | そうでないなら、どちらかだけ覚えて1から引けば良いでしょう。 | ||
+ | |||
+ | カイ二乗検定でよく使う、累積確率から横軸の値を求めるのは、ppfを使います。 | ||
+ | |||
+ | from scipy.stats import chi2 | ||
+ | |||
+ | chi2.ppf(q = 0.95,df = 4) | ||
+ | |||
+ | 結果 | ||
+ | 9.487729036781154 |
(This host) = https://njf.jp