2019年4月22日月曜日

[Python vs Julia] 二項分布

以前に,Pythonで二項分布のグラフをプロットする投稿をしました.今回は,同様の内容をJuliaで行ってみます.
二項分布の確率質量関数は

$\mathrm{Bin}(m | M, \mu) = {}_M C_m \mu^{m} (1 - \mu)^{M - m}$

です.
実装は以下のようになります.実装例はREPLで行った結果です.
julia> using Statistics

julia> using Distributions

julia> using StatsPlots

julia> M = 50
50

julia> mu = 0.5
0.5

julia> m = Binomial(M, mu)
Binomial{Float64}(n=50, p=0.5)

julia> scatter(m, leg=false, xlims = (0,50))



以下のようなグラフが描かれます.
この図を保存するには,以下のコマンドを実行します(この例ではファイル名をplot1として.png形式のファイルで保存)
julia> savefig("plot1.png")

また,参考までに平均と分散を求めると以下のようになります.

定義に基づいて計算した平均

julia> println("mean = ", M*mu)            
mean = 25.0



Statics.mean()関数を用いて計算した平均
julia> println("mean = ", Statistics.mean(m))
mean = 25.0

定義に基づいて計算した分散

julia> println("variance = ", M*mu*(1-mu))         
variance = 12.5



Statics.var()関数を用いて計算した平均
julia> println("variance = ", Statistics.var(m))   # Calculate using function
variance = 12.5



なお,上記の例のJupyter Notebookファイルは,GitHubBinomialDistribution.ipynbというファイルで見ることができます.

0 件のコメント :

コメントを投稿