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
The GrowthPredict toolbox requires a MATLAB installation.
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
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.
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
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.
- 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.
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.