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 |
---|---|---|---|---|---|
merlion_arima | 2282.0 | 20 | yes | 29.9 | timemachines |
tsa_balanced_combined_ensemble | 2275.0 | 14 | yes | 1634.6 | statsmodels , timemachines |
tsa_p3_d0_q1 | 2221.0 | 117 | yes | 120.0 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 2172.0 | 582 | yes | 24.3 | timemachines |
tsa_precision_d0_ensemble | 2139.0 | 38 | yes | 142.9 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 2138.0 | 931 | yes | 1.9 | timemachines |
sk_autoarima | 2119.0 | 54 | yes | 108.2 | sktime , timemachines |
tsa_p2_d0_q0 | 2110.0 | 196 | yes | 15.3 | statsmodels , timemachines |
elo_faster_univariate_balanced_ensemble | 2064.0 | 453 | yes | 38.4 | timemachines |
elo_fastest_residual_aggressive_ensemble | 2053.0 | 608 | yes | 1.4 | timemachines |
tsa_quickly_hypocratic_d0_ensemble | 2049.0 | 38 | yes | 3799.3 | statsmodels , timemachines |
tsa_balanced_d0_ensemble | 2046.0 | 25 | yes | 136.8 | statsmodels , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 2034.0 | 45 | yes | 174.9 | statsmodels , timemachines |
thinking_slow_and_slow | 2029.0 | 666 | yes | 0.3 | timemachines |
bats_trendy_arma | 2002.0 | 11 | yes | 1179.8 | tbats , timemachines |
bats_damped_arma_bc | 2000.0 | 11 | yes | 1478.7 | tbats , timemachines |
fbprophet_exogenous | 1989.0 | 40 | yes | 164.3 | prophet , timemachines |
fbprophet_univariate | 1988.0 | 64 | yes | 82.4 | prophet , timemachines |
sluggish_moving_average | 1978.0 | 832 | yes | 0.0 | timemachines |
elo_fastest_residual_precision_ensemble | 1966.0 | 718 | yes | 2.6 | timemachines |
tsa_p1_d0_q1 | 1958.0 | 288 | yes | 114.9 | statsmodels , timemachines |
bats_trendy_bc | 1952.0 | 15 | yes | 368.9 | tbats , timemachines |
elo_faster_residual_precision_ensemble | 1945.0 | 518 | yes | 10.0 | timemachines |
pmd_univariate | 1938.0 | 456 | yes | 5.1 | pmdarima , timemachines |
thinking_slow_and_fast | 1934.0 | 708 | yes | 0.1 | timemachines |
pmd_exogenous_hypocratic | 1934.0 | 534 | yes | 3.4 | pmdarima , timemachines |
aggressive_ema_ensemble | 1928.0 | 772 | yes | 1.2 | timemachines |
fbprophet_exogenous_hypocratic | 1922.0 | 52 | yes | 82.6 | prophet , timemachines |
divine_univariate_hypocratic_slow | 1904.0 | 78 | yes | -0.1 | divinity , timemachines |
rvr_quickly_hypocratic | 1897.0 | 376 | no | 0.2 | river , timemachines |
sk_ae | 1895.0 | 803 | yes | 14.3 | sktime , timemachines |
divine_univariate_hypocratic_fast | 1891.0 | 57 | yes | 95.2 | divinity , timemachines |
elo_faster_univariate_precision_ensemble | 1888.0 | 617 | yes | 2.8 | timemachines |
sk_ae_add | 1884.0 | 1100 | yes | 9.0 | sktime , timemachines |
slow_precision_ema_ensemble | 1881.0 | 645 | yes | 0.2 | timemachines |
suc_quick_aggressive_ema_ensemble | 1871.0 | 27 | no | 7.9 | successor , timemachines |
tsa_aggressive_combined_ensemble | 1869.0 | 20 | yes | 168.8 | statsmodels , timemachines |
tsa_precision_combined_ensemble | 1865.0 | 18 | yes | 812.3 | statsmodels , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1863.0 | 666 | yes | 2.3 | timemachines |
bats_trendy | 1861.0 | 24 | yes | 1098.9 | tbats , timemachines |
rvr_slowly_hypocratic | 1859.0 | 353 | yes | 0.2 | river , timemachines |
elo_fastest_univariate_balanced_ensemble | 1853.0 | 713 | yes | 2.0 | timemachines |
fbprophet_univariate_hypocratic | 1845.0 | 46 | yes | 135.8 | prophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 1841.0 | 3 | yes | 10.3 | successor , timemachines |
tsa_aggressive_d0_ensemble | 1833.0 | 29 | yes | 149.1 | statsmodels , timemachines |
elo_faster_residual_balanced_ensemble | 1824.0 | 474 | yes | 38.8 | timemachines |
merlion_prophet | 1822.0 | 5 | yes | 41.9 | timemachines |
elo_faster_residual_aggressive_ensemble | 1819.0 | 393 | yes | 15.4 | timemachines |
slowly_moving_average | 1818.0 | 966 | yes | 0.1 | timemachines |
balanced_ema_ensemble | 1795.0 | 924 | yes | 0.1 | timemachines |
tsa_balanced_theta_ensemble | 1787.0 | 573 | yes | 5.0 | statsmodels , timemachines |
tsa_p3_d0_q0 | 1785.0 | 343 | yes | 55.8 | statsmodels , timemachines |
gk_basic_skater | 1775.0 | 3 | yes | 4430.5 | greykite , timemachines |
slow_aggressive_ema_ensemble | 1772.0 | 618 | yes | 0.2 | timemachines |
divine_univariate | 1769.0 | 51 | yes | -0.1 | divinity , timemachines |
darts_autoarima | 1768.0 | 16 | no | 115.3 | darts , timemachines |
thinking_fast_and_slow | 1766.0 | 643 | yes | 0.1 | timemachines |
bats_trendy_arma_bc | 1763.0 | 17 | yes | 684.5 | tbats , timemachines |
bats_damped | 1743.0 | 9 | yes | 789.3 | tbats , timemachines |
bats_damped_bc | 1741.0 | 16 | yes | 884.7 | tbats , timemachines |
bats_damped_arma | 1726.0 | 8 | yes | 852.0 | tbats , timemachines |
elo_fastest_residual_balanced_ensemble | 1712.0 | 555 | yes | 2.4 | timemachines |
thinking_precision_ensemble | 1697.0 | 24 | yes | 2.8 | timemachines |
tsa_p2_d0_q1 | 1694.0 | 257 | yes | 50.5 | statsmodels , timemachines |
darts_fft | 1693.0 | 27 | no | 0.7 | darts , timemachines |
precision_ema_ensemble | 1662.0 | 1055 | yes | 0.1 | timemachines |
bats_arma_bc | 1658.0 | 9 | yes | 947.1 | tbats , timemachines |
rapidly_moving_average | 1639.0 | 818 | yes | 0.1 | timemachines |
tsa_p1_d0_q0 | 1630.0 | 455 | yes | 21.6 | statsmodels , timemachines |
fbprophet_recursive | 1623.0 | 47 | yes | 83.1 | prophet , timemachines |
tsa_aggressive_theta_ensemble | 1621.0 | 958 | yes | 3.1 | statsmodels , timemachines |
sk_theta | 1617.0 | 643 | yes | 0.8 | sktime , timemachines |
fbprophet_univariate_univariate_hypocratic | 1608.0 | 41 | yes | 365.1 | prophet , timemachines |
pycrt_mean_8 | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | yes | -1.0 | pycaret , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | -0.1 | orbit-ml , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | -0.1 | 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 | 1600 | 0 | no | -0.1 | sktime , timemachines |
sk_ae_mul_damped | 1600 | 0 | no | -0.3 | 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_8 | 1600 | 0 | no | -0.1 | pycaret , timemachines |
pycrt_median_3 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_mean_3 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
darts_nbeats | 1600 | 0 | no | -0.2 | darts , timemachines |
darts_prophet | 1600.0 | 24 | yes | 74.3 | darts , timemachines |
darts_arima | 1599.0 | 36 | no | 8.4 | darts , timemachines |
fbprophet_known | 1598.0 | 89 | yes | 166.1 | prophet , timemachines |
rvr_p1_d0_q0 | 1587.0 | 624 | yes | 0.0 | river , timemachines |
quick_balanced_ema_ensemble | 1580.0 | 665 | yes | 0.6 | timemachines |
bats_arma | 1516.0 | 17 | yes | 1110.7 | tbats , timemachines |
darts_theta | 1514.0 | 43 | yes | 1.3 | darts , timemachines |
rvr_balanced_ensemble | 1493.0 | 427 | yes | 0.4 | river , timemachines |
quick_precision_ema_ensemble | 1478.0 | 761 | yes | 1.1 | timemachines |
sk_ae_add_damped | 1464.0 | 832 | yes | 12.8 | sktime , timemachines |
bats_bc | 1463.0 | 24 | yes | 262.7 | tbats , timemachines |
merlion_mses | 1462.0 | 8 | yes | 98.2 | timemachines |
bats_fast | 1459.0 | 10 | yes | 179.6 | tbats , timemachines |
quickly_moving_average | 1420.0 | 723 | yes | 0.0 | timemachines |
darts_exp_smoothing | 1419.0 | 67 | no | 9.7 | darts , timemachines |
darts_four_theta | 1401.0 | 43 | no | 1.4 | darts , timemachines |
fbprophet_cautious | 1398.0 | 35 | yes | 126.3 | prophet , timemachines |
slow_balanced_ema_ensemble | 1369.0 | 901 | yes | 0.6 | timemachines |
tsa_precision_theta_ensemble | 1348.0 | 582 | yes | 5.6 | statsmodels , timemachines |
fbprophet_exogenous_exogenous | 1321.0 | 44 | yes | 224.7 | prophet , timemachines |
quick_aggressive_ema_ensemble | 1301.0 | 1501 | yes | 0.7 | timemachines |
fbprophet_cautious_hypocratic | 1215.0 | 41 | yes | 76.8 | prophet , timemachines |
rvr_p8_d0_q0 | 1214.0 | 380 | yes | 0.0 | river , timemachines |
rvr_p5_d0_q0 | 1166.0 | 342 | yes | 0.1 | river , timemachines |
suc_tsa_p2_d0_q1 | 1082.0 | 21 | yes | 10.2 | successor , timemachines |
empirical_last_value | 1055.0 | 571 | yes | 0.1 | timemachines |
rvr_p2_d0_q0 | 990.0 | 500 | yes | 0.0 | river , timemachines |
thinking_fast_and_fast | 982.0 | 657 | yes | 0.1 | timemachines |
nprophet_p1_hypocratic | 831.0 | 150 | yes | 137.9 | neuralprophet , timemachines |
nprophet_p3_hypocratic | 801.0 | 200 | yes | 108.2 | neuralprophet , timemachines |
nprophet_p1 | 773.0 | 320 | yes | 64.6 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000 | 756.0 | 14 | yes | 188.2 | simdkalman , timemachines |
nprophet_p3 | 745.0 | 168 | yes | 50.7 | neuralprophet , timemachines |
nprophet_p8 | 744.0 | 180 | yes | 67.0 | neuralprophet , timemachines |
nprophet_p2 | 710.0 | 228 | yes | 42.2 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 682.0 | 142 | yes | 55.3 | neuralprophet , timemachines |
nprophet_p5 | 637.0 | 146 | yes | 67.2 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 490.0 | 264 | yes | 72.9 | neuralprophet , timemachines |
nprophet_p8_hypocratic | 448.0 | 173 | yes | 57.0 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 319.0 | 49 | no | 57.3 | simdkalman , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 319.0 | 26 | yes | 234.1 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | -40.0 | 65 | yes | 133.4 | simdkalman , timemachines |