※随時更新
正規分布、標準正規分布
scipy.stats.norm
scipy.stats.norm.ppf
用途:100p%点を求め棄却域を調べるとき
ss.norm(0,1).ppf(0.95)
1.6448536269514722
scipy.stats.norm.cdf
Cumulative distribution function.
平均0、分散1と指定して標準正規分布を扱うことができる。
ss.norm(0,1).cdf(x=5.0)
1-ss.norm(0,1).cdf(x=5.0)でp値を求められる。
T分布
scipy.stats.t
scipy.stats.t.ppf
用途:100p%点の確認
print(ss.t(9).ppf(0.95))
scipy.stats.t.cdf(vals,df=)
用途:累積確率の確認
1 - ss.t.cdf(x=1.5811388300841895,df=9)
χ二乗分布
scipy.stats.chi2(df)
scipy.stats.chi2(df).ppf(q, df, loc=0, scale=1)
自由度nのχ二乗分布のパーセント点の出し方
1,2どっちの書き方でも同じ
1
ss.chi2(9).ppf(0.025) # 2.7003894999803584
2
from scipy.stats import chi2
df=1
# 下側から自由度1のχ二乗分布の累積確立95%点を求めた
chi2.ppf(0.95, df)
# 下側から自由度10のχ二乗分布の累積確立95%点を求めた
df=10
chi2.ppf(0.95, df)
>>> 18.307038053275146
scipy.stats.chi2.pdf(x、df、loc = 0、scale = 1)
確率密度関数
np.linspace使ってパーセント点の配列を求めて、それらのパーセント点に対して確率関数を出す。ちょっとだけめんどくさい。
fig, ax = plt.subplots(1, 1)
df = 10
x = np.linspace(chi2.ppf(0.01, df),
chi2.ppf(0.99, df), 100)
ax.plot(x, chi2.pdf(x, df),
'r-', alpha=0.7, label='chi2 pdf') # alpha =
F分布
scipy.stats.f.pdf(x, dfn, dfd, loc=0, scale=1) # Probability density function.
用途:確率密度関数を確認したい時など
import scipy.stats as ss
d1 = 3
d2 = 100
x = np.linspace(-1,5, 1000)
plt.plot(x, ss.f(d1,d2).pdf(x), color="black")
plt.show()
scipy.stats.f.cdf(x, dfn, dfd, loc=0, scale=1) # Cumulative distribution function.
用途:自由度m,nのF分布に従う統計量F値のp値を確認したい時等
Cumulativeなので、F値以下が起こる確率の累積を計算する。なのでp値を求めたいときは
$$1-p(X≤F)$$
pval=1- ss.f.cdf(x = 10, dfn=3, dfd=6) #x=p値,f値なのに引数がxなのが紛らわしいので注意
print(pval)
0.00947164803029854