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 |
---|---|---|---|---|---|
bats_damped_bc | 2306.0 | 22 | yes | 1048.2 | tbats , timemachines |
thinking_precision_ensemble | 2300.0 | 35 | yes | 1.1 | timemachines |
tsa_p1_d0_q1 | 2260.0 | 183 | yes | 56.2 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 2249.0 | 26 | yes | 289.6 | statsmodels , timemachines |
thinking_slow_and_fast | 2178.0 | 737 | yes | 0.1 | timemachines |
elo_fastest_univariate_precision_ensemble | 2127.0 | 571 | yes | 1.9 | timemachines |
slowly_moving_average | 2084.0 | 901 | yes | 0.0 | timemachines |
tsa_balanced_d0_ensemble | 2080.0 | 12 | yes | 2594.0 | statsmodels , timemachines |
bats_damped_arma | 2029.0 | 11 | yes | 0.3 | tbats , timemachines |
quick_aggressive_ema_ensemble | 2013.0 | 1147 | yes | 0.3 | timemachines |
divine_univariate_hypocratic_slow | 2013.0 | 126 | yes | 65.4 | divinity , timemachines |
slow_balanced_ema_ensemble | 2010.0 | 833 | yes | 0.3 | timemachines |
rvr_slowly_hypocratic | 2000.0 | 319 | yes | 0.2 | river , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1966.0 | 42 | yes | 517.6 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 1962.0 | 548 | yes | 3.5 | timemachines |
slow_precision_ema_ensemble | 1957.0 | 618 | yes | 0.5 | timemachines |
pmd_univariate | 1953.0 | 492 | yes | 1.8 | pmdarima , timemachines |
elo_fastest_residual_balanced_ensemble | 1943.0 | 674 | yes | 1.2 | timemachines |
thinking_slow_and_slow | 1927.0 | 752 | yes | 0.1 | timemachines |
sluggish_moving_average | 1916.0 | 1070 | yes | 0.0 | timemachines |
gk_basic_skater | 1896.0 | 5 | yes | 3602.6 | greykite , timemachines |
slow_aggressive_ema_ensemble | 1892.0 | 932 | yes | 0.3 | timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1892.0 | 38 | yes | 711.5 | statsmodels , timemachines |
tsa_p2_d0_q1 | 1890.0 | 277 | yes | 183.6 | statsmodels , timemachines |
bats_trendy_arma_bc | 1882.0 | 12 | yes | 1549.1 | tbats , timemachines |
elo_faster_residual_balanced_ensemble | 1870.0 | 884 | yes | 26.1 | timemachines |
bats_damped_arma_bc | 1862.0 | 8 | yes | 1257.4 | tbats , timemachines |
sk_autoarima | 1849.0 | 61 | yes | 235.0 | sktime , timemachines |
orbit_lgt_12 | 1847.0 | 8 | yes | 33.1 | orbit-ml , timemachines |
tsa_p3_d0_q1 | 1843.0 | 123 | yes | 54.6 | statsmodels , timemachines |
fbprophet_recursive | 1841.0 | 157 | yes | 159.0 | prophet , timemachines |
tsa_p1_d0_q0 | 1840.0 | 413 | yes | 53.8 | statsmodels , timemachines |
divine_univariate_hypocratic_fast | 1834.0 | 115 | yes | -0.1 | divinity , timemachines |
bats_trendy | 1829.0 | 18 | yes | 317.8 | tbats , timemachines |
divine_univariate | 1823.0 | 160 | yes | 78.7 | divinity , timemachines |
elo_faster_residual_aggressive_ensemble | 1804.0 | 480 | yes | 22.1 | timemachines |
sk_theta | 1796.0 | 682 | yes | 1.5 | sktime , timemachines |
bats_trendy_bc | 1795.0 | 21 | yes | 365.3 | tbats , timemachines |
tsa_p2_d0_q0 | 1793.0 | 352 | yes | 69.4 | statsmodels , timemachines |
fbprophet_exogenous | 1792.0 | 142 | yes | 186.2 | prophet , timemachines |
bats_damped | 1784.0 | 9 | yes | 422.4 | tbats , timemachines |
elo_fastest_residual_aggressive_ensemble | 1765.0 | 865 | yes | 1.0 | timemachines |
fbprophet_cautious | 1759.0 | 157 | yes | 86.8 | prophet , timemachines |
darts_autoarima | 1759.0 | 19 | yes | 166.8 | darts , timemachines |
tsa_p3_d0_q0 | 1728.0 | 176 | yes | 104.0 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1720.0 | 773 | yes | 3.0 | timemachines |
sk_ae | 1720.0 | 490 | yes | 13.0 | sktime , timemachines |
dlm_univariate_a | 1709.0 | 72 | no | -1.0 | pydlm , timemachines |
merlion_prophet | 1705.0 | 9 | yes | 61.9 | timemachines |
rvr_quickly_hypocratic | 1695.0 | 489 | yes | 0.4 | river , timemachines |
elo_fastest_residual_precision_ensemble | 1693.0 | 880 | yes | 1.0 | timemachines |
tsa_aggressive_combined_ensemble | 1691.0 | 12 | yes | 199.0 | statsmodels , timemachines |
tsa_balanced_combined_ensemble | 1690.0 | 14 | yes | 1238.9 | statsmodels , timemachines |
bats_trendy_arma | 1684.0 | 13 | yes | 1439.6 | tbats , timemachines |
bats_bc | 1683.0 | 9 | yes | 1020.0 | tbats , timemachines |
precision_ema_ensemble | 1681.0 | 709 | yes | 0.1 | timemachines |
quick_precision_ema_ensemble | 1680.0 | 624 | yes | 0.3 | timemachines |
tsa_precision_theta_ensemble | 1671.0 | 652 | yes | 3.8 | statsmodels , timemachines |
merlion_arima | 1669.0 | 3 | yes | 18.2 | timemachines |
balanced_ema_ensemble | 1658.0 | 654 | yes | 0.2 | timemachines |
elo_faster_residual_precision_ensemble | 1650.0 | 425 | yes | 104.7 | timemachines |
tsa_precision_combined_ensemble | 1640.0 | 16 | yes | 1161.3 | statsmodels , timemachines |
darts_theta | 1634.0 | 31 | yes | 1.1 | darts , timemachines |
fbprophet_exogenous_hypocratic | 1619.0 | 103 | yes | 77.5 | prophet , timemachines |
bats_arma | 1615.0 | 10 | yes | 475.8 | tbats , timemachines |
thinking_fast_and_slow | 1608.0 | 750 | yes | 0.1 | timemachines |
sk_ae_add | 1601.0 | 754 | yes | 6.3 | sktime , timemachines |
pycrt_mean_8 | 1600 | 0 | yes | -1.0 | pycaret , 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 |
pycrt_median_8 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -5763.9 | pycaret , timemachines |
fbprophet_chaser | 1600 | 0 | no | -1.0 | prophet , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
orbit_lgt_24 | 1599.0 | 2 | yes | -0.1 | orbit-ml , timemachines |
elo_faster_univariate_balanced_ensemble | 1598.0 | 468 | yes | 5.1 | timemachines |
darts_prophet | 1595.0 | 12 | no | 94.0 | darts , timemachines |
pycrt_median_3 | 1590.0 | 2 | yes | 1918.1 | pycaret , timemachines |
aggressive_ema_ensemble | 1588.0 | 689 | yes | 0.2 | timemachines |
pmd_exogenous_hypocratic | 1579.0 | 601 | yes | 2.6 | pmdarima , timemachines |
sk_ae_add_damped | 1567.0 | 631 | yes | 10.9 | sktime , timemachines |
quick_balanced_ema_ensemble | 1548.0 | 686 | yes | 0.1 | timemachines |
elo_faster_univariate_precision_ensemble | 1535.0 | 394 | yes | 5.3 | timemachines |
pycrt_mean_3 | 1535.0 | 1 | yes | 3111.9 | pycaret , timemachines |
bats_arma_bc | 1518.0 | 8 | yes | 973.2 | tbats , timemachines |
tsa_aggressive_d0_ensemble | 1517.0 | 36 | yes | 373.6 | statsmodels , timemachines |
fbprophet_cautious_hypocratic | 1495.0 | 80 | yes | 81.3 | prophet , timemachines |
darts_arima | 1493.0 | 52 | no | 8.0 | darts , timemachines |
tsa_balanced_theta_ensemble | 1491.0 | 716 | yes | 6.0 | statsmodels , timemachines |
bats_fast | 1483.0 | 16 | yes | 1567.9 | tbats , timemachines |
merlion_mses | 1474.0 | 6 | yes | 112.8 | timemachines |
suc_quick_aggressive_ema_ensemble | 1455.0 | 26 | no | 5.9 | successor , timemachines |
fbprophet_known | 1453.0 | 146 | yes | 122.5 | prophet , timemachines |
suc_tsa_p2_d0_q1 | 1450.0 | 28 | no | 7.2 | successor , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1445.0 | 558 | yes | 1.9 | timemachines |
darts_fft | 1432.0 | 17 | yes | 0.7 | darts , timemachines |
thinking_fast_and_fast | 1428.0 | 693 | yes | 0.1 | timemachines |
rapidly_moving_average | 1422.0 | 723 | yes | 0.0 | timemachines |
dlm_univariate_b | 1422.0 | 78 | no | -1.0 | pydlm , timemachines |
fbprophet_univariate | 1421.0 | 173 | yes | 164.8 | prophet , timemachines |
fbprophet_univariate_hypocratic | 1417.0 | 123 | yes | 134.6 | prophet , timemachines |
quickly_moving_average | 1379.0 | 1139 | yes | 0.0 | timemachines |
darts_four_theta | 1363.0 | 61 | no | 1.6 | darts , timemachines |
rvr_balanced_ensemble | 1335.0 | 425 | yes | 0.3 | river , timemachines |
nprophet_p3_hypocratic | 1323.0 | 233 | yes | 32.2 | neuralprophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 1317.0 | 4 | yes | 3.0 | successor , timemachines |
darts_exp_smoothing | 1301.0 | 42 | no | 10.6 | darts , timemachines |
tsa_aggressive_theta_ensemble | 1264.0 | 617 | yes | 3.8 | statsmodels , timemachines |
nprophet_p2 | 1256.0 | 213 | yes | 43.0 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1199.0 | 87 | yes | 248.4 | prophet , timemachines |
nprophet_p2_hypocratic | 1131.0 | 182 | yes | 54.3 | neuralprophet , timemachines |
nprophet_p5 | 1111.0 | 253 | yes | 40.3 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 1108.0 | 207 | yes | 62.3 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 1086.0 | 203 | yes | 43.0 | neuralprophet , timemachines |
nprophet_p3 | 1079.0 | 228 | yes | 54.2 | neuralprophet , timemachines |
rvr_p1_d0_q0 | 1077.0 | 398 | yes | 0.0 | river , timemachines |
rvr_p2_d0_q0 | 1035.0 | 878 | yes | 0.0 | river , timemachines |
rvr_p8_d0_q0 | 1026.0 | 379 | yes | 0.1 | river , timemachines |
nprophet_p1 | 1012.0 | 565 | yes | 55.3 | neuralprophet , timemachines |
rvr_p5_d0_q0 | 948.0 | 544 | yes | 0.1 | river , timemachines |
smdk_p5_d0_q3_n500_aggressive | 945.0 | 150 | yes | 71.9 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | 927.0 | 231 | yes | 58.8 | simdkalman , timemachines |
nprophet_p8 | 923.0 | 177 | yes | 71.6 | neuralprophet , timemachines |
nprophet_p8_hypocratic | 903.0 | 188 | yes | 40.6 | neuralprophet , timemachines |
fbprophet_exogenous_exogenous | 831.0 | 85 | yes | 229.3 | prophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 792.0 | 74 | no | 51.0 | simdkalman , timemachines |
smdk_p5_d0_q3_n1000 | 758.0 | 94 | no | 157.6 | simdkalman , timemachines |
empirical_last_value | 722.0 | 616 | yes | 0.0 | timemachines |