Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add Ensemble Kalman Sampler #70

Merged
merged 2 commits into from
Aug 12, 2020
Merged

WIP: Add Ensemble Kalman Sampler #70

merged 2 commits into from
Aug 12, 2020

Conversation

bielim
Copy link
Contributor

@bielim bielim commented Jul 24, 2020

This PR adds a Julia implementation of an Ensemble Kalman Sampler. It supersedes PR #41.

@codecov
Copy link

codecov bot commented Jul 24, 2020

Codecov Report

Merging #70 into master will increase coverage by 0.73%.
The diff coverage is 94.31%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #70      +/-   ##
==========================================
+ Coverage   81.99%   82.72%   +0.73%     
==========================================
  Files           7        7              
  Lines         422      440      +18     
==========================================
+ Hits          346      364      +18     
  Misses         76       76              
Impacted Files Coverage Δ
src/CalibrateEmulateSample.jl 100.00% <ø> (ø)
src/Utilities.jl 80.76% <0.00%> (ø)
src/EKP.jl 98.80% <98.80%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0f3bb93...fa9e8e7. Read the comment docs.

@bielim
Copy link
Contributor Author

bielim commented Jul 24, 2020

@agarbuno: This PR is based on your EKS implementation. However, the EKS update needs some revision: First, it errored due to dimensional mismatches, which led me to look at the implicit equation implemented in lines 250-256 in src/EKP.jl. That equation seems to differ from equation (2.8a) in the Calibrate-Emulate-Sample paper, and so I didn't know how to correctly adjust it. Would be great if you could have a look at it!
The current implementation runs through (thanks to replacing the + in the beginning of line 253 with a .+), but it doesn't produce a correct EKS iteration (I ran the EKS test case implemented in test/EKP/runtests.jl and plotted the evolution of the particles in each iteration -- the particles are diverging away from the initial ensemble rather than being distributed in regions of high posterior probability).

@bielim bielim self-assigned this Jul 24, 2020
@bielim bielim added the enhancement New feature or request label Jul 24, 2020
@bielim bielim requested review from agarbuno and odunbar July 24, 2020 00:29
bors bot added a commit that referenced this pull request Aug 12, 2020
76: Change code infrastructure to accommodate both EKI and EKS r=bielim a=bielim

This PR is an interim solution, to be superseded by PR #70 as soon as the EKS implementation has been finalized. It implements the new "EK infrastructure" with the abstract type `Process` that allows the user to choose between an EK `Sampler` and an EK `Inversion`, but since the correct ensemble update for the EK Sampler is not known yet (see discussion in the comment section of PR #70), an attempt to instantiate an EK `Sampler` is prohibited and will throw an error. 
The point of merging this PR before completion of the EK Sampler implementation is to not block the further development of the code base, which depends on the infrastructure introduced in this PR. 

Co-authored-by: Melanie Bieli <melanie.bieli@bluewin.ch>
@bors bors bot merged commit fa9e8e7 into master Aug 12, 2020
@bors bors bot deleted the mb/add_EKS branch August 12, 2020 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants