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 |
---|---|---|---|---|---|
bats_trendy_arma_bc | 2262.0 | 18 | yes | 3339.2 | tbats , timemachines |
quick_aggressive_ema_ensemble | 2154.0 | 1039 | yes | 0.4 | timemachines |
slow_precision_ema_ensemble | 2099.0 | 645 | yes | 0.2 | timemachines |
elo_faster_univariate_balanced_ensemble | 2001.0 | 531 | yes | 16.6 | timemachines |
tsa_aggressive_combined_ensemble | 1981.0 | 15 | yes | 230.9 | statsmodels , timemachines |
tsa_p2_d0_q0 | 1952.0 | 400 | yes | 61.8 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1944.0 | 733 | yes | 1.6 | timemachines |
divine_univariate_hypocratic_fast | 1925.0 | 143 | yes | -0.1 | divinity , timemachines |
elo_faster_univariate_aggressive_ensemble | 1910.0 | 637 | yes | 42.4 | timemachines |
thinking_slow_and_fast | 1908.0 | 761 | yes | 0.1 | timemachines |
tsa_p1_d0_q1 | 1890.0 | 328 | yes | 31.3 | statsmodels , timemachines |
bats_trendy_bc | 1890.0 | 23 | yes | 314.5 | tbats , timemachines |
tsa_p3_d0_q1 | 1889.0 | 137 | yes | 119.5 | statsmodels , timemachines |
elo_fastest_residual_balanced_ensemble | 1888.0 | 758 | yes | 0.8 | timemachines |
elo_faster_univariate_precision_ensemble | 1873.0 | 474 | yes | 24.6 | timemachines |
balanced_ema_ensemble | 1870.0 | 676 | yes | 0.2 | 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 | 72.2 | divinity , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1856.0 | 545 | yes | 1.6 | timemachines |
tsa_p3_d0_q0 | 1856.0 | 215 | yes | 109.3 | statsmodels , timemachines |
bats_damped_arma | 1853.0 | 13 | yes | 516.4 | tbats , timemachines |
elo_fastest_residual_precision_ensemble | 1851.0 | 918 | yes | 0.9 | timemachines |
sk_ae_add_damped | 1827.0 | 551 | yes | 8.2 | sktime , timemachines |
fbprophet_cautious | 1821.0 | 145 | yes | 125.1 | prophet , timemachines |
tsa_balanced_d0_ensemble | 1815.0 | 11 | yes | 2851.5 | statsmodels , timemachines |
bats_damped_bc | 1814.0 | 10 | yes | 323.6 | tbats , timemachines |
tsa_p1_d0_q0 | 1814.0 | 473 | yes | 18.2 | statsmodels , timemachines |
smdk_p5_d0_q3_n500 | 1811.0 | 432 | no | 18.2 | simdkalman , timemachines |
bats_damped | 1810.0 | 19 | yes | 334.2 | tbats , timemachines |
dlm_univariate_a | 1801.0 | 69 | no | -1.0 | pydlm , timemachines |
bats_trendy_arma | 1800.0 | 8 | yes | 875.5 | tbats , timemachines |
rvr_quickly_hypocratic | 1794.0 | 511 | yes | 0.4 | river , timemachines |
thinking_fast_and_slow | 1786.0 | 788 | yes | 0.1 | timemachines |
darts_autoarima | 1779.0 | 13 | no | 120.4 | darts , timemachines |
rvr_slowly_hypocratic | 1776.0 | 340 | no | 0.2 | river , timemachines |
bats_damped_arma_bc | 1763.0 | 10 | yes | 341.0 | tbats , timemachines |
precision_ema_ensemble | 1754.0 | 773 | yes | 0.2 | timemachines |
divine_univariate_hypocratic_slow | 1751.0 | 119 | yes | -0.1 | divinity , timemachines |
orbit_lgt_24 | 1746.0 | 6 | yes | 61.9 | orbit-ml , timemachines |
quick_precision_ema_ensemble | 1733.0 | 629 | yes | 0.4 | timemachines |
pmd_exogenous_hypocratic | 1730.0 | 609 | yes | 7.6 | pmdarima , timemachines |
thinking_slow_and_slow | 1723.0 | 785 | yes | 0.0 | timemachines |
sk_ae_add | 1720.0 | 694 | yes | 6.9 | sktime , timemachines |
elo_fastest_residual_aggressive_ensemble | 1715.0 | 828 | yes | 0.9 | timemachines |
nprophet_p3 | 1714.0 | 191 | yes | 61.7 | neuralprophet , timemachines |
darts_prophet | 1712.0 | 15 | no | 78.3 | darts , timemachines |
tsa_balanced_combined_ensemble | 1711.0 | 16 | yes | 279.8 | statsmodels , timemachines |
suc_tsa_aggressive_d0_ensemble | 1705.0 | 3 | no | 2.1 | successor , timemachines |
bats_arma_bc | 1701.0 | 9 | yes | 1003.8 | tbats , timemachines |
thinking_fast_and_fast | 1698.0 | 640 | yes | 0.1 | timemachines |
elo_faster_residual_balanced_ensemble | 1696.0 | 883 | yes | 36.1 | timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1696.0 | 135 | yes | 61.7 | simdkalman , timemachines |
slow_aggressive_ema_ensemble | 1695.0 | 893 | yes | 0.1 | timemachines |
sk_ae | 1691.0 | 529 | yes | 6.6 | sktime , timemachines |
elo_fastest_univariate_precision_ensemble | 1678.0 | 562 | yes | 3.1 | timemachines |
bats_trendy | 1677.0 | 27 | yes | 913.4 | tbats , timemachines |
bats_fast | 1666.0 | 37 | yes | 295.6 | tbats , timemachines |
rvr_balanced_ensemble | 1660.0 | 429 | yes | 0.4 | river , timemachines |
slow_balanced_ema_ensemble | 1642.0 | 787 | yes | 0.2 | timemachines |
elo_faster_residual_precision_ensemble | 1639.0 | 359 | yes | 2.1 | timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1634.0 | 53 | yes | 376.9 | statsmodels , timemachines |
tsa_balanced_theta_ensemble | 1633.0 | 751 | yes | 12.8 | statsmodels , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1628.0 | 240 | no | 19.1 | simdkalman , timemachines |
smdk_p5_d0_q3_n1000 | 1623.0 | 183 | yes | 62.2 | simdkalman , timemachines |
aggressive_ema_ensemble | 1616.0 | 761 | yes | 0.1 | timemachines |
merlion_arima | 1600 | 0 | yes | 13.9 | timemachines |
pycrt_mean_8 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | -0.4 | 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 |
thinking_precision_ensemble | 1589.0 | 48 | yes | 1.0 | timemachines |
quickly_moving_average | 1588.0 | 1127 | yes | 0.0 | timemachines |
tsa_precision_combined_ensemble | 1585.0 | 9 | yes | 3194.7 | statsmodels , timemachines |
fbprophet_univariate_hypocratic | 1552.0 | 101 | yes | 76.9 | prophet , timemachines |
darts_four_theta | 1551.0 | 63 | no | 1.2 | darts , timemachines |
fbprophet_univariate | 1542.0 | 173 | yes | 97.8 | prophet , timemachines |
fbprophet_cautious_hypocratic | 1541.0 | 84 | yes | 214.3 | prophet , timemachines |
quick_balanced_ema_ensemble | 1538.0 | 685 | yes | 0.2 | timemachines |
fbprophet_exogenous_hypocratic | 1534.0 | 91 | yes | 78.6 | prophet , timemachines |
tsa_aggressive_theta_ensemble | 1520.0 | 636 | yes | 2.2 | statsmodels , 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 | yes | 8.5 | darts , timemachines |
sluggish_moving_average | 1504.0 | 1081 | yes | 0.0 | timemachines |
gk_basic_skater | 1499.0 | 3 | yes | 1467.2 | greykite , timemachines |
pycrt_median_8 | 1497.0 | 1 | no | 3340.9 | pycaret , timemachines |
bats_arma | 1490.0 | 15 | yes | 917.9 | tbats , timemachines |
tsa_aggressive_d0_ensemble | 1482.0 | 24 | yes | 301.8 | statsmodels , timemachines |
fbprophet_recursive | 1474.0 | 162 | yes | 75.1 | prophet , timemachines |
sk_theta | 1471.0 | 661 | yes | 0.8 | sktime , timemachines |
slowly_moving_average | 1469.0 | 918 | yes | 0.0 | timemachines |
tsa_precision_d0_ensemble | 1449.0 | 27 | yes | 860.9 | statsmodels , timemachines |
pycrt_median_3 | 1447.0 | 1 | yes | 1409.8 | pycaret , timemachines |
tsa_precision_theta_ensemble | 1437.0 | 637 | yes | 2.6 | statsmodels , timemachines |
elo_faster_residual_aggressive_ensemble | 1425.0 | 457 | yes | 8.7 | timemachines |
nprophet_p3_hypocratic | 1388.0 | 263 | yes | 30.0 | neuralprophet , timemachines |
merlion_mses | 1386.0 | 4 | yes | 44.9 | timemachines |
rvr_p2_d0_q0 | 1376.0 | 816 | yes | 0.0 | river , timemachines |
rvr_p1_d0_q0 | 1357.0 | 385 | yes | 0.0 | river , timemachines |
fbprophet_known | 1354.0 | 162 | yes | 77.1 | prophet , timemachines |
nprophet_p2_hypocratic | 1349.0 | 211 | yes | 31.0 | neuralprophet , timemachines |
tsa_p2_d0_q1 | 1340.0 | 251 | yes | 228.8 | statsmodels , timemachines |
dlm_univariate_b | 1319.0 | 49 | no | -1.0 | pydlm , timemachines |
suc_quick_aggressive_ema_ensemble | 1314.0 | 29 | no | 5.1 | successor , timemachines |
darts_fft | 1295.0 | 45 | no | 1.2 | darts , timemachines |
rvr_p5_d0_q0 | 1293.0 | 526 | yes | 0.1 | river , timemachines |
nprophet_p2 | 1287.0 | 262 | yes | 40.3 | neuralprophet , timemachines |
bats_bc | 1272.0 | 26 | yes | 311.9 | tbats , timemachines |
nprophet_p1 | 1261.0 | 426 | yes | 38.3 | neuralprophet , timemachines |
rapidly_moving_average | 1255.0 | 791 | yes | 0.0 | timemachines |
merlion_prophet | 1228.0 | 6 | yes | 93.7 | timemachines |
pmd_univariate | 1211.0 | 545 | yes | 4.1 | pmdarima , timemachines |
nprophet_p1_hypocratic | 1206.0 | 242 | yes | 47.3 | neuralprophet , timemachines |
rvr_p8_d0_q0 | 1202.0 | 350 | yes | 0.1 | river , timemachines |
fbprophet_exogenous | 1197.0 | 167 | yes | 161.4 | prophet , timemachines |
nprophet_p5 | 1175.0 | 256 | yes | 63.3 | neuralprophet , timemachines |
fbprophet_exogenous_exogenous | 1174.0 | 86 | yes | 226.1 | prophet , timemachines |
darts_exp_smoothing | 1118.0 | 64 | yes | 13.2 | darts , timemachines |
nprophet_p8 | 1113.0 | 227 | yes | 35.9 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1097.0 | 89 | yes | 785.6 | prophet , timemachines |
nprophet_p8_hypocratic | 1017.0 | 236 | yes | 70.7 | neuralprophet , timemachines |
empirical_last_value | 972.0 | 631 | yes | 0.0 | timemachines |
suc_tsa_p2_d0_q1 | 961.0 | 22 | no | 6.0 | successor , timemachines |
nprophet_p5_hypocratic | 927.0 | 212 | yes | 0.0 | neuralprophet , timemachines |