正規分布やポワソン分布はいろんなパッケージが準備されてるけど、歪正規分布はなかなか見つからなかったので、
PASTEBIN
skew normal distribution in scipy
Skew Normal Distribution
などを参考にしてプロットしてみました。
歪正規分布(Skew Normal Distribution)
歪正規分布の確率密度関数はパラメータを使って以下のように定義されている。
ここで、
コードはPASTEBINに紹介されているように定義されてる関数をそのまま返すだけ。erf関数はscipy.special.erfを使う。
例えばこんな感じ。
from pylab import plot,show from numpy import exp,sqrt,pi,arange from scipy.special import erf # probability distribution function def pdf(x): return exp(-x*x/2.0)/sqrt(2*pi) # cumulative distribution function def cdf(x): return (1.0+erf(x/sqrt(2)))/2.0 # skew normal distribution def skew(x,mu,sigma,l): z= (x-mu)/sigma return 2/sigma * pdf(z) * cdf(l*x) # define distribution parameters mu=0.0 sigma=1.0 lam=4.0 # plot x=arange(-10,10,0.01) y=skew(x,mu,sigma,lam) plot(x,y) show()
プロット
パラメータをいじってみたらこんな感じ。簡単のため平均=0、標準偏差=1にしてあります。

こっちは標準偏差を変えてみた場合()
