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_balanced_d0_ensemble | 2385.0 | 23 | yes | 297.4 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 2327.0 | 35 | yes | 295.4 | statsmodels , timemachines |
sluggish_moving_average | 2325.0 | 706 | yes | 0.1 | timemachines |
pmd_exogenous_hypocratic | 2296.0 | 630 | yes | 10.9 | pmdarima , timemachines |
tsa_balanced_combined_ensemble | 2292.0 | 33 | yes | 315.7 | statsmodels , timemachines |
elo_faster_univariate_precision_ensemble | 2269.0 | 587 | yes | 47.8 | timemachines |
elo_fastest_residual_precision_ensemble | 2265.0 | 680 | yes | 3.3 | timemachines |
elo_fastest_residual_aggressive_ensemble | 2264.0 | 623 | yes | 3.0 | timemachines |
tsa_p3_d0_q1 | 2263.0 | 162 | yes | 127.7 | statsmodels , timemachines |
suc_tsa_aggressive_d0_ensemble | 2262.0 | 14 | yes | 8.3 | successor , timemachines |
tsa_p2_d0_q1 | 2203.0 | 557 | yes | 111.0 | statsmodels , timemachines |
divine_univariate | 2168.0 | 155 | yes | -0.1 | divinity , timemachines |
slow_balanced_ema_ensemble | 2098.0 | 646 | yes | 0.6 | timemachines |
tsa_p1_d0_q0 | 2096.0 | 451 | yes | 20.1 | statsmodels , timemachines |
fbprophet_exogenous_hypocratic | 2086.0 | 178 | yes | 240.1 | prophet , timemachines |
elo_faster_residual_balanced_ensemble | 2065.0 | 452 | yes | 74.0 | timemachines |
tsa_p1_d0_q1 | 2059.0 | 237 | yes | 124.0 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 2033.0 | 703 | yes | 1.9 | timemachines |
thinking_slow_and_fast | 2019.0 | 1141 | yes | 0.1 | timemachines |
tsa_p3_d0_q0 | 1960.0 | 181 | yes | 20.1 | statsmodels , timemachines |
slowly_moving_average | 1959.0 | 917 | yes | 0.1 | timemachines |
elo_fastest_univariate_aggressive_ensemble | 1955.0 | 636 | yes | 2.4 | timemachines |
thinking_slow_and_slow | 1955.0 | 694 | yes | 0.1 | timemachines |
bats_trendy_arma_bc | 1950.0 | 19 | yes | 1093.7 | tbats , timemachines |
bats_trendy_arma | 1947.0 | 13 | yes | 989.6 | tbats , timemachines |
merlion_prophet | 1944.0 | 23 | yes | 33.1 | timemachines |
divine_univariate_hypocratic_fast | 1930.0 | 83 | yes | 85.2 | divinity , timemachines |
thinking_fast_and_slow | 1921.0 | 731 | yes | 0.3 | timemachines |
elo_faster_univariate_balanced_ensemble | 1920.0 | 446 | yes | 38.7 | timemachines |
slow_precision_ema_ensemble | 1919.0 | 678 | yes | 1.6 | timemachines |
bats_arma | 1909.0 | 11 | yes | 785.4 | tbats , timemachines |
tsa_aggressive_d0_ensemble | 1909.0 | 16 | yes | 3262.6 | statsmodels , timemachines |
fbprophet_cautious | 1890.0 | 108 | yes | 239.9 | prophet , timemachines |
divine_univariate_hypocratic_slow | 1889.0 | 98 | yes | -0.1 | divinity , timemachines |
darts_autoarima | 1885.0 | 12 | yes | 183.1 | darts , timemachines |
pmd_univariate | 1883.0 | 564 | yes | 6.7 | pmdarima , timemachines |
tsa_p2_d0_q0 | 1876.0 | 139 | yes | 74.2 | statsmodels , timemachines |
gk_basic_skater | 1874.0 | 7 | yes | 4213.5 | greykite , timemachines |
bats_damped_arma_bc | 1873.0 | 14 | yes | 2700.8 | tbats , timemachines |
aggressive_ema_ensemble | 1871.0 | 722 | yes | 0.5 | timemachines |
sk_autoarima | 1864.0 | 73 | yes | 223.0 | sktime , timemachines |
tsa_balanced_theta_ensemble | 1860.0 | 580 | yes | 3.1 | statsmodels , timemachines |
rvr_quickly_hypocratic | 1858.0 | 400 | yes | 0.8 | river , timemachines |
thinking_precision_ensemble | 1855.0 | 42 | yes | 1.1 | timemachines |
merlion_arima | 1854.0 | 46 | yes | 61.7 | timemachines |
slow_aggressive_ema_ensemble | 1846.0 | 826 | yes | -0.6 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1832.0 | 531 | yes | 29.7 | timemachines |
bats_arma_bc | 1826.0 | 31 | yes | 790.2 | tbats , timemachines |
tsa_aggressive_combined_ensemble | 1814.0 | 39 | yes | 609.2 | statsmodels , timemachines |
fbprophet_recursive | 1811.0 | 117 | yes | 97.8 | prophet , timemachines |
elo_fastest_residual_balanced_ensemble | 1794.0 | 562 | yes | 3.0 | timemachines |
bats_bc | 1775.0 | 20 | yes | 1040.2 | tbats , timemachines |
bats_trendy | 1755.0 | 22 | yes | 308.2 | tbats , timemachines |
bats_trendy_bc | 1754.0 | 20 | yes | 385.3 | tbats , timemachines |
fbprophet_known | 1744.0 | 127 | yes | 148.1 | prophet , timemachines |
bats_fast | 1733.0 | 15 | yes | -14.9 | tbats , timemachines |
dlm_univariate_a | 1727.0 | 17 | no | -1.0 | pydlm , timemachines |
elo_faster_residual_aggressive_ensemble | 1697.0 | 427 | yes | -11.3 | timemachines |
tsa_precision_theta_ensemble | 1697.0 | 585 | yes | 5.7 | statsmodels , timemachines |
quick_balanced_ema_ensemble | 1692.0 | 669 | yes | 0.6 | timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1686.0 | 29 | yes | 1801.7 | statsmodels , timemachines |
darts_theta | 1677.0 | 44 | no | 1.3 | darts , timemachines |
quick_precision_ema_ensemble | 1675.0 | 846 | yes | 0.6 | timemachines |
rvr_slowly_hypocratic | 1663.0 | 372 | yes | 0.9 | river , timemachines |
bats_damped | 1660.0 | 6 | yes | 852.0 | tbats , timemachines |
sk_ae_add | 1648.0 | 1155 | yes | 17.5 | sktime , timemachines |
darts_fft | 1633.0 | 56 | no | 0.9 | darts , timemachines |
sk_theta | 1629.0 | 646 | yes | -0.1 | sktime , timemachines |
sk_ae_add_damped | 1624.0 | 714 | yes | 10.9 | sktime , timemachines |
suc_quick_aggressive_ema_ensemble | 1616.0 | 51 | no | 8.6 | successor , timemachines |
quickly_moving_average | 1611.0 | 999 | yes | 0.0 | timemachines |
elo_faster_residual_precision_ensemble | 1604.0 | 504 | yes | 21.0 | timemachines |
fbprophet_univariate | 1602.0 | 147 | yes | 123.7 | prophet , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | -0.1 | 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 | -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 |
pycrt_mean_8 | 1600 | 0 | no | -0.1 | pycaret , timemachines |
pycrt_mean_3 | 1600 | 0 | no | -0.7 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_median_3 | 1600 | 0 | no | -2.0 | pycaret , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
balanced_ema_ensemble | 1595.0 | 669 | yes | 0.9 | timemachines |
fbprophet_univariate_hypocratic | 1580.0 | 139 | yes | 125.0 | prophet , timemachines |
precision_ema_ensemble | 1579.0 | 744 | yes | 0.5 | timemachines |
fbprophet_exogenous | 1576.0 | 122 | yes | 225.2 | prophet , timemachines |
elo_fastest_univariate_precision_ensemble | 1564.0 | 945 | yes | 4.7 | timemachines |
tsa_aggressive_theta_ensemble | 1560.0 | 943 | yes | 5.0 | statsmodels , timemachines |
darts_arima | 1555.0 | 55 | no | 10.3 | darts , timemachines |
dlm_univariate_b | 1543.0 | 25 | no | -1.0 | pydlm , timemachines |
darts_four_theta | 1541.0 | 47 | no | 1.3 | darts , timemachines |
darts_prophet | 1540.0 | 16 | no | 78.9 | darts , timemachines |
bats_damped_arma | 1500.0 | 11 | yes | 1663.6 | tbats , timemachines |
tsa_precision_combined_ensemble | 1499.0 | 22 | yes | 452.7 | statsmodels , timemachines |
fbprophet_univariate_univariate_hypocratic | 1481.0 | 116 | yes | 439.2 | prophet , timemachines |
pycrt_median_8 | 1448.0 | 1 | yes | 2596.4 | pycaret , timemachines |
bats_damped_bc | 1438.0 | 10 | yes | 365.3 | tbats , timemachines |
fbprophet_cautious_hypocratic | 1407.0 | 84 | yes | 127.1 | prophet , timemachines |
sk_ae | 1392.0 | 743 | yes | 16.9 | sktime , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1382.0 | 59 | yes | 202.0 | statsmodels , timemachines |
darts_exp_smoothing | 1372.0 | 88 | no | 9.9 | darts , timemachines |
thinking_fast_and_fast | 1326.0 | 713 | yes | 0.3 | timemachines |
rvr_balanced_ensemble | 1313.0 | 472 | yes | 0.6 | river , timemachines |
merlion_mses | 1263.0 | 19 | yes | 72.2 | timemachines |
rvr_p5_d0_q0 | 1260.0 | 320 | yes | 0.1 | river , timemachines |
quick_aggressive_ema_ensemble | 1231.0 | 1250 | yes | 0.6 | timemachines |
orbit_lgt_24 | 1114.0 | 9 | yes | -1.6 | orbit-ml , timemachines |
suc_tsa_p2_d0_q1 | 1098.0 | 48 | no | 10.1 | successor , timemachines |
rapidly_moving_average | 1078.0 | 711 | yes | 0.1 | timemachines |
empirical_last_value | 1067.0 | 546 | yes | 0.0 | timemachines |
rvr_p1_d0_q0 | 1056.0 | 564 | yes | 0.1 | river , timemachines |
fbprophet_exogenous_exogenous | 1037.0 | 109 | yes | 823.0 | prophet , timemachines |
rvr_p8_d0_q0 | 976.0 | 464 | yes | 0.0 | river , timemachines |
nprophet_p2 | 876.0 | 149 | yes | 74.7 | neuralprophet , timemachines |
rvr_p2_d0_q0 | 857.0 | 453 | yes | 0.0 | river , timemachines |
nprophet_p1_hypocratic | 850.0 | 172 | yes | 74.8 | neuralprophet , timemachines |
nprophet_p5 | 825.0 | 201 | yes | 52.2 | neuralprophet , timemachines |
nprophet_p3 | 813.0 | 222 | yes | 72.1 | neuralprophet , timemachines |
nprophet_p8 | 772.0 | 208 | yes | 71.0 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000 | 671.0 | 11 | yes | 244.2 | simdkalman , timemachines |
nprophet_p8_hypocratic | 606.0 | 164 | yes | 51.8 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 527.0 | 155 | yes | 65.8 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 526.0 | 14 | yes | 226.2 | simdkalman , timemachines |
nprophet_p3_hypocratic | 454.0 | 219 | yes | 79.8 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 451.0 | 295 | yes | 50.0 | neuralprophet , timemachines |
nprophet_p1 | 379.0 | 178 | yes | 73.0 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 238.0 | 37 | yes | 174.6 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | -66.0 | 135 | yes | 143.1 | simdkalman , timemachines |