From dc19333c481ff01ea9864bcaede97c4a93e5dbf0 Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 22:25:32 -0600 Subject: [PATCH 1/6] #1 updated to findfirst new behaviour (it now returns nothing if no index is found, previously it was zero) --- src/AdaptiveRejectionSampling.jl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/AdaptiveRejectionSampling.jl b/src/AdaptiveRejectionSampling.jl index 586657d..ad7ccb3 100644 --- a/src/AdaptiveRejectionSampling.jl +++ b/src/AdaptiveRejectionSampling.jl @@ -27,13 +27,13 @@ Finds the horizontal coordinate of the intersection between lines """ function intersection(l1::Line, l2::Line) @assert l1.slope != l2.slope "slopes should be different" - - (l2.intercept - l1.intercept) / (l2.slope - l1.slope) + - (l2.intercept - l1.intercept) / (l2.slope - l1.slope) end """ exp_integral(l::Line, x1::Float64, x2::Float64) Computes the integral - ``LaTeX \int_{x_1} ^ {x_2} \exp\{ax + b\} dx. `` + ``LaTeX \\int_{x_1} ^ {x_2} \\exp\\{ax + b\\} dx. `` The resulting value is the weight assigned to the segment [x1, x2] in the envelop """ function exp_integral(l::Line, x1::Float64, x2::Float64) @@ -50,8 +50,8 @@ over c_1 to c_k+1 is one, so that the envelop is interpreted as a density. """ mutable struct Envelop lines::Vector{Line} - cutpoints::Vector{Float64} - weights::Vector{Float64} + cutpoints::AbstractVector{Float64} + weights::AbstractVector{Float64} size::Int Envelop(lines::Vector{Line}, support::Tuple{Float64, Float64}) = begin @@ -161,7 +161,7 @@ interval in which f has positive value, and zero elsewhere. - `max_failed_factor::Float64 = 0.001`: level at which throw an error if one single sample has a rejection rate exceeding this value """ -mutable struct RejectionSampler +struct RejectionSampler objective::Objective envelop::Envelop max_segments::Int @@ -201,7 +201,7 @@ mutable struct RejectionSampler grid_lims = max(search_range[1], support[1]), min(search_range[2], support[2]) grid = grid_lims[1]:δ:grid_lims[2] i1, i2 = findfirst(grad.(grid) .> 0.), findfirst(grad.(grid) .< 0.) - @assert (i1 > 0) && (i2 > 0) "couldn't find initial points, please provide them or change `search_range`" + @assert (i1 != nothing) && (i2 != nothing) "couldn't find initial points, please provide them or change `search_range`" x1, x2 = grid[i1], grid[i2] RejectionSampler(f, support, (x1, x2); kwargs...) end From 34bd1cd9229f84fad4a2627b5ccfaed87b466a91 Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 22:47:38 -0600 Subject: [PATCH 2/6] #1 Base.Test -> Test --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index 85760f1..65305b7 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,7 +1,7 @@ import AdaptiveRejectionSampling ars = AdaptiveRejectionSampling -using Base.Test +using Test @testset "Line" begin @test ars.Line(2.0, 3) isa ars.Line From 45f3d8202728a600337ffa6148cac8277e044bdf Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 23:17:48 -0600 Subject: [PATCH 3/6] #1 changes to README for 1.0, and added elastic net example --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a6a4644..77d8350 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,10 @@ Let's verify the result ```julia -x = -linspace(-10.0, 10.0, 100) -envelop = eval_envelop.(sampler.envelop, x) -target = f.(x) +# Plot the results and compare to target distribution +x = range(-10.0, 10.0, length=100) +envelop = [eval_envelop(sampler.envelop, xi) for xi in x] +target = [f(xi) for xi in x] histogram(sim, normalize = true, label = "Histogram") plot!(x, [target envelop], width = 2, label = ["Normal(μ, σ)" "Envelop"]) @@ -56,12 +57,14 @@ plot!(x, [target envelop], width = 2, label = ["Normal(μ, σ)" "Envelop"]) f(x) = β^α * x^(α-1) * exp(-β*x) / gamma(α) support = (0.0, Inf) +# Build the sampler and simulate 10,000 samples sampler = RejectionSampler(f, support) @time sim = run_sampler!(sampler, 10000) -x = linspace(0.0, 5.0, 100) -envelop = eval_envelop.(sampler.envelop, x) -target = f.(x) +# Plot the results and compare to target distribution +x = range(0.0, 5.0, length=100) +envelop = [eval_envelop(sampler.envelop, xi) for xi in x] +target = [f(xi) for xi in x] histogram(sim, normalize = true, label = "Histogram") plot!(x, [target envelop], width = 2, label = ["Gamma(α, β)" "Envelop"]) @@ -71,8 +74,6 @@ plot!(x, [target envelop], width = 2, label = ["Gamma(α, β)" "Envelop"]) - - ![](img/example2.png) ## Truncated distributions and unknown normalisation constant @@ -85,12 +86,14 @@ We don't to provide an exact density--it will sample up to proportionality--and f(x) = β^α * x^(α-1) * exp(-β*x) / gamma(α) support = (1.0, 3.5) +# Build the sampler and simulate 10,000 samples sampler = RejectionSampler(f, support) @time sim = run_sampler!(sampler, 10000) -x = linspace(0.01, 8.0, 100) -envelop = eval_envelop.(sampler.envelop, x) -target = f.(x) +# Plot the results and compare to target distribution +x = range(0.01, 8.0, length=100) +envelop = [eval_envelop(sampler.envelop, xi) for xi in x] +target = [f(xi) for xi in x] histogram(sim, normalize = true, label = "histogram") plot!(x, [target envelop], width = 2, label = ["target density" "envelop"]) @@ -99,7 +102,33 @@ plot!(x, [target envelop], width = 2, label = ["target density" "envelop"]) 0.007766 seconds (181.82 k allocations: 3.024 MiB) +![](img/example3.png) + +## Elastic Net distribution + +The following example arises from elastic net regression and smoothing problems. In these cases, the integration constants are not available analytically. + +```julia +# Define function to be sampled +function f(x, μ, λ1, λ2) + δ = x - μ + nl = λ1 * abs(δ) + λ2 * δ^2 + return exp(-nl) +end +support = (-Inf, Inf) + +# Build the sampler and simulate 10,000 samples +μ, λ1, λ2 = 0.0, 2.0, 1.0 +sampler = RejectionSampler(x -> f(x, μ, λ1, λ2), support, max_segments = 5) +@time sim = run_sampler!(sampler, 10000); +# Plot the results and compare to target distribution +x = range(-2.3, 2.3, length=100) +envelop = [eval_envelop(sampler.envelop, xi) for xi in x] +target = [f(xi, μ, λ1, λ2) for xi in x] +histogram(sim, normalize = true, label = "histogram") +plot!(x, [target envelop], width = 2, label = ["target density" "envelop"]) +``` -![](img/example3.png) \ No newline at end of file +![](img/example4.png) From f3fd20d9abaeb6879f7ac302cb674f163d9ddb32 Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 23:18:26 -0600 Subject: [PATCH 4/6] #1 changes to README for 1.0, and added elastic net example --- img/example4.png | Bin 0 -> 25382 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/example4.png diff --git a/img/example4.png b/img/example4.png new file mode 100644 index 0000000000000000000000000000000000000000..19f3dd2815bb44d86ad20f75cb37c69bf5ab201b GIT binary patch literal 25382 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 alR10=1mzr*_3${i8FLeBW5Rh@#Qy-)e;3*S literal 0 HcmV?d00001 From afd5ed5e001ba689bae38c7e93a5d5820fadab42 Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 23:19:29 -0600 Subject: [PATCH 5/6] #1 change REQUIRE and travis to julia 0.7+ --- .travis.yml | 8 +++++--- REQUIRE | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 59e8261..20fbffe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,10 @@ language: julia julia: - - 0.6.0 - - 0.6.1 - - 0.6.2 + - 0.7.0 + - 1.0.0 + - 1.0.1 + - 1.0.2 + - 1.0.3 before_install: - pip install --user codecov after_success: diff --git a/REQUIRE b/REQUIRE index f3b2e9d..17b9d7e 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,3 +1,3 @@ -julia 0.6.0 -ForwardDiff 0.5.0 -StatsBase 0.19.2 +julia 0.7 +ForwardDiff 0.10.1 +StatsBase 0.26.0 From 685b7e3c564185c658a9e5ffc4c931779b6f2b02 Mon Sep 17 00:00:00 2001 From: mauriciogtec Date: Tue, 25 Dec 2018 23:33:12 -0600 Subject: [PATCH 6/6] #1 added badges for julia 0.7 and 1.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 77d8350..e77c552 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Build Status](https://travis-ci.org/mauriciogtec/AdaptiveRejectionSampling.jl.svg?branch=master)](https://travis-ci.org/mauriciogtec/AdaptiveRejectionSampling.jl) -[![AdaptiveRejectionSampling](http://pkg.julialang.org/badges/AdaptiveRejectionSampling_0.6.svg)](http://pkg.julialang.org/detail/AdaptiveRejectionSampling) [![AdaptiveRejectionSampling](http://pkg.julialang.org/badges/AdaptiveRejectionSampling_0.7.svg)](http://pkg.julialang.org/detail/AdaptiveRejectionSampling) +[![AdaptiveRejectionSampling](http://pkg.julialang.org/badges/AdaptiveRejectionSampling_1.0.svg)](http://pkg.julialang.org/detail/AdaptiveRejectionSampling) [![Coverage Status](https://coveralls.io/repos/github/mauriciogtec/AdaptiveRejectionSampling.jl/badge.svg?branch=master)](https://coveralls.io/github/mauriciogtec/AdaptiveRejectionSampling.jl?branch=master) [![codecov](https://codecov.io/gh/mauriciogtec/AdaptiveRejectionSampling.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/mauriciogtec/AdaptiveRejectionSampling.jl)