EnergyInnovation / eps-us

Energy Policy Simulator - United States
GNU General Public License v3.0
22 stars 7 forks source link

Convert "Quantization Size for Health Outcomes" to a .csv input variable, default to zero #257

Closed jrissman closed 1 year ago

jrissman commented 1 year ago

Quantizing health outcomes to integer values can give improper results for colored wedges in the avoided deaths wedge diagram when the number of avoided deaths is extremely small, as in this example from eps-iowa (where the line is correct, but the colored wedges don't always fill to the line):

IowaAvoidedDeaths

This is solved (and we get a clearer picture of what is really happening) when we don't quantize health outcomes, as in this screenshot:

IowaFixed

Removing this quantization works for most models, but in some models, it can introduce noise in the health outputs when no policies are enabled. One example is eps-oregon, which has very small differences in emissions between the BAU and Policy cases when no policies are enabled. Here's what the Minor Restricted Activity Days graph from eps-oregon looks like when health outcomes are not quantized:

MinorRestrictedActivityDaysNoise

Fortunately, QUANTUM can be given any value to quantize by, and if you give it zero, then it works as though the QUANTUM function isn’t there at all. That gives us a data-driven solution. We leave the QUANTUM function in the code, but we convert “Quantization Size for Health Outcomes” from a hard-coded value into an input variable read from a .csv file. The default value in the .csv file will be zero. But for a region like eps-oregon, the modeler can set the quantization size to whatever value is necessary to dampen the noise in that model. A value of 0.25 would be sufficient for eps-oregon.

jrissman commented 1 year ago

Completed in 7baa7e1