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 | 2514.0 | 1205 | yes | 73.3 | statsmodels , timemachines |
tsa_balanced_d0_ensemble | 2278.0 | 26 | yes | 184.8 | statsmodels , timemachines |
elo_fastest_residual_balanced_ensemble | 2243.0 | 1464 | yes | 0.9 | timemachines |
tsa_p1_d0_q0 | 2190.0 | 790 | yes | 27.7 | statsmodels , timemachines |
tsa_p1_d0_q1 | 2185.0 | 406 | yes | 44.6 | statsmodels , timemachines |
sk_ae | 2183.0 | 1415 | yes | 16.7 | sktime , timemachines |
tsa_precision_d0_ensemble | 2153.0 | 62 | yes | 727.2 | statsmodels , timemachines |
tsa_aggressive_d0_ensemble | 2123.0 | 34 | yes | 383.5 | statsmodels , timemachines |
quick_aggressive_ema_ensemble | 2116.0 | 3349 | yes | 0.1 | timemachines |
precision_ema_ensemble | 2077.0 | 1902 | yes | 0.1 | timemachines |
sk_autoarima | 2069.0 | 134 | yes | 94.0 | sktime , timemachines |
balanced_ema_ensemble | 2068.0 | 1708 | yes | 0.1 | timemachines |
bats_damped | 2062.0 | 23 | yes | 1147.2 | tbats , timemachines |
tsa_p3_d0_q1 | 2062.0 | 164 | yes | 110.0 | statsmodels , timemachines |
tsa_p2_d0_q0 | 2046.0 | 549 | yes | 45.4 | statsmodels , timemachines |
slow_precision_ema_ensemble | 2037.0 | 1259 | yes | 0.1 | timemachines |
tsa_aggressive_combined_ensemble | 2034.0 | 23 | yes | 5620.4 | statsmodels , timemachines |
bats_trendy_bc | 2021.0 | 31 | yes | 1301.7 | tbats , timemachines |
merlion_arima | 1996.0 | 57 | yes | 38.6 | timemachines |
aggressive_ema_ensemble | 1970.0 | 1564 | yes | 0.1 | timemachines |
elo_fastest_residual_precision_ensemble | 1955.0 | 1479 | yes | 0.9 | timemachines |
elo_fastest_residual_aggressive_ensemble | 1952.0 | 1152 | yes | 2.0 | timemachines |
bats_damped_bc | 1940.0 | 42 | yes | 824.5 | tbats , timemachines |
nprophet_p8 | 1930.0 | 500 | yes | 36.5 | neuralprophet , timemachines |
elo_fastest_univariate_precision_ensemble | 1909.0 | 1885 | yes | 4220.0 | timemachines |
elo_faster_univariate_balanced_ensemble | 1908.0 | 844 | yes | 1500.2 | timemachines |
bats_arma | 1895.0 | 25 | yes | 1955.7 | tbats , timemachines |
slow_aggressive_ema_ensemble | 1885.0 | 1202 | yes | 0.2 | timemachines |
thinking_fast_and_slow | 1873.0 | 1183 | yes | 0.0 | timemachines |
elo_faster_univariate_precision_ensemble | 1856.0 | 1154 | yes | 2576.4 | timemachines |
elo_faster_residual_balanced_ensemble | 1850.0 | 1130 | yes | 30.8 | timemachines |
fbprophet_univariate_hypocratic | 1837.0 | 71 | yes | 170.5 | prophet , timemachines |
quick_balanced_ema_ensemble | 1831.0 | 1273 | yes | 0.1 | timemachines |
tsa_aggressive_theta_ensemble | 1827.0 | 1759 | yes | 2.5 | statsmodels , timemachines |
tsa_p3_d0_q0 | 1802.0 | 426 | yes | 77.2 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 1800.0 | 1068 | yes | 2507.5 | timemachines |
bats_damped_arma | 1797.0 | 18 | yes | 2678.5 | tbats , timemachines |
bats_arma_bc | 1793.0 | 21 | yes | 1883.5 | tbats , timemachines |
elo_fastest_univariate_balanced_ensemble | 1791.0 | 1026 | yes | 1214.1 | timemachines |
bats_trendy_arma_bc | 1785.0 | 21 | yes | 877.7 | tbats , timemachines |
thinking_precision_ensemble | 1782.0 | 59 | yes | 0.5 | timemachines |
slow_balanced_ema_ensemble | 1776.0 | 1805 | yes | 0.1 | timemachines |
fbprophet_cautious | 1759.0 | 71 | yes | 120.8 | prophet , timemachines |
tsa_precision_theta_ensemble | 1755.0 | 1105 | yes | 5.6 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 1742.0 | 1081 | yes | 24.3 | timemachines |
bats_trendy | 1732.0 | 37 | yes | 951.9 | tbats , timemachines |
darts_autoarima | 1732.0 | 24 | no | 41.6 | darts , timemachines |
tsa_precision_combined_ensemble | 1727.0 | 54 | yes | 1083.7 | statsmodels , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1709.0 | 1075 | yes | 1136.6 | timemachines |
bats_fast | 1702.0 | 47 | yes | 726.3 | tbats , timemachines |
sluggish_moving_average | 1691.0 | 1475 | yes | 0.0 | timemachines |
thinking_slow_and_fast | 1685.0 | 2002 | yes | 0.0 | timemachines |
pycrt_median_3_full | 1661.0 | 2 | yes | 5828.6 | pycaret , timemachines |
bats_bc | 1659.0 | 44 | yes | 763.3 | tbats , timemachines |
tsa_balanced_combined_ensemble | 1658.0 | 54 | yes | 557.3 | statsmodels , timemachines |
darts_theta | 1657.0 | 91 | no | 1.2 | darts , timemachines |
quick_precision_ema_ensemble | 1652.0 | 1343 | yes | 0.1 | timemachines |
bats_damped_arma_bc | 1650.0 | 13 | yes | 1396.8 | tbats , timemachines |
bats_trendy_arma | 1643.0 | 26 | yes | 1310.1 | tbats , timemachines |
merlion_prophet | 1631.0 | 48 | yes | 46.5 | timemachines |
divine_univariate | 1629.0 | 101 | yes | -0.1 | divinity , timemachines |
darts_exp_smoothing | 1627.0 | 292 | no | 10.3 | darts , timemachines |
elo_faster_residual_aggressive_ensemble | 1621.0 | 709 | yes | 20.5 | timemachines |
divine_univariate_hypocratic_slow | 1615.0 | 161 | yes | 81.3 | divinity , timemachines |
sk_ae_add | 1611.0 | 2101 | yes | 16.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 | 1600 | 0 | no | -0.1 | sktime , timemachines |
sk_ae_mul_damped | 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 |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
darts_prophet | 1599.0 | 26 | no | 78.1 | darts , timemachines |
pycrt_median_8 | 1599.0 | 2 | yes | 5004.0 | pycaret , timemachines |
darts_fft | 1598.0 | 101 | no | -1.1 | darts , timemachines |
smdk_p5_d0_q3_n500 | 1589.0 | 976 | yes | 14.4 | simdkalman , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1565.0 | 669 | yes | 39.1 | simdkalman , timemachines |
slowly_moving_average | 1562.0 | 1668 | yes | 0.0 | timemachines |
pycrt_mean_8 | 1562.0 | 2 | no | 2918.5 | pycaret , timemachines |
pycrt_mean_3 | 1562.0 | 2 | no | 2590.9 | pycaret , timemachines |
darts_four_theta | 1543.0 | 182 | no | 1.4 | darts , timemachines |
pmd_univariate | 1515.0 | 892 | yes | 4.6 | pmdarima , timemachines |
suc_tsa_p2_d0_q1 | 1492.0 | 110 | no | 1.8 | successor , timemachines |
fbprophet_recursive | 1488.0 | 72 | yes | 175.8 | prophet , timemachines |
tsa_balanced_theta_ensemble | 1486.0 | 1374 | yes | 6.0 | statsmodels , timemachines |
fbprophet_exogenous_exogenous | 1478.0 | 51 | yes | 376.8 | prophet , timemachines |
nprophet_p5_hypocratic | 1467.0 | 616 | yes | 53.6 | neuralprophet , timemachines |
orbit_lgt_24 | 1461.0 | 9 | yes | -0.4 | orbit-ml , timemachines |
sk_ae_add_damped | 1454.0 | 1519 | yes | 11.5 | sktime , timemachines |
pycrt_median_3 | 1454.0 | 1 | no | 1416.4 | pycaret , timemachines |
suc_quick_aggressive_ema_ensemble | 1446.0 | 99 | no | 3.1 | successor , timemachines |
darts_arima | 1442.0 | 112 | no | 8.6 | darts , timemachines |
divine_univariate_hypocratic_fast | 1434.0 | 105 | yes | -0.1 | divinity , timemachines |
nprophet_p1_hypocratic | 1428.0 | 505 | yes | 36.4 | neuralprophet , timemachines |
thinking_slow_and_slow | 1422.0 | 1205 | yes | 0.1 | timemachines |
nprophet_p2 | 1408.0 | 691 | yes | 46.6 | neuralprophet , timemachines |
nprophet_p1 | 1402.0 | 1281 | yes | 36.3 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 1400.0 | 527 | yes | 35.6 | neuralprophet , timemachines |
rapidly_moving_average | 1388.0 | 1520 | yes | 0.0 | timemachines |
fbprophet_known | 1383.0 | 68 | yes | 199.2 | prophet , timemachines |
sk_theta | 1372.0 | 1261 | yes | 1.4 | sktime , timemachines |
pmd_exogenous_hypocratic | 1357.0 | 1046 | yes | 2.9 | pmdarima , timemachines |
nprophet_p3_hypocratic | 1356.0 | 539 | yes | 40.2 | neuralprophet , timemachines |
nprophet_p5 | 1351.0 | 609 | yes | 67.4 | neuralprophet , timemachines |
gk_basic_skater | 1338.0 | 8 | yes | 4515.1 | greykite , timemachines |
fbprophet_cautious_hypocratic | 1329.0 | 67 | yes | 232.0 | prophet , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1319.0 | 93 | yes | 1506.2 | statsmodels , timemachines |
nprophet_p3 | 1315.0 | 416 | yes | 48.7 | neuralprophet , timemachines |
rvr_balanced_ensemble | 1283.0 | 763 | yes | 0.4 | river , timemachines |
thinking_fast_and_fast | 1271.0 | 1317 | yes | 0.0 | timemachines |
fbprophet_exogenous_hypocratic | 1249.0 | 82 | yes | 179.1 | prophet , timemachines |
fbprophet_univariate | 1214.0 | 173 | yes | 165.3 | prophet , timemachines |
nprophet_p8_hypocratic | 1209.0 | 464 | yes | 51.2 | neuralprophet , timemachines |
quickly_moving_average | 1207.0 | 1261 | yes | 0.0 | timemachines |
orbit_lgt_12 | 1206.0 | 19 | yes | 0.0 | orbit-ml , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1192.0 | 833 | yes | 18.1 | simdkalman , timemachines |
fbprophet_univariate_univariate_hypocratic | 1172.0 | 54 | yes | 359.6 | prophet , timemachines |
fbprophet_exogenous | 1148.0 | 108 | yes | 163.2 | prophet , timemachines |
empirical_last_value | 1137.0 | 946 | yes | 0.0 | timemachines |
smdk_p5_d0_q3_n1000 | 1053.0 | 660 | yes | 28.7 | simdkalman , timemachines |
rvr_p1_d0_q0 | 934.0 | 974 | yes | 0.1 | river , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 850.0 | 78 | yes | 583.7 | statsmodels , timemachines |
rvr_p8_d0_q0 | 812.0 | 670 | yes | 0.1 | river , timemachines |
rvr_slowly_hypocratic | 800.0 | 647 | yes | 0.6 | river , timemachines |
rvr_quickly_hypocratic | 759.0 | 940 | yes | 0.4 | river , timemachines |
rvr_p2_d0_q0 | 700.0 | 840 | yes | 0.0 | river , timemachines |
suc_tsa_aggressive_d0_ensemble | 687.0 | 52 | yes | 1.7 | successor , timemachines |
merlion_mses | 637.0 | 26 | yes | 103.3 | timemachines |
rvr_p5_d0_q0 | 564.0 | 715 | yes | 0.1 | river , timemachines |