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 |
---|---|---|---|---|---|
elo_fastest_univariate_aggressive_ensemble | 2329.0 | 2213 | yes | -0.8 | timemachines |
elo_faster_univariate_balanced_ensemble | 2288.0 | 1582 | yes | 0.9 | timemachines |
slow_precision_ema_ensemble | 2233.0 | 2099 | yes | 0.2 | timemachines |
slow_aggressive_ema_ensemble | 2208.0 | 1882 | yes | 0.2 | timemachines |
balanced_ema_ensemble | 2207.0 | 2740 | yes | 0.1 | timemachines |
slow_balanced_ema_ensemble | 2200.0 | 2798 | yes | 0.1 | timemachines |
elo_fastest_residual_precision_ensemble | 2145.0 | 2575 | yes | 0.7 | timemachines |
aggressive_ema_ensemble | 2129.0 | 2436 | yes | 0.1 | timemachines |
gk_basic_skater | 2118.0 | 14 | yes | 3332.2 | greykite , timemachines |
bats_trendy_arma_bc | 2113.0 | 34 | yes | 1980.8 | tbats , timemachines |
elo_faster_residual_aggressive_ensemble | 2090.0 | 1715 | yes | 3.8 | timemachines |
orbit_lgt_24 | 2087.0 | 18 | yes | 37.1 | orbit-ml , timemachines |
tsa_p2_d0_q1 | 2085.0 | 1518 | yes | 141.3 | statsmodels , timemachines |
tsa_precision_combined_ensemble | 2082.0 | 64 | yes | 333.6 | statsmodels , timemachines |
elo_faster_residual_balanced_ensemble | 2063.0 | 2054 | yes | 7.2 | timemachines |
elo_fastest_univariate_precision_ensemble | 2049.0 | 3514 | yes | 1.4 | timemachines |
tsa_precision_theta_ensemble | 2039.0 | 1976 | yes | 2.8 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 2033.0 | 2098 | yes | 0.9 | timemachines |
elo_faster_residual_precision_ensemble | 2020.0 | 2087 | yes | 3.9 | timemachines |
quick_precision_ema_ensemble | 2007.0 | 2274 | yes | 0.1 | timemachines |
bats_fast | 1965.0 | 65 | yes | 1010.0 | tbats , timemachines |
bats_damped_arma | 1964.0 | 22 | yes | 2314.6 | tbats , timemachines |
tsa_balanced_d0_ensemble | 1953.0 | 81 | yes | 491.3 | statsmodels , timemachines |
tsa_p3_d0_q0 | 1931.0 | 1195 | yes | 45.2 | statsmodels , timemachines |
quick_aggressive_ema_ensemble | 1913.0 | 5393 | yes | 0.2 | timemachines |
bats_arma_bc | 1913.0 | 34 | yes | 1556.8 | tbats , timemachines |
tsa_aggressive_d0_ensemble | 1911.0 | 88 | yes | 261.3 | statsmodels , timemachines |
bats_damped | 1906.0 | 17 | yes | 368.8 | tbats , timemachines |
elo_fastest_residual_balanced_ensemble | 1904.0 | 2358 | yes | 1.2 | timemachines |
bats_damped_arma_bc | 1897.0 | 26 | yes | 634.3 | tbats , timemachines |
sk_theta | 1882.0 | 2102 | yes | -0.1 | sktime , timemachines |
sk_ae | 1878.0 | 2411 | yes | 12.1 | sktime , timemachines |
elo_fastest_univariate_balanced_ensemble | 1855.0 | 2362 | yes | 0.8 | timemachines |
bats_trendy_bc | 1844.0 | 64 | yes | 1133.2 | tbats , timemachines |
tsa_aggressive_theta_ensemble | 1836.0 | 2978 | yes | 2.8 | statsmodels , timemachines |
divine_univariate_hypocratic_fast | 1826.0 | 133 | yes | -0.1 | divinity , timemachines |
thinking_precision_ensemble | 1821.0 | 148 | yes | 0.1 | timemachines |
bats_trendy_arma | 1807.0 | 34 | yes | 2126.5 | tbats , timemachines |
tsa_balanced_combined_ensemble | 1802.0 | 90 | yes | -500.7 | statsmodels , timemachines |
quickly_moving_average | 1798.0 | 2035 | yes | 0.0 | timemachines |
tsa_p2_d0_q0 | 1795.0 | 773 | yes | 18.2 | statsmodels , timemachines |
orbit_lgt_12 | 1794.0 | 26 | yes | 30.2 | orbit-ml , timemachines |
bats_bc | 1789.0 | 62 | yes | 843.9 | tbats , timemachines |
tsa_p1_d0_q0 | 1785.0 | 1247 | yes | 12.8 | statsmodels , timemachines |
tsa_p3_d0_q1 | 1783.0 | 225 | yes | 156.3 | statsmodels , timemachines |
thinking_slow_and_fast | 1778.0 | 2866 | yes | 0.0 | timemachines |
bats_arma | 1772.0 | 36 | yes | 2610.2 | tbats , timemachines |
divine_univariate_hypocratic_slow | 1751.0 | 154 | yes | -0.1 | divinity , timemachines |
quick_balanced_ema_ensemble | 1744.0 | 2021 | yes | 0.2 | timemachines |
precision_ema_ensemble | 1742.0 | 3075 | yes | 0.2 | timemachines |
darts_four_theta | 1738.0 | 255 | no | 1.3 | darts , timemachines |
sk_autoarima | 1734.0 | 180 | yes | 194.9 | sktime , timemachines |
bats_trendy | 1718.0 | 63 | yes | 903.5 | tbats , timemachines |
thinking_fast_and_fast | 1715.0 | 2282 | yes | 0.0 | timemachines |
merlion_arima | 1709.0 | 85 | yes | 64.8 | timemachines |
darts_theta | 1702.0 | 187 | no | 1.2 | darts , timemachines |
elo_faster_univariate_precision_ensemble | 1696.0 | 2000 | yes | 1.2 | timemachines |
divine_univariate | 1690.0 | 184 | yes | -0.1 | divinity , timemachines |
nprophet_p3_hypocratic | 1682.0 | 830 | yes | 51.1 | neuralprophet , timemachines |
bats_damped_bc | 1671.0 | 55 | yes | 1499.2 | tbats , timemachines |
darts_arima | 1664.0 | 165 | no | 9.0 | darts , timemachines |
tsa_precision_d0_ensemble | 1658.0 | 128 | yes | 845.8 | statsmodels , timemachines |
nprophet_p1_hypocratic | 1644.0 | 900 | yes | 47.5 | neuralprophet , timemachines |
slowly_moving_average | 1640.0 | 2686 | yes | 0.0 | timemachines |
sk_ae_add_damped | 1636.0 | 2541 | yes | 13.1 | sktime , timemachines |
darts_exp_smoothing | 1624.0 | 411 | no | 9.8 | darts , timemachines |
pmd_univariate | 1618.0 | 1350 | yes | 3.6 | pmdarima , timemachines |
sk_ae_add | 1604.0 | 2968 | yes | 9.1 | 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 |
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 |
tsa_p1_d0_q1 | 1599.0 | 622 | yes | 36.0 | statsmodels , timemachines |
fbprophet_cautious | 1596.0 | 82 | yes | 125.0 | prophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1586.0 | 1853 | yes | 29.9 | simdkalman , timemachines |
darts_autoarima | 1566.0 | 38 | no | 59.7 | darts , timemachines |
nprophet_p1 | 1552.0 | 2159 | yes | 72.7 | neuralprophet , timemachines |
pycrt_mean_8 | 1534.0 | 4 | no | 3779.9 | pycaret , timemachines |
pmd_exogenous_hypocratic | 1533.0 | 1589 | yes | 4.7 | pmdarima , timemachines |
nprophet_p8_hypocratic | 1522.0 | 760 | yes | 35.2 | neuralprophet , timemachines |
pycrt_median_8 | 1513.0 | 1 | no | 4072.9 | pycaret , timemachines |
thinking_slow_and_slow | 1511.0 | 1925 | yes | 0.0 | timemachines |
nprophet_p5_hypocratic | 1477.0 | 1360 | yes | 61.0 | neuralprophet , timemachines |
pycrt_median_3_full | 1476.0 | 3 | yes | 5176.8 | pycaret , timemachines |
tsa_aggressive_combined_ensemble | 1467.0 | 119 | yes | 517.6 | statsmodels , timemachines |
thinking_fast_and_slow | 1451.0 | 2081 | yes | 0.0 | timemachines |
darts_fft | 1442.0 | 160 | no | 0.7 | darts , timemachines |
rapidly_moving_average | 1440.0 | 2579 | yes | 0.0 | timemachines |
nprophet_p2 | 1439.0 | 1016 | yes | -51.7 | neuralprophet , timemachines |
nprophet_p8 | 1431.0 | 864 | yes | 48.0 | neuralprophet , timemachines |
pycrt_mean_3 | 1415.0 | 7 | no | 4246.7 | pycaret , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1404.0 | 150 | yes | 960.5 | statsmodels , timemachines |
elo_fastest_residual_aggressive_ensemble | 1403.0 | 1812 | yes | 0.9 | timemachines |
nprophet_p3 | 1377.0 | 924 | yes | 71.4 | neuralprophet , timemachines |
pycrt_median_3 | 1369.0 | 2 | no | 3692.0 | pycaret , timemachines |
fbprophet_exogenous | 1360.0 | 149 | yes | 119.9 | prophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1341.0 | 1529 | yes | 10.5 | simdkalman , timemachines |
darts_prophet | 1338.0 | 38 | no | 76.9 | darts , timemachines |
smdk_p5_d0_q3_n500 | 1333.0 | 1888 | yes | 23.7 | simdkalman , timemachines |
nprophet_p2_hypocratic | 1310.0 | 872 | yes | 64.9 | neuralprophet , timemachines |
suc_tsa_p2_d0_q1 | 1307.0 | 173 | no | 1.2 | successor , timemachines |
tsa_balanced_theta_ensemble | 1290.0 | 2166 | yes | -3.2 | statsmodels , timemachines |
rvr_slowly_hypocratic | 1288.0 | 1088 | yes | 0.4 | river , timemachines |
fbprophet_exogenous_hypocratic | 1283.0 | 107 | yes | 124.9 | prophet , timemachines |
fbprophet_known | 1281.0 | 71 | yes | 166.0 | prophet , timemachines |
fbprophet_univariate_hypocratic | 1249.0 | 73 | yes | 234.7 | prophet , timemachines |
rvr_quickly_hypocratic | 1243.0 | 1416 | yes | 0.4 | river , timemachines |
fbprophet_cautious_hypocratic | 1215.0 | 85 | yes | 123.2 | prophet , timemachines |
nprophet_p5 | 1180.0 | 973 | yes | 48.6 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000 | 1170.0 | 1295 | yes | 20.8 | simdkalman , timemachines |
sluggish_moving_average | 1162.0 | 2297 | yes | 0.0 | timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1159.0 | 146 | yes | 261.8 | statsmodels , timemachines |
suc_tsa_aggressive_d0_ensemble | 1148.0 | 78 | yes | 1.4 | successor , timemachines |
suc_quick_aggressive_ema_ensemble | 1131.0 | 164 | no | 1.3 | successor , timemachines |
fbprophet_univariate | 1064.0 | 184 | yes | 120.8 | prophet , timemachines |
empirical_last_value | 1025.0 | 1558 | yes | 0.0 | timemachines |
fbprophet_recursive | 982.0 | 74 | yes | 150.4 | prophet , timemachines |
rvr_p1_d0_q0 | 940.0 | 1694 | yes | 0.0 | river , timemachines |
fbprophet_univariate_univariate_hypocratic | 865.0 | 96 | yes | 475.3 | prophet , timemachines |
fbprophet_exogenous_exogenous | 858.0 | 78 | yes | 324.5 | prophet , timemachines |
merlion_prophet | 797.0 | 89 | yes | 33.6 | timemachines |
rvr_balanced_ensemble | 714.0 | 1383 | yes | 0.7 | river , timemachines |
merlion_mses | 644.0 | 35 | yes | 159.4 | timemachines |
rvr_p2_d0_q0 | 584.0 | 1327 | yes | 0.1 | river , timemachines |
rvr_p5_d0_q0 | 505.0 | 1049 | yes | -0.1 | river , timemachines |
rvr_p8_d0_q0 | 404.0 | 1094 | yes | 0.1 | river , timemachines |