ジョンソンのSU分布
ジョンソンの分布っていうのは,こんな感じ。PDFとかCDFとか。
Johnson's SU-distribution - Wikipedia, the free encyclopedia
この分布は4パラミターある。
- γ
- δ
- ξ
- λ
このように贅沢な関数なので,やはり表現力は高い。
Rでは,SuppDistsパッケージなどでこれを扱える。
https://cran.r-project.org/web/packages/SuppDists/SuppDists.pdf
たとえば,微妙に歪んだこんな分布を考える(ex-Gaussian分布から乱数生成)。
#psychパッケージとretimesパッケージをつかう library(psych) library(retimes) #乱数を生成 d<-rexgauss(1000,3000,200,1000) #モーメントを確認 describe(d) #ヒストグラムで可視化 hist(d,col="lightgray")
#ジョンソン分布へフィットさせてパラミタを得る param<-JohnsonFit(d) #パラミタを確認 param #このパラミタにもとづいて乱数を生成 s<-rJohnson(1000,param) #この乱数をヒストグラムで可視化 hist(s,col="lightgray")
ここからex-Gaussianのパラミタを得てみる。
timefit(s)
私の場合だと,μ = 2998,σ = 219,τ = 976で,正解がそれぞれ3000, 200, 1000だから,まあいい感じだった。
確率密度関数を求めるには,dJohnsonっていう関数を使う。
x<-seq(0,10000,.01) plot(x,dJohnson(x,param),type="l",ylab="Probability",ylim=c(0,.001)) lines(x,dexgauss(x,3000,200,1000),type="l",ylab="Probability",col=2)
赤はex-Gaussian分布の関数。
いい感じ。