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

JOSS address editor comments #305

Merged
merged 13 commits into from
Apr 23, 2024
3 changes: 3 additions & 0 deletions examples/Sinusoid/calibrate.jl
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ p = plot(
legend = :bottomright,
xlims = (0, 6),
ylims = (-6, 10),
guidefontsize = 14,
tickfontsize = 12,
legendfontsize = 12,
)
vline!([theta_true[1]], color = :red, style = :dash, label = :false)
hline!([theta_true[2]], color = :red, style = :dash, label = :false)
Expand Down
46 changes: 38 additions & 8 deletions examples/Sinusoid/emulate.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# First, we load the packages we need:
using LinearAlgebra, Random

using Distributions, Plots
using Distributions, Plots, Plots.PlotMeasures
using JLD2

using CalibrateEmulateSample
Expand Down Expand Up @@ -179,7 +179,7 @@ p2 = contour(
ylabel = "Vertical Shift",
title = "True Sinusoid Mean",
)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(p1, p2, size = (600, 300), layout = (1, 2), guidefontsize = 12, tickfontsize = 10, legendfontsize = 10)
savefig(p, joinpath(data_save_directory, "sinusoid_groundtruth_contours.png"))
# The first panel shows how the range varies with respect to the two parameters in the Gaussian process
# emulator. The contours show the range is mostly dependent on the amplitude, with little variation with
Expand Down Expand Up @@ -212,7 +212,17 @@ p2 = contour(
title = "GP Sinusoid Mean",
)
plot!(inputs[1, :], inputs[2, :]; seriestype = :scatter, zcolor = outputs[2, :], label = :false)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(
p1,
p2,
right_margin = 3mm,
bottom_margin = 3mm,
size = (600, 300),
layout = (1, 2),
guidefontsize = 12,
tickfontsize = 10,
legendfontsize = 10,
)
savefig(p, joinpath(data_save_directory, "sinusoid_GP_emulator_contours.png"))

# Plot RF emulator contours
Expand All @@ -238,7 +248,17 @@ p2 = contour(
title = "RF Sinusoid Mean",
)
plot!(inputs[1, :], inputs[2, :]; seriestype = :scatter, zcolor = outputs[2, :], label = :false)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(
p1,
p2,
right_margin = 3mm,
bottom_margin = 3mm,
size = (600, 300),
layout = (1, 2),
guidefontsize = 12,
tickfontsize = 10,
legendfontsize = 10,
)
savefig(p, joinpath(data_save_directory, "sinusoid_RF_emulator_contours.png"))

# Both the GP and RF emulator give similar results to the ground truth G(θ), indicating they are correctly
Expand Down Expand Up @@ -272,7 +292,17 @@ p2 = contour(
ylabel = "Vertical Shift",
title = "GP 1σ in Sinusoid Mean",
)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(
p1,
p2,
size = (600, 300),
layout = (1, 2),
right_margin = 3mm,
bottom_margin = 3mm,
guidefontsize = 12,
tickfontsize = 10,
legendfontsize = 10,
)
savefig(p, joinpath(data_save_directory, "sinusoid_GP_emulator_std_contours.png"))


Expand All @@ -299,7 +329,7 @@ p2 = contour(
ylabel = "Vertical Shift",
title = "RF 1σ in Sinusoid Mean",
)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(p1, p2, size = (600, 300), layout = (1, 2), guidefontsize = 12, tickfontsize = 10, legendfontsize = 10)
savefig(p, joinpath(data_save_directory, "sinusoid_RF_emulator_std_contours.png"))
# The GP and RF uncertainty predictions are similar and show lower uncertainties around the region of interest
# where we have more training points.
Expand Down Expand Up @@ -331,7 +361,7 @@ p2 = contour(
ylabel = "Vertical Shift",
title = "GP error in Sinusoid Mean",
)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(p1, p2, size = (600, 300), layout = (1, 2), guidefontsize = 12, tickfontsize = 10, legendfontsize = 10)
savefig(p, joinpath(data_save_directory, "sinusoid_GP_errors_contours.png"))

rf_diff_grid = abs.(rf_grid - g_true_grid)
Expand All @@ -357,7 +387,7 @@ p2 = contour(
ylabel = "Vertical Shift",
title = "RF error in Sinusoid Mean",
)
p = plot(p1, p2, size = (600, 300), layout = (1, 2))
p = plot(p1, p2, size = (600, 300), layout = (1, 2), guidefontsize = 12, tickfontsize = 10, legendfontsize = 10)
savefig(p, joinpath(data_save_directory, "sinusoid_RF_errors_contours.png"))

# Here, we want the emulator to show the low errors in the region around the true parameter values near θ = (3, 6),
Expand Down
12 changes: 6 additions & 6 deletions examples/Sinusoid/sample.jl
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,9 @@ plot_all = plot(
layout = layout,
size = (600, 600),
legend = :true,
guidefontsize = 8,
tickfontsize = 6,
legendfontsize = 6,
guidefontsize = 14,
tickfontsize = 12,
legendfontsize = 12,
)

savefig(plot_all, joinpath(data_save_directory, "sinusoid_MCMC_hist_GP.png"))
Expand Down Expand Up @@ -293,9 +293,9 @@ plot_all = plot(
layout = layout,
size = (600, 600),
legend = :true,
guidefontsize = 8,
tickfontsize = 6,
legendfontsize = 6,
guidefontsize = 14,
tickfontsize = 12,
legendfontsize = 12,
)

savefig(plot_all, joinpath(data_save_directory, "sinusoid_MCMC_hist_RF.png"))
Expand Down
10 changes: 9 additions & 1 deletion examples/Sinusoid/sinusoid_setup.jl
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,15 @@ function generate_obs(amplitude_true, vert_shift_true, Γ; rng = Random.GLOBAL_R
# Generate the "true" signal for these parameters
signal_true = model(amplitude_true, vert_shift_true; rng = rng)
# Plot
p = plot(signal_true, color = :black, linewidth = 3, label = "True signal")
p = plot(
signal_true,
color = :black,
linewidth = 3,
label = "True signal",
guidefontsize = 14,
tickfontsize = 12,
legendfontsize = 12,
)

# We will observe properties of the signal that inform us about the amplitude and vertical
# position. These properties will be the range (the difference between the maximum and the minimum),
Expand Down
68 changes: 34 additions & 34 deletions paper.bib
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
@article{julia,
doi = {10.1137/141000671},
url = {https://doi.org/10.1137%2F141000671},
year = 2017,
month = {jan},
publisher = {Society for Industrial {\&} Applied Mathematics ({SIAM})},
Expand All @@ -17,7 +16,8 @@ @book{Sisson:2018
isbn = {978-1-351-64346-7},
publisher = {CRC Press},
author = {Sisson, Scott A. and Fan, Yanan and Beaumont, Mark},
year = {2018}
year = {2018},
doi = {10.1201/9781315117195}
}

@incollection{Nott:2018,
Expand All @@ -29,6 +29,7 @@ @incollection{Nott:2018
pages = {211-241},
year = {2018},
publisher = {CRC Press},
doi = {10.1201/9781315117195-8}
}

@article{Cleary:2021,
Expand All @@ -38,14 +39,12 @@ @article{Cleary:2021
pages = {109716},
year = {2021},
issn = {0021-9991},
doi = {https://doi.org/10.1016/j.jcp.2020.109716},
url = {https://www.sciencedirect.com/science/article/pii/S0021999120304903},
doi = {10.1016/j.jcp.2020.109716},
author = {Emmet Cleary and Alfredo Garbuno-Inigo and Shiwei Lan and Tapio Schneider and Andrew M. Stuart},
}

@article{Dunbar:2022a,
doi = {10.21105/joss.04869},
url = {https://doi.org/10.21105/joss.04869},
year = {2022},
publisher = {The Open Journal},
volume = {7},
Expand All @@ -72,7 +71,7 @@ @mastersthesis{Hillier:2022
school = {Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science},
author = {Adeline Hillier},
year = {2022},
url = {https://hdl.handle.net/1721.1/145140}
doi = {1721.1/145140}
}


Expand All @@ -82,7 +81,8 @@ @book{Rasmussen:2006
volume={2},
number={3},
year={2006},
publisher={MIT press Cambridge, MA}
publisher={MIT press Cambridge, MA},
doi = {10.1142/S0129065704001899}
}

@article{Iglesias:2013,
Expand All @@ -93,7 +93,8 @@ @article{Iglesias:2013
number={4},
pages={045001},
year={2013},
publisher={IOP Publishing}
publisher={IOP Publishing},
doi={10.1088/0266-5611/29/4/045001}
}

@inproceedings{Rahimi:2007,
Expand All @@ -104,7 +105,7 @@ @inproceedings{Rahimi:2007
number={4},
pages={5},
year={2007},
organization={Citeseer}
url = {https://proceedings.neurips.cc/paper_files/paper/2007/file/013a006f03dbc5392effeb8f18fda755-Paper.pdf},
}

@inproceedings{Rahimi:2008,
Expand All @@ -113,7 +114,8 @@ @inproceedings{Rahimi:2008
booktitle={2008 46th Annual Allerton Conference on Communication, Control, and Computing},
pages={555--561},
year={2008},
organization={IEEE}
organization={IEEE},
doi = {10.1109/allerton.2008.4797607}
}

@article{Liu:2022,
Expand All @@ -138,21 +140,19 @@ @article{Cotter:2013
keywords = {algorithms, Bayesian inverse problems, Bayesian nonparametrics, Gaussian random field, MCMC},
year = {2013},
doi = {10.1214/13-STS421},
URL = {https://doi.org/10.1214/13-STS421}
}

@article{Sherlock:2010,
ISSN = {08834237},
URL = {http://www.jstor.org/stable/41058939},
author = {Chris Sherlock and Paul Fearnhead and Gareth O. Roberts},
journal = {Statistical Science},
number = {2},
pages = {172--190},
publisher = {Institute of Mathematical Statistics},
title = {The Random Walk Metropolis: Linking Theory and Practice Through a Case Study},
urldate = {2023-12-06},
volume = {25},
year = {2010}
year = {2010},
doi = {10.1214/10-sts327}
}

@article{Dunbar:2021,
Expand All @@ -163,7 +163,7 @@ @article{Dunbar:2021
number = {9},
pages = {e2020MS002454},
keywords = {uncertainty quantification, model calibration, machine learning, general circulation model, parametric uncertainty, inverse problem},
doi = {https://doi.org/10.1029/2020MS002454},
doi = {10.1029/2020MS002454},
year = {2021}
}

Expand All @@ -177,7 +177,7 @@ @article{Howland:2022
number = {3},
pages = {e2021MS002735},
keywords = {uncertainty quantification, Bayesian learning, GCM, seasonal cycle},
doi = {https://doi.org/10.1029/2021MS002735},
doi = {10.1029/2021MS002735},
year = {2022}
}

Expand All @@ -189,7 +189,7 @@ @article{Dunbar:2022b
number = {9},
pages = {e2022MS002997},
keywords = {optimal design, model calibration, uncertainty quantification, general circulation model, optimal placement, machine learning},
doi = {https://doi.org/10.1029/2022MS002997},
doi = {10.1029/2022MS002997},
year = {2022}
}

Expand All @@ -212,12 +212,12 @@ @article{Fairbrother:2022
journal={Journal of Statistical Software},
volume={102},
pages={1--36},
year={2022}
year={2022},
doi={10.18637/jss.v102.i01}
}

@article{Dixit:2022,
doi = {10.21105/joss.04561},
url = {https://doi.org/10.21105/joss.04561},
year = {2022},
publisher = {The Open Journal},
volume = {7},
Expand Down Expand Up @@ -248,14 +248,12 @@ @article{Tankhilevich:2020
month = {02},
issn = {1367-4803},
doi = {10.1093/bioinformatics/btaa078},
url = {https://doi.org/10.1093/bioinformatics/btaa078},
note = {btaa078},
eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btaa078/32353462/btaa078.pdf},
}

@article{Huang:2022,
doi = {10.1088/1361-6420/ac99fa},
url = {https://dx.doi.org/10.1088/1361-6420/ac99fa},
year = {2022},
month = {oct},
publisher = {IOP Publishing},
Expand All @@ -271,7 +269,6 @@ @article{Mansfield:2022
title = {Calibration and Uncertainty Quantification of a Gravity Wave Parameterization: A Case Study of the {Quasi}-{Biennial} {Oscillation} in an Intermediate Complexity Climate Model},
volume = {14},
issn = {1942-2466},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2022MS003245},
doi = {10.1029/2022MS003245},
language = {en},
number = {11},
Expand All @@ -283,8 +280,6 @@ @article{Mansfield:2022
@article{King:2023,
type = {preprint},
title = {Bayesian History Matching applied to the calibration of a gravity wave parameterization},
url = {https://essopenarchive.org/users/709594/articles/693996-bayesian-history-matching-applied-to-the-calibration-of-a-gravity-wave-parameterization?commit=613feab171223df3237efc786346eacd545733f1},
urldate = {2024-01-05},
institution = {Preprints},
author = {King, Robert C and Mansfield, Laura A and Sheshadri, Aditi},
month = dec,
Expand All @@ -301,12 +296,12 @@ @article{Metropolis:1953
number={6},
pages={1087--1092},
year={1953},
publisher={American Institute of Physics}
publisher={American Institute of Physics},
doi = {10.1063/1.1699114}
}

@article{Huggins:2023,
doi = {10.21105/joss.05428},
url = {https://doi.org/10.21105/joss.05428},
year = {2023},
publisher = {The Open Journal},
volume = {8},
Expand All @@ -317,13 +312,17 @@ @article{Huggins:2023
journal = {Journal of Open Source Software}
}

@article{Gammal:2022,
title={Fast and robust Bayesian Inference using Gaussian Processes with GPry},
author={Jonas El Gammal and Nils Schöneberg and Jesús Torrado and Christian Fidler},
year={2022},
eprint={2211.02045},
archivePrefix={arXiv},
primaryClass={astro-ph.CO}
@article{Gammal:2023,
doi = {10.1088/1475-7516/2023/10/021},
year = {2023},
month = {oct},
publisher = {IOP Publishing},
volume = {2023},
number = {10},
pages = {021},
author = {Jonas El Gammal and Nils Schöneberg and Jesús Torrado and Christian Fidler},
title = {Fast and robust Bayesian inference using Gaussian processes with GPry},
journal = {Journal of Cosmology and Astroparticle Physics},
}

@article{livingstone:2022,
Expand All @@ -334,7 +333,8 @@ @article{livingstone:2022
number={2},
pages={496--523},
year={2022},
publisher={Oxford University Press}
publisher={Oxford University Press},
doi={10.1111/rssb.12482}
}

@article{hoffman:2014,
Expand Down
Loading
Loading