Julia에서 타이어를 더 철저히 걷어내는 계속되는 오디세이에서 필자는 다시 베이지안 교과목 연습에 대한 솔루션을 다시 구현할 것입니다. 지난 번에 저는 Julia에서 복합 배포 도구를 발견하고 이번에는 그 사람들과 함께하기로했습니다. 그 부분은 잘 작동합니다 (제쳐두고, NormalInverseGamma
함수가 데이터 벡터가 아닌 충분한 통계를 얻지 못하거나 아직 구현되지 않은 경우)을 알지 못했습니다.Julia에서 문자열을 전달하고 함수 인수로 전달
여기 몇 가지 사후 분포의 샘플을 비교하고 싶습니다. 나는 모든 순열을 비교하고자하는 3 개의 후부 샘플을 가지고있다. 내 compare
함수에 인수해야한다 무엇을 바꾸어 넣 수 있어요 :
using Distributions
# Data, the expirgated versions
d1 = [2.11, 9.75, 13.88, 11.3, 8.93, 15.66, 16.38, 4.54, 8.86, 11.94, 12.47]
d2 = [0.29, 1.13, 6.52, 11.72, 6.54, 5.63, 14.59, 11.74, 9.12, 9.43]
d3 = [4.33, 7.77, 4.15, 5.64, 7.69, 5.04, 10.01, 13.43, 13.63, 9.9]
# mu=5, sigsq=4, nu=2, k=1
# think I got those in there right... docs were a bit terse
pri = NormalInverseGamma(5, 4, 2, 1)
post1 = posterior(pri, Normal, d1)
post1_samp = [rand(post1)[1] for i in 1:5000]
post2 = posterior(pri, Normal, d2)
post2_samp = [rand(post2)[1] for i in 1:5000]
post3 = posterior(pri, Normal, d3)
post3_samp = [rand(post2)[1] for i in 1:5000];
# Where I want my permutations passed in as arguments
compare(a, b, c) = mean((a .> b) & (b .> c))
#perm = permutations([post1_samp, post2_samp, post3_samp]) # variables?
#perm = permutations([:post1_samp, :post2_samp, :post3_samp]) # symbols?
perm = permutations(["post1_samp", "post2_samp", "post3_samp"]) # strings?
[x for x in perm] # looks like what I want; now how to feed to compare()?