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_p2_d0_q1 | 2584.0 | 511 | yes | 70.9 | statsmodels , timemachines |
pmd_univariate | 2458.0 | 510 | yes | 6.5 | pmdarima , timemachines |
tsa_precision_d0_ensemble | 2284.0 | 29 | yes | 218.8 | statsmodels , timemachines |
tsa_p1_d0_q1 | 2234.0 | 185 | yes | 37.2 | statsmodels , timemachines |
slowly_moving_average | 2163.0 | 914 | yes | 0.0 | timemachines |
elo_faster_residual_balanced_ensemble | 2131.0 | 906 | yes | 6.8 | timemachines |
thinking_slow_and_fast | 2120.0 | 959 | yes | 0.1 | timemachines |
elo_faster_residual_aggressive_ensemble | 2116.0 | 487 | yes | 13.9 | timemachines |
aggressive_ema_ensemble | 2107.0 | 711 | yes | 0.4 | timemachines |
elo_fastest_residual_aggressive_ensemble | 2104.0 | 875 | yes | 0.9 | timemachines |
sk_autoarima | 2094.0 | 72 | yes | 127.4 | sktime , timemachines |
pmd_exogenous_hypocratic | 2083.0 | 613 | yes | 4.5 | pmdarima , timemachines |
tsa_balanced_d0_ensemble | 2080.0 | 12 | yes | 2594.0 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 2044.0 | 423 | yes | 10.0 | timemachines |
divine_univariate_hypocratic_slow | 2013.0 | 126 | yes | 0.0 | divinity , timemachines |
slow_precision_ema_ensemble | 2000.0 | 623 | yes | 0.5 | timemachines |
elo_fastest_univariate_balanced_ensemble | 1999.0 | 779 | yes | 1.8 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1997.0 | 550 | yes | -3.1 | timemachines |
slow_aggressive_ema_ensemble | 1982.0 | 939 | yes | 0.3 | timemachines |
fbprophet_cautious | 1969.0 | 162 | yes | 122.3 | prophet , timemachines |
bats_damped_arma | 1968.0 | 9 | yes | 1397.4 | tbats , timemachines |
tsa_p3_d0_q0 | 1964.0 | 182 | yes | 126.7 | statsmodels , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1960.0 | 37 | yes | 196.8 | statsmodels , timemachines |
elo_fastest_residual_balanced_ensemble | 1959.0 | 679 | yes | 0.8 | timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1956.0 | 42 | yes | 315.3 | statsmodels , timemachines |
elo_fastest_residual_precision_ensemble | 1943.0 | 900 | yes | 1.8 | timemachines |
bats_damped_bc | 1932.0 | 20 | yes | 1089.5 | tbats , timemachines |
merlion_arima | 1916.0 | 31 | yes | 58.2 | timemachines |
tsa_p2_d0_q0 | 1904.0 | 363 | yes | 23.0 | statsmodels , timemachines |
slow_balanced_ema_ensemble | 1889.0 | 846 | yes | 0.3 | timemachines |
bats_trendy_arma_bc | 1882.0 | 12 | yes | 1549.1 | tbats , timemachines |
quick_balanced_ema_ensemble | 1866.0 | 716 | yes | 0.3 | timemachines |
gk_basic_skater | 1864.0 | 4 | yes | 3756.3 | greykite , timemachines |
bats_damped_arma_bc | 1856.0 | 5 | no | 1325.4 | tbats , timemachines |
bats_fast | 1839.0 | 19 | yes | 866.4 | tbats , timemachines |
divine_univariate_hypocratic_fast | 1834.0 | 115 | yes | -0.1 | divinity , timemachines |
tsa_precision_combined_ensemble | 1826.0 | 17 | yes | 482.0 | statsmodels , timemachines |
fbprophet_exogenous | 1825.0 | 142 | yes | 165.5 | prophet , timemachines |
bats_trendy | 1824.0 | 19 | yes | 857.0 | tbats , timemachines |
divine_univariate | 1823.0 | 160 | yes | -0.1 | divinity , timemachines |
fbprophet_univariate_hypocratic | 1817.0 | 130 | yes | 179.1 | prophet , timemachines |
tsa_p1_d0_q0 | 1816.0 | 433 | yes | 20.0 | statsmodels , timemachines |
bats_trendy_bc | 1795.0 | 21 | yes | 365.3 | tbats , timemachines |
elo_faster_univariate_balanced_ensemble | 1794.0 | 482 | yes | 8.7 | timemachines |
bats_damped | 1784.0 | 9 | yes | 422.4 | tbats , timemachines |
elo_faster_univariate_precision_ensemble | 1783.0 | 418 | yes | 6.4 | timemachines |
thinking_precision_ensemble | 1774.0 | 42 | yes | 0.6 | timemachines |
thinking_slow_and_slow | 1772.0 | 764 | yes | 0.1 | timemachines |
tsa_p3_d0_q1 | 1763.0 | 132 | yes | 90.5 | statsmodels , timemachines |
darts_autoarima | 1759.0 | 19 | yes | 166.8 | darts , timemachines |
thinking_fast_and_slow | 1758.0 | 763 | yes | 0.1 | timemachines |
precision_ema_ensemble | 1751.0 | 730 | yes | 0.2 | timemachines |
dlm_univariate_a | 1709.0 | 72 | no | -1.0 | pydlm , timemachines |
balanced_ema_ensemble | 1708.0 | 663 | yes | 0.3 | timemachines |
bats_bc | 1701.0 | 10 | yes | 683.3 | tbats , timemachines |
sk_ae | 1697.0 | 508 | yes | 12.4 | sktime , timemachines |
tsa_aggressive_combined_ensemble | 1692.0 | 14 | yes | 449.2 | statsmodels , timemachines |
bats_trendy_arma | 1691.0 | 15 | yes | 1034.2 | tbats , timemachines |
fbprophet_known | 1690.0 | 141 | yes | 76.4 | prophet , timemachines |
sluggish_moving_average | 1657.0 | 1088 | yes | 0.0 | timemachines |
bats_arma | 1645.0 | 12 | yes | 2087.2 | tbats , timemachines |
darts_theta | 1634.0 | 31 | no | 1.1 | darts , timemachines |
fbprophet_exogenous_hypocratic | 1619.0 | 103 | yes | 77.5 | prophet , timemachines |
sk_ae_add_damped | 1606.0 | 664 | yes | 10.2 | sktime , 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.0 | sktime , timemachines |
sk_ae_mul | 1600 | 0 | no | -0.1 | 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_8 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_mean_8 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -5763.9 | pycaret , timemachines |
fbprophet_chaser | 1600 | 0 | no | -1.0 | prophet , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
tsa_aggressive_d0_ensemble | 1599.0 | 30 | yes | 983.1 | statsmodels , timemachines |
darts_prophet | 1595.0 | 12 | no | 94.0 | darts , timemachines |
pycrt_median_3 | 1590.0 | 2 | no | 1918.1 | pycaret , timemachines |
fbprophet_recursive | 1585.0 | 155 | yes | 152.1 | prophet , timemachines |
bats_arma_bc | 1577.0 | 10 | yes | 1064.6 | tbats , timemachines |
quick_aggressive_ema_ensemble | 1565.0 | 1374 | yes | 0.3 | timemachines |
pycrt_mean_3 | 1535.0 | 1 | no | 3111.9 | pycaret , timemachines |
sk_ae_add | 1513.0 | 771 | yes | 13.9 | sktime , timemachines |
tsa_balanced_combined_ensemble | 1497.0 | 21 | yes | 539.1 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 1495.0 | 584 | yes | 3.1 | timemachines |
fbprophet_cautious_hypocratic | 1495.0 | 80 | yes | 81.3 | prophet , timemachines |
rvr_slowly_hypocratic | 1491.0 | 343 | yes | 0.6 | river , timemachines |
suc_quick_aggressive_ema_ensemble | 1488.0 | 28 | no | 5.7 | successor , timemachines |
darts_arima | 1476.0 | 54 | no | 16.4 | darts , timemachines |
tsa_balanced_theta_ensemble | 1473.0 | 724 | yes | 3.5 | statsmodels , timemachines |
suc_tsa_aggressive_d0_ensemble | 1455.0 | 17 | yes | 4.4 | successor , timemachines |
suc_tsa_p2_d0_q1 | 1450.0 | 28 | no | 7.2 | successor , timemachines |
fbprophet_univariate | 1441.0 | 176 | yes | 122.5 | prophet , timemachines |
sk_theta | 1432.0 | 681 | yes | 0.9 | sktime , timemachines |
darts_fft | 1432.0 | 17 | no | 0.7 | darts , timemachines |
dlm_univariate_b | 1422.0 | 78 | no | -1.0 | pydlm , timemachines |
nprophet_p5 | 1418.0 | 257 | yes | 41.6 | neuralprophet , timemachines |
merlion_prophet | 1398.0 | 12 | yes | 57.9 | timemachines |
smdk_p5_d0_q3_n500_aggressive | 1392.0 | 148 | yes | 64.9 | simdkalman , timemachines |
darts_four_theta | 1363.0 | 61 | no | 1.6 | darts , timemachines |
orbit_lgt_12 | 1362.0 | 8 | yes | 0.0 | orbit-ml , timemachines |
tsa_precision_theta_ensemble | 1351.0 | 651 | yes | 6.2 | statsmodels , timemachines |
darts_exp_smoothing | 1301.0 | 42 | no | 10.6 | darts , timemachines |
orbit_lgt_24 | 1296.0 | 5 | yes | 0.0 | orbit-ml , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1282.0 | 583 | yes | 3.9 | timemachines |
rapidly_moving_average | 1280.0 | 735 | yes | 0.0 | timemachines |
thinking_fast_and_fast | 1270.0 | 690 | yes | 0.1 | timemachines |
rvr_balanced_ensemble | 1260.0 | 454 | yes | 0.5 | river , timemachines |
quickly_moving_average | 1232.0 | 1155 | yes | 0.0 | timemachines |
rvr_quickly_hypocratic | 1224.0 | 509 | yes | 0.4 | river , timemachines |
quick_precision_ema_ensemble | 1201.0 | 646 | yes | 0.3 | timemachines |
fbprophet_univariate_univariate_hypocratic | 1199.0 | 87 | yes | 248.4 | prophet , timemachines |
rvr_p8_d0_q0 | 1192.0 | 386 | yes | 0.1 | river , timemachines |
nprophet_p3 | 1151.0 | 228 | yes | 40.4 | neuralprophet , timemachines |
merlion_mses | 1110.0 | 13 | yes | 64.4 | timemachines |
nprophet_p1 | 1109.0 | 579 | yes | 88.2 | neuralprophet , timemachines |
nprophet_p2 | 1091.0 | 211 | yes | 31.5 | neuralprophet , timemachines |
nprophet_p3_hypocratic | 1065.0 | 244 | yes | 53.5 | neuralprophet , timemachines |
rvr_p1_d0_q0 | 1009.0 | 417 | yes | 0.0 | river , timemachines |
nprophet_p2_hypocratic | 997.0 | 187 | yes | 54.0 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500 | 976.0 | 234 | yes | 56.0 | simdkalman , timemachines |
nprophet_p5_hypocratic | 954.0 | 209 | yes | 61.6 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 937.0 | 212 | yes | 60.6 | neuralprophet , timemachines |
tsa_aggressive_theta_ensemble | 928.0 | 641 | yes | 3.5 | statsmodels , timemachines |
nprophet_p8_hypocratic | 904.0 | 190 | yes | 63.3 | neuralprophet , timemachines |
fbprophet_exogenous_exogenous | 883.0 | 87 | yes | 619.6 | prophet , timemachines |
rvr_p5_d0_q0 | 859.0 | 563 | yes | 0.1 | river , timemachines |
nprophet_p8 | 858.0 | 174 | yes | 78.3 | neuralprophet , timemachines |
empirical_last_value | 824.0 | 620 | yes | 0.1 | timemachines |
smdk_p5_d0_q3_n1000_aggressive | 779.0 | 75 | yes | 148.9 | simdkalman , timemachines |
smdk_p5_d0_q3_n1000 | 758.0 | 94 | no | 157.6 | simdkalman , timemachines |
rvr_p2_d0_q0 | 731.0 | 908 | yes | 0.0 | river , timemachines |