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 | 2279.0 | 211 | yes | 62.7 | statsmodels , timemachines |
bats_trendy_bc | 2087.0 | 10 | yes | 1367.2 | tbats , timemachines |
tsa_aggressive_d0_ensemble | 2028.0 | 30 | yes | 295.4 | statsmodels , timemachines |
bats_damped_arma_bc | 2007.0 | 21 | yes | 1207.7 | tbats , timemachines |
elo_faster_univariate_aggressive_ensemble | 1991.0 | 576 | yes | 9.1 | timemachines |
elo_faster_univariate_balanced_ensemble | 1968.0 | 432 | yes | 3.1 | timemachines |
tsa_p1_d0_q1 | 1929.0 | 168 | yes | 62.2 | statsmodels , timemachines |
bats_arma | 1922.0 | 9 | yes | 420.0 | tbats , timemachines |
tsa_balanced_combined_ensemble | 1906.0 | 23 | yes | 159.5 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 1892.0 | 36 | yes | 152.3 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 1886.0 | 22 | yes | 230.0 | statsmodels , timemachines |
tsa_p3_d0_q1 | 1878.0 | 119 | yes | 93.7 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 1867.0 | 605 | yes | 3.4 | timemachines |
pmd_exogenous_hypocratic | 1861.0 | 492 | yes | 3.3 | pmdarima , timemachines |
bats_damped_arma | 1847.0 | 15 | yes | 436.8 | tbats , timemachines |
elo_faster_residual_aggressive_ensemble | 1843.0 | 549 | yes | 4.3 | timemachines |
tsa_balanced_d0_ensemble | 1834.0 | 17 | yes | 2724.3 | statsmodels , timemachines |
bats_damped_bc | 1810.0 | 14 | yes | 1587.8 | tbats , timemachines |
tsa_p3_d0_q0 | 1803.0 | 381 | yes | 58.6 | statsmodels , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1802.0 | 35 | yes | 2198.0 | statsmodels , timemachines |
thinking_precision_ensemble | 1802.0 | 20 | yes | 0.6 | timemachines |
tsa_aggressive_theta_ensemble | 1791.0 | 953 | yes | 1.8 | statsmodels , timemachines |
sk_ae | 1785.0 | 682 | yes | 6.6 | sktime , timemachines |
merlion_arima | 1782.0 | 10 | yes | 19.5 | timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1781.0 | 51 | yes | 144.0 | statsmodels , timemachines |
balanced_ema_ensemble | 1778.0 | 889 | yes | 0.0 | timemachines |
fbprophet_cautious | 1778.0 | 41 | yes | 94.8 | prophet , timemachines |
thinking_fast_and_slow | 1773.0 | 661 | yes | 0.0 | timemachines |
bats_trendy_arma_bc | 1757.0 | 11 | yes | 469.7 | tbats , timemachines |
sk_ae_add_damped | 1748.0 | 755 | yes | 6.3 | sktime , timemachines |
slowly_moving_average | 1738.0 | 896 | yes | 0.0 | timemachines |
rvr_quickly_hypocratic | 1738.0 | 433 | yes | 0.4 | river , timemachines |
bats_trendy | 1738.0 | 33 | yes | 316.1 | tbats , timemachines |
tsa_p2_d0_q0 | 1738.0 | 359 | yes | 44.0 | statsmodels , timemachines |
precision_ema_ensemble | 1735.0 | 1043 | yes | 0.1 | timemachines |
sk_autoarima | 1735.0 | 47 | yes | 153.1 | sktime , timemachines |
divine_univariate_hypocratic_fast | 1731.0 | 61 | yes | 91.4 | divinity , timemachines |
tsa_p1_d0_q0 | 1730.0 | 423 | yes | 13.7 | statsmodels , timemachines |
elo_faster_univariate_precision_ensemble | 1726.0 | 585 | yes | 19.2 | timemachines |
divine_univariate | 1723.0 | 95 | yes | -0.1 | divinity , timemachines |
thinking_slow_and_fast | 1705.0 | 645 | yes | 0.1 | timemachines |
bats_damped | 1695.0 | 16 | yes | 803.2 | tbats , timemachines |
bats_trendy_arma | 1693.0 | 9 | yes | 695.2 | tbats , timemachines |
darts_autoarima | 1692.0 | 5 | yes | 418.9 | darts , timemachines |
pmd_univariate | 1685.0 | 475 | yes | 1.4 | pmdarima , timemachines |
divine_univariate_hypocratic_slow | 1679.0 | 73 | yes | 0.0 | divinity , timemachines |
elo_faster_residual_balanced_ensemble | 1678.0 | 738 | yes | 7.0 | timemachines |
sk_ae_add | 1674.0 | 1008 | yes | 5.5 | sktime , timemachines |
tsa_precision_combined_ensemble | 1664.0 | 10 | yes | 221.6 | statsmodels , timemachines |
darts_theta | 1659.0 | 49 | yes | 1.2 | darts , timemachines |
tsa_precision_theta_ensemble | 1652.0 | 553 | yes | 2.7 | statsmodels , timemachines |
thinking_fast_and_fast | 1646.0 | 666 | yes | 0.0 | timemachines |
elo_fastest_residual_aggressive_ensemble | 1643.0 | 533 | yes | 0.7 | timemachines |
slow_precision_ema_ensemble | 1635.0 | 626 | yes | 0.2 | timemachines |
bats_arma_bc | 1634.0 | 10 | yes | 323.0 | tbats , timemachines |
elo_fastest_residual_precision_ensemble | 1631.0 | 738 | yes | 0.5 | timemachines |
aggressive_ema_ensemble | 1631.0 | 769 | yes | 0.1 | timemachines |
smdk_p5_d0_q3_n500 | 1622.0 | 335 | yes | 40.3 | simdkalman , timemachines |
suc_tsa_p2_d0_q1 | 1621.0 | 53 | yes | 4.5 | successor , timemachines |
fbprophet_known | 1608.0 | 41 | yes | 78.4 | prophet , timemachines |
elo_fastest_univariate_balanced_ensemble | 1606.0 | 757 | yes | 1.6 | timemachines |
pycrt_median_8 | 1602.0 | 2 | yes | 4135.5 | pycaret , timemachines |
pycrt_mean_8 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | 0.0 | orbit-ml , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | -0.2 | 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.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 |
dlm_univariate_a | 1600 | 0 | no | -1.0 | pydlm , timemachines |
dlm_univariate_b | 1600 | 0 | no | -1.0 | pydlm , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -1.0 | pycaret , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
slow_balanced_ema_ensemble | 1600.0 | 844 | yes | 0.2 | timemachines |
sluggish_moving_average | 1596.0 | 767 | yes | 0.0 | timemachines |
darts_arima | 1595.0 | 46 | no | 11.2 | darts , timemachines |
elo_fastest_univariate_precision_ensemble | 1593.0 | 990 | yes | 1.1 | timemachines |
fbprophet_cautious_hypocratic | 1590.0 | 37 | yes | 77.4 | prophet , timemachines |
fbprophet_exogenous_hypocratic | 1587.0 | 58 | yes | 121.2 | prophet , timemachines |
fbprophet_recursive | 1578.0 | 56 | yes | 83.1 | prophet , timemachines |
fbprophet_exogenous | 1574.0 | 104 | yes | 83.1 | prophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 1573.0 | 11 | yes | 1.9 | successor , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1562.0 | 681 | yes | 1.2 | timemachines |
bats_bc | 1561.0 | 13 | no | 949.6 | tbats , timemachines |
elo_fastest_residual_balanced_ensemble | 1556.0 | 645 | yes | 0.6 | timemachines |
quick_precision_ema_ensemble | 1528.0 | 659 | yes | 0.2 | timemachines |
rapidly_moving_average | 1525.0 | 733 | yes | 0.0 | timemachines |
tsa_balanced_theta_ensemble | 1523.0 | 585 | yes | 4.9 | statsmodels , timemachines |
rvr_balanced_ensemble | 1520.0 | 425 | yes | 0.4 | river , timemachines |
pycrt_median_3 | 1509.0 | 2 | yes | 1010.9 | pycaret , timemachines |
gk_basic_skater | 1509.0 | 3 | yes | 1526.7 | greykite , timemachines |
quick_balanced_ema_ensemble | 1500.0 | 731 | yes | 0.2 | timemachines |
sk_theta | 1494.0 | 664 | yes | 0.6 | sktime , timemachines |
pycrt_mean_3 | 1491.0 | 1 | yes | 1976.1 | pycaret , timemachines |
fbprophet_univariate | 1488.0 | 92 | yes | 83.2 | prophet , timemachines |
fbprophet_univariate_hypocratic | 1488.0 | 43 | yes | 80.4 | prophet , timemachines |
darts_prophet | 1474.0 | 14 | yes | 75.5 | darts , timemachines |
suc_quick_aggressive_ema_ensemble | 1464.0 | 46 | no | 4.5 | successor , timemachines |
nprophet_p2_hypocratic | 1463.0 | 301 | yes | 30.1 | neuralprophet , timemachines |
darts_exp_smoothing | 1449.0 | 109 | no | 9.7 | darts , timemachines |
smdk_p5_d0_q3_n1000 | 1442.0 | 228 | no | 28.7 | simdkalman , timemachines |
slow_aggressive_ema_ensemble | 1437.0 | 596 | yes | 0.2 | timemachines |
merlion_prophet | 1433.0 | 12 | yes | 33.8 | timemachines |
fbprophet_exogenous_exogenous | 1433.0 | 38 | yes | 242.7 | prophet , timemachines |
darts_four_theta | 1428.0 | 45 | no | 1.5 | darts , timemachines |
rvr_slowly_hypocratic | 1421.0 | 331 | yes | 0.4 | river , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1416.0 | 348 | yes | 32.9 | simdkalman , timemachines |
quickly_moving_average | 1407.0 | 721 | yes | 0.0 | timemachines |
nprophet_p3_hypocratic | 1394.0 | 175 | yes | 38.4 | neuralprophet , timemachines |
thinking_slow_and_slow | 1365.0 | 659 | yes | 0.1 | timemachines |
nprophet_p3 | 1342.0 | 268 | yes | 40.0 | neuralprophet , timemachines |
nprophet_p5 | 1337.0 | 242 | yes | 30.4 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1315.0 | 39 | yes | 231.2 | prophet , timemachines |
merlion_mses | 1307.0 | 6 | yes | 49.8 | timemachines |
nprophet_p8 | 1305.0 | 212 | yes | 39.4 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1303.0 | 186 | yes | 46.7 | simdkalman , timemachines |
nprophet_p1 | 1296.0 | 507 | yes | 30.3 | neuralprophet , timemachines |
quick_aggressive_ema_ensemble | 1286.0 | 1337 | yes | 0.2 | timemachines |
nprophet_p2 | 1283.0 | 278 | yes | 62.8 | neuralprophet , timemachines |
bats_fast | 1247.0 | 14 | yes | 199.5 | tbats , timemachines |
rvr_p1_d0_q0 | 1235.0 | 512 | yes | 0.1 | river , timemachines |
nprophet_p8_hypocratic | 1224.0 | 242 | yes | 31.3 | neuralprophet , timemachines |
darts_fft | 1196.0 | 42 | yes | 0.7 | darts , timemachines |
rvr_p5_d0_q0 | 1175.0 | 308 | no | 0.0 | river , timemachines |
rvr_p8_d0_q0 | 1166.0 | 320 | yes | 0.1 | river , timemachines |
nprophet_p1_hypocratic | 1160.0 | 285 | yes | 37.9 | neuralprophet , timemachines |
empirical_last_value | 1123.0 | 474 | yes | 0.0 | timemachines |
nprophet_p5_hypocratic | 1021.0 | 317 | yes | 37.4 | neuralprophet , timemachines |
rvr_p2_d0_q0 | 978.0 | 412 | no | 0.0 | river , timemachines |