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_p1_d0_q1 | 2180.0 | 253 | yes | 30.7 | statsmodels , timemachines |
tsa_aggressive_d0_ensemble | 2178.0 | 24 | yes | 133.0 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 2154.0 | 601 | yes | 4.2 | timemachines |
sluggish_moving_average | 2121.0 | 756 | yes | 0.0 | timemachines |
bats_arma | 2112.0 | 15 | yes | 799.2 | tbats , timemachines |
tsa_p2_d0_q1 | 2110.0 | 225 | yes | 111.6 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 2097.0 | 29 | yes | 183.7 | statsmodels , timemachines |
fbprophet_known | 2079.0 | 50 | yes | 126.3 | prophet , timemachines |
sk_autoarima | 2053.0 | 30 | yes | 697.8 | sktime , timemachines |
tsa_p3_d0_q1 | 2047.0 | 91 | yes | 64.6 | statsmodels , timemachines |
pmd_univariate | 2037.0 | 438 | yes | 16.3 | pmdarima , timemachines |
tsa_balanced_d0_ensemble | 2021.0 | 20 | yes | 159.6 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 2005.0 | 15 | yes | 3215.4 | statsmodels , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 2004.0 | 177 | yes | 98.9 | simdkalman , timemachines |
elo_fastest_residual_balanced_ensemble | 2000.0 | 657 | yes | 1.4 | timemachines |
elo_fastest_univariate_balanced_ensemble | 1988.0 | 725 | yes | 1.4 | timemachines |
elo_fastest_univariate_precision_ensemble | 1982.0 | 1020 | yes | 1.9 | timemachines |
thinking_slow_and_fast | 1970.0 | 668 | yes | 0.1 | timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1959.0 | 26 | yes | 2895.6 | statsmodels , timemachines |
tsa_precision_combined_ensemble | 1953.0 | 33 | yes | 224.4 | statsmodels , timemachines |
thinking_slow_and_slow | 1930.0 | 688 | yes | 0.1 | timemachines |
elo_faster_univariate_balanced_ensemble | 1927.0 | 490 | yes | 17.8 | timemachines |
tsa_p3_d0_q0 | 1924.0 | 372 | yes | 14.6 | statsmodels , timemachines |
bats_trendy_arma | 1915.0 | 9 | yes | 668.6 | tbats , timemachines |
slow_aggressive_ema_ensemble | 1900.0 | 643 | yes | 0.4 | timemachines |
slowly_moving_average | 1875.0 | 1030 | yes | 0.0 | timemachines |
fbprophet_univariate | 1854.0 | 79 | yes | 123.4 | prophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1847.0 | 279 | yes | 39.5 | simdkalman , timemachines |
tsa_balanced_combined_ensemble | 1841.0 | 31 | yes | 285.1 | statsmodels , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1827.0 | 667 | yes | 1.6 | timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1825.0 | 35 | yes | 191.3 | statsmodels , timemachines |
divine_univariate_hypocratic_fast | 1796.0 | 80 | yes | -0.1 | divinity , timemachines |
thinking_fast_and_slow | 1789.0 | 685 | yes | 0.1 | timemachines |
bats_trendy | 1752.0 | 26 | yes | 360.3 | tbats , timemachines |
elo_fastest_residual_precision_ensemble | 1752.0 | 716 | yes | 0.8 | timemachines |
divine_univariate_hypocratic_slow | 1751.0 | 70 | yes | -0.1 | divinity , timemachines |
bats_trendy_bc | 1747.0 | 22 | yes | 1025.0 | tbats , timemachines |
fbprophet_recursive | 1732.0 | 51 | yes | 106.3 | prophet , timemachines |
elo_faster_residual_balanced_ensemble | 1725.0 | 606 | yes | 3.3 | timemachines |
elo_faster_univariate_precision_ensemble | 1707.0 | 721 | yes | 23.3 | timemachines |
bats_damped_arma | 1695.0 | 8 | yes | 1874.6 | tbats , timemachines |
bats_fast | 1694.0 | 13 | yes | 249.2 | tbats , timemachines |
divine_univariate | 1693.0 | 65 | yes | -0.1 | divinity , timemachines |
rvr_slowly_hypocratic | 1681.0 | 339 | no | 0.2 | river , timemachines |
gk_basic_skater | 1676.0 | 4 | no | 1519.0 | greykite , timemachines |
tsa_p1_d0_q0 | 1674.0 | 425 | yes | 30.3 | statsmodels , timemachines |
fbprophet_exogenous | 1664.0 | 94 | yes | 120.3 | prophet , timemachines |
precision_ema_ensemble | 1653.0 | 1049 | yes | 0.0 | timemachines |
bats_damped | 1650.0 | 18 | yes | 316.4 | tbats , timemachines |
elo_faster_univariate_aggressive_ensemble | 1650.0 | 629 | yes | 14.8 | timemachines |
slow_precision_ema_ensemble | 1649.0 | 656 | yes | 0.2 | timemachines |
slow_balanced_ema_ensemble | 1642.0 | 947 | yes | 0.4 | timemachines |
bats_damped_bc | 1640.0 | 19 | yes | 371.4 | tbats , timemachines |
thinking_precision_ensemble | 1629.0 | 30 | yes | 0.4 | timemachines |
sk_ae_add | 1626.0 | 1148 | yes | 13.8 | sktime , timemachines |
suc_tsa_p2_d0_q1 | 1625.0 | 31 | no | 5.9 | successor , timemachines |
darts_autoarima | 1606.0 | 10 | yes | 273.4 | darts , timemachines |
rvr_quickly_hypocratic | 1601.0 | 413 | no | 0.2 | river , timemachines |
pycrt_median_3 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
pycrt_median_8 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | 0.0 | orbit-ml , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | -0.3 | 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 | 1600 | 0 | no | -0.1 | sktime , timemachines |
sk_ae_mul_damped | 1600 | 0 | no | -1.0 | sktime , timemachines |
rvr_p3_d0_q0 | 1600 | 0 | no | -1.0 | river , timemachines |
rvr_aggressive_ensemble | 1600 | 0 | no | -1.0 | river , timemachines |
dlm_univariate_a | 1600 | 0 | no | -1.0 | pydlm , timemachines |
dlm_univariate_b | 1600 | 0 | no | -1.0 | pydlm , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
bats_damped_arma_bc | 1600.0 | 16 | yes | 755.1 | tbats , timemachines |
sk_ae_add_damped | 1599.0 | 778 | yes | 20.2 | sktime , timemachines |
fbprophet_univariate_hypocratic | 1597.0 | 43 | yes | 82.6 | prophet , timemachines |
fbprophet_cautious_hypocratic | 1597.0 | 43 | yes | 76.1 | prophet , timemachines |
elo_fastest_residual_aggressive_ensemble | 1595.0 | 551 | yes | 1.0 | timemachines |
darts_arima | 1593.0 | 53 | no | 8.5 | darts , timemachines |
quick_precision_ema_ensemble | 1584.0 | 640 | yes | 0.4 | timemachines |
elo_faster_residual_aggressive_ensemble | 1572.0 | 452 | yes | 5.7 | timemachines |
pycrt_mean_8 | 1568.0 | 2 | no | 2485.3 | pycaret , timemachines |
smdk_p5_d0_q3_n500 | 1563.0 | 276 | yes | 29.8 | simdkalman , timemachines |
pmd_exogenous_hypocratic | 1561.0 | 561 | yes | 2.5 | pmdarima , timemachines |
quick_balanced_ema_ensemble | 1555.0 | 638 | yes | 0.4 | timemachines |
aggressive_ema_ensemble | 1530.0 | 735 | yes | 0.2 | timemachines |
tsa_p2_d0_q0 | 1520.0 | 298 | yes | 69.5 | statsmodels , timemachines |
fbprophet_cautious | 1514.0 | 51 | yes | 121.9 | prophet , timemachines |
bats_bc | 1511.0 | 24 | yes | 227.9 | tbats , timemachines |
quickly_moving_average | 1494.0 | 665 | yes | 0.0 | timemachines |
pycrt_mean_3 | 1482.0 | 1 | no | 2065.1 | pycaret , timemachines |
bats_trendy_arma_bc | 1482.0 | 15 | yes | 899.2 | tbats , timemachines |
balanced_ema_ensemble | 1482.0 | 895 | yes | 0.2 | timemachines |
fbprophet_exogenous_hypocratic | 1453.0 | 58 | yes | 82.6 | prophet , timemachines |
nprophet_p3 | 1452.0 | 220 | yes | 30.4 | neuralprophet , timemachines |
tsa_balanced_theta_ensemble | 1441.0 | 617 | yes | 3.4 | statsmodels , timemachines |
darts_four_theta | 1438.0 | 54 | no | 1.3 | darts , timemachines |
suc_quick_aggressive_ema_ensemble | 1419.0 | 31 | no | 5.1 | successor , timemachines |
thinking_fast_and_fast | 1418.0 | 747 | yes | 0.1 | timemachines |
sk_ae | 1418.0 | 756 | yes | 11.5 | sktime , timemachines |
bats_arma_bc | 1412.0 | 10 | yes | 325.4 | tbats , timemachines |
merlion_arima | 1410.0 | 22 | yes | 12.6 | timemachines |
darts_prophet | 1400.0 | 22 | no | 105.5 | darts , timemachines |
darts_theta | 1394.0 | 54 | no | 1.2 | darts , timemachines |
tsa_precision_theta_ensemble | 1389.0 | 568 | yes | 2.7 | statsmodels , timemachines |
tsa_aggressive_theta_ensemble | 1389.0 | 893 | yes | 6.6 | statsmodels , timemachines |
merlion_mses | 1379.0 | 2 | yes | 44.3 | timemachines |
sk_theta | 1379.0 | 619 | yes | 0.8 | sktime , timemachines |
smdk_p5_d0_q3_n1000 | 1350.0 | 201 | no | 38.0 | simdkalman , timemachines |
suc_tsa_aggressive_d0_ensemble | 1319.0 | 5 | no | 1.9 | successor , timemachines |
nprophet_p2 | 1309.0 | 324 | yes | 62.6 | neuralprophet , timemachines |
nprophet_p3_hypocratic | 1296.0 | 267 | yes | 76.9 | neuralprophet , timemachines |
rapidly_moving_average | 1296.0 | 789 | yes | 0.0 | timemachines |
fbprophet_exogenous_exogenous | 1268.0 | 47 | yes | 244.0 | prophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1267.0 | 36 | yes | 237.1 | prophet , timemachines |
nprophet_p8_hypocratic | 1263.0 | 217 | yes | 59.8 | neuralprophet , timemachines |
darts_exp_smoothing | 1258.0 | 105 | no | 9.3 | darts , timemachines |
nprophet_p1 | 1254.0 | 490 | yes | 50.7 | neuralprophet , timemachines |
rvr_balanced_ensemble | 1248.0 | 388 | yes | 0.3 | river , timemachines |
quick_aggressive_ema_ensemble | 1223.0 | 1350 | yes | 0.2 | timemachines |
nprophet_p2_hypocratic | 1186.0 | 186 | yes | 64.8 | neuralprophet , timemachines |
rvr_p8_d0_q0 | 1184.0 | 327 | yes | 0.1 | river , timemachines |
merlion_prophet | 1150.0 | 8 | yes | 67.7 | timemachines |
nprophet_p5 | 1098.0 | 251 | yes | 52.0 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 1067.0 | 306 | yes | 64.8 | neuralprophet , timemachines |
nprophet_p8 | 1065.0 | 217 | yes | 53.8 | neuralprophet , timemachines |
rvr_p5_d0_q0 | 1062.0 | 298 | yes | 0.1 | river , timemachines |
rvr_p2_d0_q0 | 1042.0 | 367 | yes | 0.0 | river , timemachines |
darts_fft | 1041.0 | 30 | no | 1.0 | darts , timemachines |
rvr_p1_d0_q0 | 1007.0 | 528 | yes | 0.0 | river , timemachines |
nprophet_p1_hypocratic | 932.0 | 253 | yes | 49.0 | neuralprophet , timemachines |
empirical_last_value | 675.0 | 448 | yes | 0.0 | timemachines |