Skip to content

Commit 12d7903

Browse files
committed
add Beta Bernoulli test, issue #11
1 parent 4f43287 commit 12d7903

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

src/distfunctions.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function add!(d::DirichletMultinomial, X::SparseVector{Int, Int})
8585
d.dirty = true
8686
end
8787

88-
function add!(d::BetaBernoulli, X::Integer)
88+
function add!(d::BetaBernoulli, X::Bool)
8989
d.successes += X
9090
d.n += 1
9191
end
@@ -261,8 +261,8 @@ function posteriorParameters(d::NormalNormal)
261261
end
262262

263263
function posteriorParameters(d::BetaBernoulli)
264-
α = d.α + d.successes
265-
β = d.β + d.n - d.successes
264+
α = d.α0 + d.successes
265+
β = d.β0 + d.n - d.successes
266266
return (α, β)
267267
end
268268

test/distributionTests.jl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,42 @@ using LinearAlgebra
9999
@test β == β0
100100
end
101101

102+
@testset "Beta-Bernoulli" begin
103+
104+
# prior
105+
α0 = 1.0
106+
β0 = 1.0
107+
108+
# data
109+
x = Bool[0, 1, 0, 0, 1]
110+
N = length(x)
111+
112+
# distribution
113+
d = BetaBernoulli(α0 = α0, β0 = β0)
114+
115+
# test prior
116+
(α, β) = BayesianNonparametrics.posteriorParameters(d)
117+
118+
@test α == α0
119+
@test β == β0
120+
121+
# add data
122+
BayesianNonparametrics.add!(d, x)
123+
124+
# test posterior paramters
125+
(α, β) = BayesianNonparametrics.posteriorParameters(d)
126+
127+
@test α == α0 + sum(x)
128+
@test β == β0 + (N - sum(x))
129+
130+
# remove data
131+
BayesianNonparametrics.remove!(d, x)
132+
133+
# test prior
134+
(α, β) = BayesianNonparametrics.posteriorParameters(d)
135+
136+
@test α == α0
137+
@test β == β0
138+
end
139+
102140
end

0 commit comments

Comments
 (0)