AnderGray / ProbabilityBoundsAnalysis.jl

Probability bounds analysis in Julia
Other
25 stars 1 forks source link

Baggepinnen review #37

Closed AnderGray closed 2 years ago

AnderGray commented 2 years ago

This PR:

Part of the review for the JuliaCon proceedings: https://github.com/JuliaCon/proceedings-review/issues/96

codecov-commenter commented 2 years ago

Codecov Report

Merging #37 (100dfc1) into master (ea84e7a) will increase coverage by 35.52%. The diff coverage is 73.62%.

@@             Coverage Diff             @@
##           master      #37       +/-   ##
===========================================
+ Coverage   24.25%   59.78%   +35.52%     
===========================================
  Files           9       10        +1     
  Lines        2024     2688      +664     
===========================================
+ Hits          491     1607     +1116     
+ Misses       1533     1081      -452     
Impacted Files Coverage Δ
src/pbox/copulas.jl 59.95% <18.75%> (+55.02%) :arrow_up:
src/pbox/arithmetic.jl 39.70% <31.57%> (+12.18%) :arrow_up:
src/pbox/plots.jl 68.10% <50.00%> (+68.10%) :arrow_up:
src/pbox/distributions.jl 71.06% <81.25%> (+40.15%) :arrow_up:
src/pbox/comparisons.jl 87.23% <87.23%> (ø)
src/ProbabilityBoundsAnalysis.jl 88.88% <100.00%> (+22.22%) :arrow_up:
src/pbox/special.jl 58.82% <100.00%> (+43.54%) :arrow_up:
src/pbox/NormalDistribution.jl 59.52% <0.00%> (+4.76%) :arrow_up:
... and 5 more

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 ea84e7a...100dfc1. Read the comment docs.

AnderGray commented 2 years ago

@baggepinnen apologies for the amount of changes/commits I've done as a part of the review. Most of the packages functionality should be now tested. The other main request about comparisons between p-boxes has been added.

Note that unlike intervals, which always return Boolean values (perhaps erroneously), comparisons between p-boxes return interval probabilities, which give the probability that the imprecisely characterise random variables meet the condition.

More details found in the new docs

Example between p-box and scalars:

julia> X = uniform(0, 1)
julia> X <= 0.7
[0.695, 0.705001]

julia> X >= 0.4
[0.594999, 0.605]

julia> X = normal(interval(-0.5, 0.5), interval(1, 1.5))
julia> X >= 1
[0.0649999, 0.37]

julia> X = uniform(0, 1)
julia> X <= 2
true

julia> X >= 2
false

Example between p-box and intervals

julia> X = uniform(0, 1)
julia> Y = interval(0.7, 2)
julia> X <= Y
[0.695, 1]

julia> X >= Y
[0, 0.305]

julia> X <= interval(2, 3)
true

julia> X >= interval(2, 3)
false

Example between p-boxes

julia> X = uniform(0, 1)
julia> Y = uniform(0.5, 1.5)
julia> X <= Y
[0.5, 1]

julia> X <= uniform(2, 3)
true

julia> X >= uniform(2, 3)
false