data-science Julia

ベルヌーイ分布の確立密度関数をJuliaで計算する

ベイズを学ぶために Udemy の講座で

【Python と Stan で学ぶ】仕組みが分かるベイズ統計学入門

の Python のコードを Julia で書き直して勉強している。

Python のコード

次のようにベルヌーイ分布で data から N_data 個取った場合の確立密度関数を計算する Python コードがあった

import from scipy.stats import bernoulli

p_a = 0.3
data = [0,1,0,0,1,1,1]
N_data = 2
likehood_a = bernoulli.pmf(data[:N_data], p_a)
likehood_a # array([ 0.7, 0.3])

Julia で書き直すとこんな感じになった

using Distributions

p_a = 0.3
data = [0,1,0,0,1,1,1]
N_data = 2
likehood_a = pdf(Bernoulli(p_a), data[1:N_data])
likehood_a
# 2-element Array{Float64,1}:
# 0.7
# 0.3

Julia でDistributions.jlには pmf メソッドは用意されていなかったので pdf を変わりに使っている。 Julia 贔屓な目で見てしまうが、それでも Julia の書き方のほうが Bernoulli(p_a) とか使うあたりがメソッドを汎用性高く使えている気がする。 もちろん書き方はライブラリにもよるのだけども。