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_precision_d0_ensemble | 2331.0 | 33 | yes | 128.3 | statsmodels , timemachines |
merlion_arima | 2241.0 | 17 | yes | 18.6 | timemachines |
tsa_p3_d0_q1 | 2227.0 | 158 | yes | 81.2 | statsmodels , timemachines |
tsa_balanced_d0_ensemble | 2200.0 | 18 | yes | 154.6 | statsmodels , timemachines |
divine_univariate | 2168.0 | 155 | yes | 60.7 | divinity , timemachines |
tsa_p2_d0_q1 | 2099.0 | 303 | yes | 60.3 | statsmodels , timemachines |
tsa_p2_d0_q0 | 2091.0 | 137 | yes | 65.0 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 2088.0 | 502 | yes | 24.4 | timemachines |
elo_fastest_univariate_aggressive_ensemble | 2084.0 | 617 | yes | 2.0 | timemachines |
tsa_balanced_combined_ensemble | 2081.0 | 26 | yes | 274.7 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 2080.0 | 526 | yes | 28.2 | timemachines |
tsa_p1_d0_q1 | 2075.0 | 225 | yes | 33.4 | statsmodels , timemachines |
tsa_p1_d0_q0 | 2073.0 | 433 | yes | 23.4 | statsmodels , timemachines |
elo_fastest_residual_precision_ensemble | 2057.0 | 659 | yes | 1.5 | timemachines |
elo_fastest_residual_aggressive_ensemble | 2040.0 | 600 | yes | 1.0 | timemachines |
elo_fastest_univariate_balanced_ensemble | 2026.0 | 687 | yes | 1.9 | timemachines |
sluggish_moving_average | 2025.0 | 673 | yes | 0.0 | timemachines |
elo_faster_univariate_balanced_ensemble | 2015.0 | 437 | yes | 30.4 | timemachines |
slowly_moving_average | 2014.0 | 910 | yes | 0.0 | timemachines |
orbit_lgt_12 | 2005.0 | 8 | yes | 44.9 | orbit-ml , timemachines |
elo_faster_univariate_precision_ensemble | 1960.0 | 560 | yes | 32.5 | timemachines |
bats_trendy_arma | 1947.0 | 13 | yes | 989.6 | tbats , timemachines |
pmd_univariate | 1931.0 | 546 | yes | 7.2 | pmdarima , timemachines |
divine_univariate_hypocratic_fast | 1930.0 | 83 | yes | 85.2 | divinity , timemachines |
tsa_aggressive_d0_ensemble | 1909.0 | 16 | yes | 3262.6 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 1908.0 | 910 | yes | 0.9 | timemachines |
thinking_slow_and_fast | 1906.0 | 887 | yes | 0.1 | timemachines |
quick_precision_ema_ensemble | 1903.0 | 832 | yes | 0.2 | timemachines |
elo_fastest_residual_balanced_ensemble | 1892.0 | 537 | yes | 0.8 | timemachines |
divine_univariate_hypocratic_slow | 1889.0 | 98 | yes | -0.1 | divinity , timemachines |
elo_faster_residual_balanced_ensemble | 1886.0 | 455 | yes | 26.6 | timemachines |
darts_autoarima | 1885.0 | 12 | yes | 183.1 | darts , timemachines |
bats_arma | 1883.0 | 13 | yes | 1865.6 | tbats , timemachines |
aggressive_ema_ensemble | 1871.0 | 718 | yes | 0.5 | timemachines |
tsa_p3_d0_q0 | 1870.0 | 174 | yes | 16.6 | statsmodels , timemachines |
gk_basic_skater | 1870.0 | 5 | no | 1482.7 | greykite , timemachines |
elo_faster_residual_aggressive_ensemble | 1866.0 | 416 | yes | 40.5 | timemachines |
tsa_precision_combined_ensemble | 1865.0 | 15 | yes | 3330.0 | statsmodels , timemachines |
bats_damped_arma_bc | 1854.0 | 12 | no | 611.8 | tbats , timemachines |
sk_ae | 1831.0 | 720 | yes | 11.3 | sktime , timemachines |
fbprophet_recursive | 1823.0 | 119 | yes | 181.3 | prophet , timemachines |
sk_autoarima | 1818.0 | 69 | yes | 67.8 | sktime , timemachines |
sk_ae_add_damped | 1815.0 | 707 | yes | 12.0 | sktime , timemachines |
merlion_prophet | 1814.0 | 5 | yes | 32.6 | timemachines |
thinking_slow_and_slow | 1809.0 | 685 | yes | 0.1 | timemachines |
quickly_moving_average | 1808.0 | 1000 | yes | 0.0 | timemachines |
slow_aggressive_ema_ensemble | 1804.0 | 818 | yes | 0.8 | timemachines |
thinking_fast_and_slow | 1800.0 | 712 | yes | 0.3 | timemachines |
thinking_precision_ensemble | 1791.0 | 29 | yes | 1.1 | timemachines |
bats_trendy_arma_bc | 1790.0 | 16 | yes | 858.2 | tbats , timemachines |
rvr_quickly_hypocratic | 1789.0 | 392 | yes | 0.4 | river , timemachines |
tsa_aggressive_combined_ensemble | 1786.0 | 37 | yes | 197.5 | statsmodels , timemachines |
bats_bc | 1775.0 | 20 | yes | 1040.2 | tbats , timemachines |
fbprophet_univariate | 1759.0 | 138 | yes | 76.2 | prophet , timemachines |
fbprophet_exogenous_hypocratic | 1759.0 | 169 | yes | 93.3 | prophet , timemachines |
slow_precision_ema_ensemble | 1757.0 | 664 | yes | 0.6 | timemachines |
bats_trendy | 1755.0 | 22 | yes | 308.2 | tbats , timemachines |
bats_trendy_bc | 1754.0 | 20 | yes | 385.3 | tbats , timemachines |
pmd_exogenous_hypocratic | 1753.0 | 610 | yes | 12.1 | pmdarima , timemachines |
bats_fast | 1733.0 | 15 | yes | 825.2 | tbats , timemachines |
dlm_univariate_a | 1727.0 | 17 | no | -1.0 | pydlm , timemachines |
sk_ae_add | 1696.0 | 1138 | yes | 24.2 | sktime , timemachines |
sk_theta | 1692.0 | 644 | yes | 0.9 | sktime , timemachines |
quick_aggressive_ema_ensemble | 1691.0 | 995 | yes | 0.6 | timemachines |
fbprophet_exogenous | 1688.0 | 114 | yes | 83.4 | prophet , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1686.0 | 29 | yes | 1801.7 | statsmodels , timemachines |
precision_ema_ensemble | 1684.0 | 736 | yes | 0.5 | timemachines |
darts_theta | 1677.0 | 44 | no | 1.3 | darts , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1674.0 | 49 | yes | 138.8 | statsmodels , timemachines |
bats_damped | 1660.0 | 6 | yes | 852.0 | tbats , timemachines |
slow_balanced_ema_ensemble | 1658.0 | 629 | yes | 0.2 | timemachines |
fbprophet_known | 1637.0 | 123 | yes | 82.7 | prophet , timemachines |
darts_fft | 1633.0 | 56 | yes | 0.9 | darts , timemachines |
suc_quick_aggressive_ema_ensemble | 1616.0 | 51 | yes | 8.6 | successor , timemachines |
rvr_slowly_hypocratic | 1613.0 | 358 | yes | 0.4 | river , timemachines |
bats_arma_bc | 1607.0 | 19 | yes | 1333.8 | tbats , timemachines |
fbprophet_cautious | 1604.0 | 103 | yes | 79.8 | prophet , timemachines |
pycrt_median_3 | 1600 | 0 | yes | -2.0 | pycaret , 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 |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
quick_balanced_ema_ensemble | 1594.0 | 656 | yes | 1.4 | timemachines |
orbit_lgt_24 | 1563.0 | 5 | yes | 49.6 | orbit-ml , timemachines |
tsa_balanced_theta_ensemble | 1560.0 | 562 | yes | 4.3 | 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 | yes | 1.3 | darts , timemachines |
darts_prophet | 1540.0 | 16 | yes | 78.9 | darts , timemachines |
fbprophet_univariate_hypocratic | 1507.0 | 137 | yes | 88.7 | prophet , timemachines |
merlion_mses | 1485.0 | 15 | yes | 49.6 | timemachines |
tsa_aggressive_theta_ensemble | 1459.0 | 931 | yes | 4.1 | statsmodels , timemachines |
pycrt_median_8 | 1448.0 | 1 | yes | 2596.4 | pycaret , timemachines |
balanced_ema_ensemble | 1445.0 | 646 | yes | 0.5 | timemachines |
bats_damped_bc | 1438.0 | 10 | yes | 365.3 | tbats , timemachines |
fbprophet_exogenous_exogenous | 1414.0 | 113 | yes | 459.0 | prophet , timemachines |
tsa_precision_theta_ensemble | 1373.0 | 568 | yes | 3.9 | statsmodels , timemachines |
darts_exp_smoothing | 1372.0 | 88 | yes | 9.9 | darts , timemachines |
suc_tsa_aggressive_d0_ensemble | 1371.0 | 6 | yes | 9.6 | successor , timemachines |
fbprophet_cautious_hypocratic | 1360.0 | 76 | yes | 128.9 | prophet , timemachines |
rvr_balanced_ensemble | 1356.0 | 466 | yes | 0.6 | river , timemachines |
rvr_p5_d0_q0 | 1327.0 | 316 | yes | 0.1 | river , timemachines |
bats_damped_arma | 1308.0 | 9 | yes | 1426.8 | tbats , timemachines |
thinking_fast_and_fast | 1295.0 | 715 | yes | 0.1 | timemachines |
empirical_last_value | 1273.0 | 535 | yes | 0.0 | timemachines |
fbprophet_univariate_univariate_hypocratic | 1227.0 | 108 | yes | 224.6 | prophet , timemachines |
rvr_p2_d0_q0 | 1137.0 | 441 | yes | 0.1 | river , timemachines |
smdk_p5_d0_q3_n1000 | 1111.0 | 14 | yes | 304.2 | simdkalman , timemachines |
rapidly_moving_average | 1108.0 | 682 | yes | 0.0 | timemachines |
suc_tsa_p2_d0_q1 | 1098.0 | 48 | yes | 10.1 | successor , timemachines |
rvr_p8_d0_q0 | 1054.0 | 445 | no | 0.0 | river , timemachines |
rvr_p1_d0_q0 | 1025.0 | 548 | yes | 0.0 | river , timemachines |
nprophet_p2 | 918.0 | 147 | yes | 66.3 | neuralprophet , timemachines |
nprophet_p5 | 872.0 | 194 | yes | 58.3 | neuralprophet , timemachines |
nprophet_p3 | 733.0 | 218 | yes | 35.2 | neuralprophet , timemachines |
nprophet_p8 | 705.0 | 214 | yes | 63.4 | neuralprophet , timemachines |
nprophet_p8_hypocratic | 589.0 | 164 | yes | 72.1 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 577.0 | 13 | yes | 168.9 | simdkalman , timemachines |
nprophet_p2_hypocratic | 560.0 | 165 | yes | 51.5 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 479.0 | 286 | yes | 63.4 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 466.0 | 173 | yes | 50.7 | neuralprophet , timemachines |
nprophet_p3_hypocratic | 446.0 | 199 | yes | 45.4 | neuralprophet , timemachines |
nprophet_p1 | 422.0 | 174 | yes | 50.8 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 257.0 | 32 | no | 61.6 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | 134.0 | 133 | yes | 128.7 | simdkalman , timemachines |