optimamodel / optima-tb

Optima TB-UCL model
GNU Lesser General Public License v3.0
2 stars 0 forks source link

Coverage cap #91

Closed davidkedz closed 7 years ago

davidkedz commented 7 years ago

Before this PR, multiple programs would add their impacts (i.e. transition rates) together, which, if excessive, would then be blindly truncated to 100% as part of core population size updates. However, this would not technically be appropriate if the maximum value of an impact parameter for one program was, e.g., 85%, while another program maxed out at 75% (i.e. when coverages reached 100% saturation). The combined rate should thus always be somewhere between 75% and 85% for excessive coverage, regardless of funding, not 160% or greater truncated to 100%. This commit thus tracks how 'excessive' coverage is for each program targeting a parameter, then renormalises impacts if the new excesses are over 100% of what can actually be covered.

critcortex commented 7 years ago

I'm convinced by your demo - and am happily impressed.

Will just go through and test now to confirm that it plays nicely on other branches :) For future, can you please provide a sample testing script so that I / others can run it?

davidkedz commented 7 years ago

Aye. I tried to think of how best to create a test script for this issue but, because we're not comparing two options within the same branch (i.e. we don't want to leave in a switch for coverage capping), it'd be difficult to compare without a very involved unit test. For now, hopefully test_belarus_progs.py should provide simple checks.

critcortex commented 7 years ago

@davidkedz , is there an updated version of test_belarus_progs.py in your system which has a more, uh, extensive printout for comparison? ;)

critcortex commented 7 years ago

Merged, and leaving branch in place for the moment.