There is some motivation in the blog post Fast Python Time-Series Forecasting. All algorithms utilized here can be called the same way using the TimeMachines Python package. However, as indicated in the table, some of these draw an important part of their functionality (if not all) from other packages such as Facebook Prophet, Statsmodels TSA, Flux, PmdArima, Uber Orbit and more. Take relative performance with with a grain of salt, since many packages don't intend completely autonomous use and some are aimed at longer term seasonal forecasts. If you have a suggestion for a package or technique that should be included, please file an issue or, even better, add a skater and make a pull request. There is a guide for contributors and a long list of popular time-series packages.
Some of these methods are used in real-time to provide free prediction to anyone who publishes public data using a community API explained at microprediction.com. See the example crawlers folder for examples of algorithms calling the timemachines package. See the knowledge center or contributor guide for instructions on publishing live data that can influence these ratings.
Name | Rating | Games | Active | Seconds | Dependencies |
---|---|---|---|---|---|
tsa_aggressive_combined_ensemble | 2288.0 | 20 | yes | 566.2 | statsmodels , timemachines |
tsa_p2_d0_q0 | 2232.0 | 409 | yes | 35.6 | statsmodels , timemachines |
thinking_fast_and_slow | 2205.0 | 813 | yes | 0.1 | timemachines |
thinking_slow_and_fast | 2177.0 | 985 | yes | 0.1 | timemachines |
elo_faster_univariate_balanced_ensemble | 2163.0 | 544 | yes | -6.0 | timemachines |
bats_trendy_bc | 2119.0 | 26 | yes | 1120.7 | tbats , timemachines |
bats_damped_bc | 2077.0 | 17 | yes | 830.0 | tbats , timemachines |
gk_basic_skater | 2072.0 | 9 | yes | 3620.3 | greykite , timemachines |
tsa_p1_d0_q1 | 2070.0 | 341 | yes | 29.0 | statsmodels , timemachines |
sk_ae_add_damped | 2064.0 | 568 | yes | 19.4 | sktime , timemachines |
elo_faster_residual_balanced_ensemble | 2052.0 | 908 | yes | 11.8 | timemachines |
tsa_p3_d0_q0 | 2011.0 | 221 | yes | 89.8 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1996.0 | 755 | yes | 2.6 | timemachines |
sk_ae_add | 1988.0 | 705 | yes | 24.2 | sktime , timemachines |
tsa_precision_d0_ensemble | 1968.0 | 28 | yes | 365.2 | statsmodels , timemachines |
elo_fastest_residual_balanced_ensemble | 1947.0 | 781 | yes | 1.3 | timemachines |
fbprophet_cautious | 1946.0 | 151 | yes | 122.3 | prophet , timemachines |
thinking_slow_and_slow | 1939.0 | 802 | yes | 0.1 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1931.0 | 648 | yes | 16.4 | timemachines |
divine_univariate_hypocratic_fast | 1925.0 | 143 | yes | -0.1 | divinity , timemachines |
bats_damped_arma | 1921.0 | 17 | yes | 2463.6 | tbats , timemachines |
elo_faster_univariate_precision_ensemble | 1911.0 | 483 | yes | 25.0 | timemachines |
elo_fastest_univariate_precision_ensemble | 1896.0 | 582 | yes | 1.5 | timemachines |
slow_balanced_ema_ensemble | 1890.0 | 794 | yes | 0.2 | timemachines |
pmd_univariate | 1890.0 | 542 | yes | 6.1 | pmdarima , timemachines |
elo_fastest_residual_aggressive_ensemble | 1866.0 | 853 | yes | 0.9 | timemachines |
sk_autoarima | 1864.0 | 49 | yes | 118.4 | sktime , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1857.0 | 31 | yes | 2888.1 | statsmodels , timemachines |
divine_univariate | 1856.0 | 201 | yes | -0.1 | divinity , timemachines |
smdk_p5_d0_q3_n500 | 1851.0 | 436 | yes | 60.1 | simdkalman , timemachines |
tsa_p1_d0_q0 | 1851.0 | 481 | yes | 22.7 | statsmodels , timemachines |
tsa_p3_d0_q1 | 1840.0 | 140 | yes | 257.7 | statsmodels , timemachines |
slow_precision_ema_ensemble | 1834.0 | 657 | yes | 0.2 | timemachines |
tsa_balanced_d0_ensemble | 1815.0 | 11 | yes | 2851.5 | statsmodels , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1811.0 | 559 | yes | 3.0 | timemachines |
bats_damped | 1810.0 | 19 | yes | 334.2 | tbats , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1808.0 | 51 | yes | 551.6 | statsmodels , timemachines |
dlm_univariate_a | 1801.0 | 69 | no | -1.0 | pydlm , timemachines |
bats_damped_arma_bc | 1800.0 | 12 | yes | 1658.3 | tbats , timemachines |
bats_trendy_arma | 1794.0 | 12 | yes | 1710.0 | tbats , timemachines |
sluggish_moving_average | 1790.0 | 1077 | yes | 0.0 | timemachines |
elo_faster_residual_precision_ensemble | 1789.0 | 377 | yes | 3.1 | timemachines |
smdk_p5_d0_q3_n1000 | 1786.0 | 181 | yes | -61.8 | simdkalman , timemachines |
elo_faster_residual_aggressive_ensemble | 1779.0 | 467 | yes | 3.7 | timemachines |
darts_autoarima | 1779.0 | 13 | yes | 120.4 | darts , timemachines |
elo_fastest_residual_precision_ensemble | 1773.0 | 923 | yes | -1.3 | timemachines |
divine_univariate_hypocratic_slow | 1751.0 | 119 | yes | -0.1 | divinity , timemachines |
tsa_balanced_theta_ensemble | 1749.0 | 761 | yes | 4.4 | statsmodels , timemachines |
rvr_quickly_hypocratic | 1726.0 | 507 | no | 0.3 | river , timemachines |
slow_aggressive_ema_ensemble | 1714.0 | 916 | yes | 0.4 | timemachines |
darts_prophet | 1712.0 | 15 | no | 78.3 | darts , timemachines |
quick_precision_ema_ensemble | 1707.0 | 636 | yes | 0.2 | timemachines |
precision_ema_ensemble | 1706.0 | 773 | yes | 0.2 | timemachines |
merlion_arima | 1704.0 | 17 | yes | 26.3 | timemachines |
bats_arma_bc | 1701.0 | 9 | yes | 1003.8 | tbats , timemachines |
bats_trendy | 1691.0 | 32 | yes | 1108.3 | tbats , timemachines |
bats_fast | 1690.0 | 43 | yes | 746.4 | tbats , timemachines |
slowly_moving_average | 1668.0 | 930 | yes | 0.0 | timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1664.0 | 134 | yes | 62.4 | simdkalman , timemachines |
bats_trendy_arma_bc | 1659.0 | 16 | yes | 1549.5 | tbats , timemachines |
quick_balanced_ema_ensemble | 1649.0 | 694 | yes | 0.3 | timemachines |
fbprophet_cautious_hypocratic | 1634.0 | 85 | yes | 124.8 | prophet , timemachines |
tsa_aggressive_d0_ensemble | 1626.0 | 25 | yes | 538.3 | statsmodels , timemachines |
sk_ae | 1608.0 | 535 | yes | 12.1 | sktime , timemachines |
fbprophet_exogenous_hypocratic | 1607.0 | 95 | yes | 119.3 | prophet , timemachines |
pycrt_mean_8 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | 0.0 | orbit-ml , timemachines |
regress_change_on_first_known | 1600 | 0 | no | -1.0 | timemachines |
tsa_p1_d1_q0 | 1600 | 0 | no | -1.0 | statsmodels , timemachines |
tsa_p2_d1_q0 | 1600 | 0 | no | -1.0 | statsmodels , timemachines |
tsa_p3_d1_q0 | 1600 | 0 | no | -1.0 | statsmodels , timemachines |
sk_ae_mul_damped | 1600 | 0 | no | -0.1 | sktime , timemachines |
sk_ae_mul | 1600 | 0 | no | -0.2 | sktime , timemachines |
rvr_p3_d0_q0 | 1600 | 0 | no | -1.0 | river , timemachines |
rvr_aggressive_ensemble | 1600 | 0 | no | -1.0 | river , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -1.0 | pycaret , timemachines |
fbprophet_chaser | 1600 | 0 | no | -1.0 | prophet , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
tsa_precision_combined_ensemble | 1585.0 | 9 | yes | 3194.7 | statsmodels , timemachines |
orbit_lgt_12 | 1585.0 | 2 | yes | 0.0 | orbit-ml , timemachines |
tsa_balanced_combined_ensemble | 1582.0 | 32 | yes | 391.7 | statsmodels , timemachines |
thinking_precision_ensemble | 1577.0 | 58 | yes | 0.4 | timemachines |
tsa_p2_d0_q1 | 1567.0 | 479 | yes | 46.3 | statsmodels , timemachines |
balanced_ema_ensemble | 1559.0 | 699 | yes | 0.3 | timemachines |
fbprophet_univariate_hypocratic | 1552.0 | 101 | yes | 76.9 | prophet , timemachines |
darts_four_theta | 1551.0 | 63 | no | 1.2 | darts , timemachines |
sk_theta | 1519.0 | 660 | yes | 1.0 | sktime , timemachines |
quick_aggressive_ema_ensemble | 1518.0 | 1262 | yes | 0.2 | timemachines |
pycrt_mean_3 | 1510.0 | 1 | no | 3202.9 | pycaret , timemachines |
darts_theta | 1508.0 | 40 | no | 1.2 | darts , timemachines |
darts_arima | 1506.0 | 40 | no | 8.5 | darts , timemachines |
pycrt_median_8 | 1497.0 | 1 | yes | 3340.9 | pycaret , timemachines |
bats_arma | 1490.0 | 15 | yes | 917.9 | tbats , timemachines |
fbprophet_univariate | 1484.0 | 183 | yes | 122.1 | prophet , timemachines |
tsa_aggressive_theta_ensemble | 1481.0 | 643 | yes | 4.8 | statsmodels , timemachines |
bats_bc | 1476.0 | 31 | yes | 811.9 | tbats , timemachines |
nprophet_p1 | 1475.0 | 444 | yes | 38.9 | neuralprophet , timemachines |
fbprophet_recursive | 1474.0 | 162 | yes | 75.1 | prophet , timemachines |
pycrt_median_3 | 1447.0 | 1 | no | 1409.8 | pycaret , timemachines |
aggressive_ema_ensemble | 1447.0 | 773 | yes | 0.2 | timemachines |
pmd_exogenous_hypocratic | 1444.0 | 615 | yes | 5.5 | pmdarima , timemachines |
thinking_fast_and_fast | 1425.0 | 656 | yes | 0.1 | timemachines |
suc_quick_aggressive_ema_ensemble | 1350.0 | 31 | no | 5.4 | successor , timemachines |
quickly_moving_average | 1349.0 | 1150 | yes | 0.0 | timemachines |
tsa_precision_theta_ensemble | 1335.0 | 653 | yes | 6.1 | statsmodels , timemachines |
fbprophet_exogenous | 1329.0 | 167 | yes | 124.7 | prophet , timemachines |
rvr_slowly_hypocratic | 1325.0 | 368 | yes | 0.6 | river , timemachines |
nprophet_p2_hypocratic | 1325.0 | 212 | yes | 83.8 | neuralprophet , timemachines |
fbprophet_known | 1321.0 | 163 | yes | 85.7 | prophet , timemachines |
dlm_univariate_b | 1319.0 | 49 | no | -1.0 | pydlm , timemachines |
darts_fft | 1295.0 | 45 | no | 1.2 | darts , timemachines |
rvr_balanced_ensemble | 1237.0 | 444 | yes | 0.4 | river , timemachines |
rvr_p5_d0_q0 | 1221.0 | 533 | yes | 0.1 | river , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1215.0 | 254 | yes | 29.8 | simdkalman , timemachines |
fbprophet_exogenous_exogenous | 1204.0 | 88 | yes | 451.8 | prophet , timemachines |
nprophet_p8 | 1202.0 | 233 | yes | 55.5 | neuralprophet , timemachines |
merlion_mses | 1200.0 | 6 | yes | -88.4 | timemachines |
darts_exp_smoothing | 1118.0 | 64 | no | 13.2 | darts , timemachines |
nprophet_p3_hypocratic | 1104.0 | 276 | yes | 50.6 | neuralprophet , timemachines |
nprophet_p3 | 1103.0 | 204 | yes | 38.7 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1097.0 | 89 | yes | 785.6 | prophet , timemachines |
nprophet_p1_hypocratic | 1078.0 | 245 | yes | -51.7 | neuralprophet , timemachines |
rvr_p1_d0_q0 | 1054.0 | 401 | yes | 0.0 | river , timemachines |
merlion_prophet | 1025.0 | 13 | yes | 47.6 | timemachines |
empirical_last_value | 1015.0 | 648 | yes | 0.0 | timemachines |
rvr_p2_d0_q0 | 1012.0 | 834 | yes | 0.0 | river , timemachines |
nprophet_p2 | 994.0 | 259 | yes | 52.4 | neuralprophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 989.0 | 25 | yes | 3.2 | successor , timemachines |
rapidly_moving_average | 985.0 | 810 | yes | 0.0 | timemachines |
suc_tsa_p2_d0_q1 | 961.0 | 22 | no | 6.0 | successor , timemachines |
nprophet_p5 | 927.0 | 266 | yes | 38.0 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 899.0 | 213 | yes | 64.0 | neuralprophet , timemachines |
nprophet_p8_hypocratic | 888.0 | 246 | yes | 44.1 | neuralprophet , timemachines |
rvr_p8_d0_q0 | 847.0 | 362 | yes | 0.1 | river , timemachines |