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_faster_univariate_balanced_ensemble | 2252.0 | 413 | yes | 12.9 | timemachines |
tsa_p3_d0_q1 | 2224.0 | 103 | yes | 35.5 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 2210.0 | 969 | yes | 2.0 | timemachines |
tsa_p2_d0_q1 | 2192.0 | 204 | yes | 44.9 | statsmodels , timemachines |
tsa_p3_d0_q0 | 2186.0 | 380 | yes | 34.9 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 2181.0 | 24 | yes | 205.8 | statsmodels , timemachines |
elo_fastest_residual_balanced_ensemble | 2177.0 | 663 | yes | 6.4 | timemachines |
elo_faster_residual_aggressive_ensemble | 2169.0 | 407 | yes | 22.5 | timemachines |
bats_fast | 2139.0 | 20 | yes | 580.7 | tbats , timemachines |
sluggish_moving_average | 2128.0 | 803 | yes | 0.1 | timemachines |
elo_fastest_univariate_balanced_ensemble | 2099.0 | 682 | yes | 1.9 | timemachines |
tsa_p1_d0_q0 | 2075.0 | 433 | yes | 15.1 | statsmodels , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 2063.0 | 52 | yes | 144.6 | statsmodels , timemachines |
pmd_exogenous_hypocratic | 2063.0 | 483 | yes | 4.4 | pmdarima , timemachines |
elo_faster_residual_balanced_ensemble | 2047.0 | 530 | yes | 60.4 | timemachines |
elo_faster_residual_precision_ensemble | 2008.0 | 538 | yes | 15.3 | timemachines |
tsa_precision_d0_ensemble | 1994.0 | 13 | yes | 43844.2 | statsmodels , timemachines |
rvr_slowly_hypocratic | 1972.0 | 311 | no | 0.2 | river , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1964.0 | 600 | yes | 1.9 | timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1949.0 | 56 | yes | 165.9 | statsmodels , timemachines |
thinking_slow_and_fast | 1899.0 | 716 | yes | 0.1 | timemachines |
rvr_quickly_hypocratic | 1897.0 | 384 | yes | 0.4 | river , timemachines |
tsa_balanced_combined_ensemble | 1891.0 | 21 | yes | 184.9 | statsmodels , timemachines |
sk_autoarima | 1889.0 | 58 | yes | 134.4 | sktime , timemachines |
thinking_slow_and_slow | 1887.0 | 660 | yes | 0.1 | timemachines |
fbprophet_exogenous_hypocratic | 1882.0 | 47 | yes | 90.9 | prophet , timemachines |
elo_fastest_residual_precision_ensemble | 1877.0 | 651 | yes | 0.8 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1875.0 | 523 | yes | 2.9 | timemachines |
tsa_balanced_d0_ensemble | 1871.0 | 15 | yes | 1191.6 | statsmodels , timemachines |
darts_autoarima | 1868.0 | 19 | no | 89.7 | darts , timemachines |
fbprophet_univariate | 1867.0 | 71 | yes | 80.9 | prophet , timemachines |
divine_univariate | 1855.0 | 69 | yes | -0.1 | divinity , timemachines |
bats_arma | 1854.0 | 11 | no | 2195.7 | tbats , timemachines |
slow_precision_ema_ensemble | 1853.0 | 697 | yes | 0.2 | timemachines |
slow_balanced_ema_ensemble | 1852.0 | 895 | yes | 0.4 | timemachines |
tsa_precision_combined_ensemble | 1849.0 | 33 | yes | 199.2 | statsmodels , timemachines |
tsa_p1_d0_q1 | 1847.0 | 293 | yes | 58.7 | statsmodels , timemachines |
slowly_moving_average | 1840.0 | 931 | yes | 0.0 | timemachines |
bats_damped_bc | 1839.0 | 19 | yes | 292.7 | tbats , timemachines |
tsa_p2_d0_q0 | 1833.0 | 254 | yes | 36.3 | statsmodels , timemachines |
darts_arima | 1831.0 | 27 | no | 28.5 | darts , timemachines |
bats_damped_arma_bc | 1830.0 | 20 | yes | 1460.6 | tbats , timemachines |
divine_univariate_hypocratic_fast | 1825.0 | 68 | yes | -0.1 | divinity , timemachines |
divine_univariate_hypocratic_slow | 1814.0 | 87 | yes | -0.1 | divinity , timemachines |
elo_fastest_residual_aggressive_ensemble | 1813.0 | 549 | yes | 0.9 | timemachines |
suc_quick_aggressive_ema_ensemble | 1802.0 | 21 | yes | 6.5 | successor , timemachines |
fbprophet_cautious | 1791.0 | 55 | yes | 125.3 | prophet , timemachines |
sk_ae_add_damped | 1789.0 | 831 | yes | 6.3 | sktime , timemachines |
fbprophet_exogenous | 1771.0 | 88 | yes | 179.0 | prophet , timemachines |
elo_faster_univariate_precision_ensemble | 1769.0 | 526 | yes | 3.0 | timemachines |
merlion_arima | 1755.0 | 13 | yes | 30.2 | timemachines |
orbit_lgt_12 | 1755.0 | 2 | yes | -0.1 | orbit-ml , timemachines |
bats_trendy_arma | 1750.0 | 10 | yes | 1300.0 | tbats , timemachines |
balanced_ema_ensemble | 1748.0 | 894 | yes | 0.3 | timemachines |
bats_trendy | 1748.0 | 15 | yes | 1033.2 | tbats , timemachines |
rvr_balanced_ensemble | 1746.0 | 426 | yes | 0.3 | river , timemachines |
thinking_precision_ensemble | 1745.0 | 24 | yes | 0.7 | timemachines |
fbprophet_recursive | 1741.0 | 39 | yes | 120.0 | prophet , timemachines |
bats_trendy_bc | 1726.0 | 18 | yes | 851.2 | tbats , timemachines |
fbprophet_univariate_hypocratic | 1709.0 | 56 | yes | 76.9 | prophet , timemachines |
thinking_fast_and_slow | 1704.0 | 656 | yes | 0.1 | timemachines |
bats_damped_arma | 1704.0 | 5 | yes | 592.2 | tbats , timemachines |
bats_damped | 1698.0 | 10 | yes | 388.3 | tbats , timemachines |
bats_trendy_arma_bc | 1696.0 | 14 | yes | 497.6 | tbats , timemachines |
darts_four_theta | 1678.0 | 50 | yes | 1.3 | darts , timemachines |
slow_aggressive_ema_ensemble | 1672.0 | 642 | yes | 0.4 | timemachines |
sk_ae | 1670.0 | 758 | yes | 13.1 | sktime , timemachines |
thinking_fast_and_fast | 1661.0 | 700 | yes | 0.2 | timemachines |
precision_ema_ensemble | 1661.0 | 1058 | yes | 0.3 | timemachines |
pmd_univariate | 1649.0 | 460 | yes | 3.4 | pmdarima , timemachines |
gk_basic_skater | 1628.0 | 2 | yes | 1570.2 | greykite , timemachines |
tsa_precision_theta_ensemble | 1613.0 | 575 | yes | 1.7 | statsmodels , timemachines |
sk_ae_add | 1613.0 | 1056 | yes | 15.3 | sktime , timemachines |
merlion_prophet | 1600 | 0 | yes | -1.0 | timemachines |
pycrt_median_3 | 1600 | 0 | yes | -0.4 | pycaret , timemachines |
pycrt_median_8 | 1600 | 0 | yes | -0.5 | pycaret , timemachines |
pycrt_mean_3 | 1600 | 0 | yes | -0.7 | pycaret , 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 |
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.1 | 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_aggressive_theta_ensemble | 1599.0 | 988 | yes | 5.0 | statsmodels , timemachines |
tsa_balanced_theta_ensemble | 1597.0 | 647 | yes | 1.9 | statsmodels , timemachines |
darts_prophet | 1594.0 | 6 | no | 80.1 | darts , timemachines |
fbprophet_known | 1576.0 | 37 | yes | 678.0 | prophet , timemachines |
darts_theta | 1571.0 | 37 | no | 1.2 | darts , timemachines |
sk_theta | 1566.0 | 628 | yes | 0.8 | sktime , timemachines |
quick_precision_ema_ensemble | 1551.0 | 774 | yes | 0.2 | timemachines |
tsa_aggressive_d0_ensemble | 1524.0 | 13 | yes | 4334.7 | statsmodels , timemachines |
quick_balanced_ema_ensemble | 1522.0 | 726 | yes | 0.2 | timemachines |
aggressive_ema_ensemble | 1508.0 | 818 | yes | 0.3 | timemachines |
quickly_moving_average | 1445.0 | 705 | yes | 0.0 | timemachines |
fbprophet_cautious_hypocratic | 1437.0 | 35 | yes | 221.5 | prophet , timemachines |
darts_exp_smoothing | 1431.0 | 104 | yes | 9.4 | darts , timemachines |
darts_fft | 1415.0 | 34 | no | 0.7 | darts , timemachines |
quick_aggressive_ema_ensemble | 1413.0 | 1427 | yes | 0.4 | timemachines |
bats_bc | 1369.0 | 23 | yes | 439.1 | tbats , timemachines |
rvr_p8_d0_q0 | 1360.0 | 357 | no | 0.0 | river , timemachines |
bats_arma_bc | 1337.0 | 9 | yes | 4193.6 | tbats , timemachines |
fbprophet_exogenous_exogenous | 1335.0 | 43 | yes | 223.2 | prophet , timemachines |
rapidly_moving_average | 1297.0 | 801 | yes | 0.0 | timemachines |
suc_tsa_aggressive_d0_ensemble | 1205.0 | 4 | yes | 4.1 | successor , timemachines |
rvr_p5_d0_q0 | 1196.0 | 373 | yes | 0.0 | river , timemachines |
fbprophet_univariate_univariate_hypocratic | 1169.0 | 47 | yes | 626.4 | prophet , timemachines |
rvr_p1_d0_q0 | 1099.0 | 563 | yes | 0.0 | river , timemachines |
nprophet_p5 | 1012.0 | 241 | yes | 47.6 | neuralprophet , timemachines |
rvr_p2_d0_q0 | 1004.0 | 448 | yes | 0.0 | river , timemachines |
merlion_mses | 979.0 | 13 | yes | 131.8 | timemachines |
empirical_last_value | 971.0 | 513 | yes | 0.0 | timemachines |
nprophet_p1_hypocratic | 918.0 | 218 | yes | 44.8 | neuralprophet , timemachines |
nprophet_p3 | 814.0 | 152 | yes | 77.1 | neuralprophet , timemachines |
suc_tsa_p2_d0_q1 | 806.0 | 18 | no | 8.6 | successor , timemachines |
nprophet_p8_hypocratic | 804.0 | 149 | yes | 39.0 | neuralprophet , timemachines |
nprophet_p8 | 779.0 | 164 | yes | 33.9 | neuralprophet , timemachines |
nprophet_p2 | 762.0 | 204 | yes | 68.4 | neuralprophet , timemachines |
nprophet_p3_hypocratic | 714.0 | 160 | yes | 86.0 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 710.0 | 165 | yes | 48.0 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 708.0 | 294 | yes | 61.9 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000 | 656.0 | 16 | no | 73.1 | simdkalman , timemachines |
nprophet_p1 | 645.0 | 289 | yes | 34.7 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 441.0 | 23 | no | 73.4 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | 357.0 | 123 | yes | 115.7 | simdkalman , timemachines |
smdk_p5_d0_q3_n500_aggressive | 285.0 | 127 | no | 49.8 | simdkalman , timemachines |