Skip to content

gchowell/forecasting_growthmodels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

GrowthPredict

GrowthPredict: A Matlab toolbox for fitting and forecasting epidemic trajectories using phenomenological growth models

GrowthPredict Tutorial: https://www.nature.com/articles/s41598-024-51852-8

Video tutorial: https://www.youtube.com/watch?v=op93_wUeXXA&list=PLiMOXVNNZfvYLdwNKrIdBmH5NTvGk6IG2&index=4&t=18s

It carries out the following tasks:

  • fitting models to time series data,
  • estimation of model parameters, Monte Carlo standard errors (MCSES) of the parameter estimates, doubling times, and reproduction numbers with quantified uncertainty,
  • plotting the best fit of the model and parameter estimates,
  • plotting forecasts from the best-fit model,
  • generates and plots performance metrics of the forecasts,
  • generates quantiles associated with the model fit and the forecast
  • conducts rolling window analyses of parameter estimates during specific time periods and window sizes

Additional features include:

  • fitting models using different parameter estimation approaches (least-squares, maximum likelihood estimation),
  • fitting models using assuming different error structures (normal, Poisson, negative binomial),
  • user can select among different growth models including the generalized-growth model (GGM), generalized-logistic growth model (GLM), Gompertz model, Richards model, and the generalized Richards model (GRM),
  • User can conduct multiple fits of the model to the data through a rolling-window analysis

Installation requirements

The GrowthPredict toolbox requires a MATLAB installation.

Fitting the model to your data

To use the toolbox to fit a model to your data, you just need to:

  • download the code
  • create 'input' folder in your working directory where your data is located
  • create 'output' folder in your working directory where the output files will be stored
  • open a MATLAB session
  • define the model parameter values and time series parameters by editing options_fit.m
  • run the function Run_Fit_GrowthModels.m

Plotting the best model fit and parameter estimates

After fitting the model to your data using the function Run_Fit_GrowthModels.m, you can use the toolbox to plot the best model fit and parameter estimates as follows:

  • run the function plotFit_GrowthModels.m

The function also outputs files with parameter estimates, the best fit of the model, and the performance metrics for the calibration period.

Generating forecasts

To use the toolbox to fit a model to your data and generate a forecast, you just need to:

  • define the model parameter values and time series parameters by editing options_forecast.m
  • run the function Run_Forecasting_GrowthModels.m

Plotting forecasts and performance metrics based on the best-fit model

After running Run_Forecasting_GrowthModels.m, you can use the toolbox to plot forecasts and performance metrics derived from the best fit model as follows:

  • run the function plotForecast_GrowthModels.m

The function also outputs files with parameter estimates, the fit and forecast of the model, and the performance metrics for the calibration period and forecasting periods.

Publications

  • Chowell, G., Bleichrodt, A., Dahal, S. et al. GrowthPredict: A toolbox and tutorial-based primer for fitting and forecasting growth trajectories using phenomenological growth models. Sci Rep 14, 1630 (2024). https://doi.org/10.1038/s41598-024-51852-8
  • Chowell, G. (2017). Fitting dynamic models to epidemic outbreaks with quantified uncertainty: A primer for parameter uncertainty, identifiability, and forecasts. Infectious Disease Modelling, 2(3), 379-398.
  • Bürger, R., Chowell, G., & Lara-Díıaz, L. Y. (2019). Comparative analysis of phenomenological growth models applied to epidemic outbreaks. Mathematical Biosciences and Engineering, 16(5), 4250-4273.

Disclaimer

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

About

GrowthPredict: A Matlab toolbox for fitting and forecasting epidemic trajectories using phenomenological growth models

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages