- BasicModel versus the other defined (more complex) models in the curvefit code
- What is controlling the range of the draws here? Unclear, and Indian data overall had a much smaller range than the IHME dashboard's US predictions' range.
- Try social distancing/intervention related covariates
- weighted based on # interventions
- weighted based on mobility change (FB colocation data)
- weighted based on both; weigh an intervention according to the corresponding mobility change
- i.e. schools being closed --> 0.2, night curfew --> 0.05
- See this notebook for a start
- IHME as a synthetic data generator: feed 1 week IHME predictions to SEIR, measure SEIR improvement/longevity. Also try the same with feeding SEIR into SEIR. See this notebook for a start
usage: python3 pipeline.py -d mumbai -c config/mumbai.yaml>
can also specify -f path/to/output
This runs the model here on the params specified in <config>.yaml
/ default.yaml
.
Outputs plots and csv in outputs/ihme/forecast/
.
usage: python3 pipeline_all.py -c config/mumbai.yaml -d mumbai
can also specify -f path/to/output
This runs the model on the params specified in
.yaml/
default.yaml`, but ignores ycol and instead fits to all compartments
Outputs plots and csv in outputs/ihme/forecast/
.
usage: python3 backtesting.py -c config/mumbai.yaml -d mumbai
can also specify -f path/to/output
This runs backtesting with the params specified in <config>.yaml
/ default.yaml
, but ignores ycol and instead fits to all compartments. This model is rerun at the increment
specified in the config, over all historical data, predicting forecast_days
into the future.
Outputs plots and csv in outputs/ihme/backtesting/
.
This is where the default config lives. Any other config files added in this directory will build off of the default one.
Here lives the code to get the data, shape it, consume the model_parameters and config to set up appropriate arguments for the functions that run the model, which also live here.
Forecast and fitting are not separate exercises in this case, so there is no separation into a forecast.py
here.
The hyperparameters in this case are the fe_init
values, and support for n_days_train exists as well. Currently, there is a line in optmiser.py
that forces the searchspace for n_days
to be (min_days, min_day+1)
, effectively seeting it to min_days
. This was done to set it to be the minimum, as is done with the SEIR model.
This is where the backtester class lives, calling IHMEBacktest.test
runs the backtesting.
This is powered under the hood by code from fitting.py
This is the core model code. Uses BasicModel
from curvefit
.
- True fitting is currently done in
model.run()
, which is called inmodel.predict()
. It takes a start/end date - evaluate if these dates should be different, and if so, move the call topipeline.run()
intopredict
.