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 | 2294.0 | 501 | yes | 83.7 | statsmodels , timemachines |
elo_faster_univariate_precision_ensemble | 2256.0 | 496 | yes | 4.9 | timemachines |
bats_trendy | 2225.0 | 24 | yes | 1205.7 | tbats , timemachines |
tsa_p1_d0_q1 | 2219.0 | 304 | yes | 51.7 | statsmodels , timemachines |
tsa_p3_d0_q1 | 2182.0 | 131 | yes | 250.2 | statsmodels , timemachines |
suc_tsa_aggressive_d0_ensemble | 2168.0 | 26 | yes | 2.2 | successor , timemachines |
tsa_aggressive_d0_ensemble | 2100.0 | 31 | yes | 174.5 | statsmodels , timemachines |
bats_damped_bc | 2078.0 | 17 | yes | 1544.7 | tbats , timemachines |
sk_autoarima | 2060.0 | 37 | yes | 151.3 | sktime , timemachines |
pmd_exogenous_hypocratic | 2042.0 | 615 | yes | 4.3 | pmdarima , timemachines |
tsa_p1_d0_q0 | 2030.0 | 439 | yes | 16.8 | statsmodels , timemachines |
tsa_p3_d0_q0 | 2003.0 | 223 | yes | 45.8 | statsmodels , timemachines |
elo_faster_univariate_balanced_ensemble | 1975.0 | 469 | yes | 13.8 | timemachines |
tsa_p2_d0_q0 | 1937.0 | 356 | yes | 25.7 | statsmodels , timemachines |
quick_balanced_ema_ensemble | 1931.0 | 605 | yes | 0.2 | timemachines |
bats_trendy_arma | 1931.0 | 14 | yes | 561.5 | tbats , timemachines |
darts_autoarima | 1914.0 | 9 | no | 132.9 | darts , timemachines |
elo_faster_residual_aggressive_ensemble | 1904.0 | 647 | yes | 3.8 | timemachines |
thinking_precision_ensemble | 1887.0 | 32 | yes | 0.3 | timemachines |
tsa_balanced_d0_ensemble | 1871.0 | 13 | yes | 4780.3 | statsmodels , timemachines |
quickly_moving_average | 1867.0 | 1038 | yes | 0.0 | timemachines |
elo_fastest_residual_balanced_ensemble | 1867.0 | 584 | yes | 1.4 | timemachines |
pmd_univariate | 1857.0 | 592 | yes | 3.8 | pmdarima , timemachines |
thinking_slow_and_slow | 1842.0 | 771 | yes | 0.1 | timemachines |
bats_arma | 1827.0 | 11 | yes | 974.0 | tbats , timemachines |
elo_fastest_univariate_balanced_ensemble | 1826.0 | 716 | yes | 1.2 | timemachines |
precision_ema_ensemble | 1826.0 | 707 | yes | 0.1 | timemachines |
fbprophet_known | 1818.0 | 159 | yes | 165.0 | prophet , timemachines |
darts_fft | 1815.0 | 47 | no | 0.7 | darts , timemachines |
bats_trendy_arma_bc | 1815.0 | 12 | yes | 2417.4 | tbats , timemachines |
aggressive_ema_ensemble | 1810.0 | 791 | yes | 0.1 | timemachines |
bats_damped | 1810.0 | 13 | yes | 1087.6 | tbats , timemachines |
bats_bc | 1802.0 | 20 | yes | 799.3 | tbats , timemachines |
slow_precision_ema_ensemble | 1800.0 | 618 | yes | 0.2 | timemachines |
tsa_precision_d0_ensemble | 1793.0 | 37 | yes | 334.5 | statsmodels , timemachines |
thinking_fast_and_slow | 1792.0 | 713 | yes | 0.1 | timemachines |
tsa_balanced_combined_ensemble | 1785.0 | 27 | yes | 671.3 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 1782.0 | 575 | yes | -9.2 | timemachines |
merlion_prophet | 1779.0 | 14 | yes | 55.7 | timemachines |
thinking_slow_and_fast | 1776.0 | 1003 | yes | 0.1 | timemachines |
bats_damped_arma | 1775.0 | 9 | yes | 1177.3 | tbats , timemachines |
elo_fastest_univariate_precision_ensemble | 1763.0 | 569 | yes | 1.2 | timemachines |
elo_faster_residual_precision_ensemble | 1759.0 | 550 | yes | 4.1 | timemachines |
elo_fastest_univariate_aggressive_ensemble | 1756.0 | 651 | yes | 1.1 | timemachines |
bats_damped_arma_bc | 1753.0 | 12 | yes | 1118.0 | tbats , timemachines |
tsa_aggressive_combined_ensemble | 1741.0 | 11 | yes | 232.7 | statsmodels , timemachines |
divine_univariate_hypocratic_fast | 1738.0 | 128 | yes | -0.1 | divinity , timemachines |
sk_ae | 1734.0 | 538 | yes | 9.2 | sktime , timemachines |
rvr_slowly_hypocratic | 1722.0 | 312 | yes | 0.4 | river , timemachines |
slowly_moving_average | 1709.0 | 1010 | yes | 0.0 | timemachines |
dlm_univariate_a | 1704.0 | 64 | no | -1.0 | pydlm , timemachines |
bats_trendy_bc | 1698.0 | 20 | yes | 898.6 | tbats , timemachines |
slow_aggressive_ema_ensemble | 1696.0 | 786 | yes | 0.2 | timemachines |
sk_ae_add_damped | 1692.0 | 663 | yes | 11.0 | sktime , timemachines |
bats_arma_bc | 1675.0 | 8 | yes | 2200.8 | tbats , timemachines |
merlion_arima | 1671.0 | 5 | yes | 15.0 | timemachines |
divine_univariate_hypocratic_slow | 1663.0 | 182 | yes | -0.1 | divinity , timemachines |
orbit_lgt_24 | 1659.0 | 8 | yes | 0.0 | orbit-ml , timemachines |
slow_balanced_ema_ensemble | 1650.0 | 768 | yes | -0.2 | timemachines |
fbprophet_cautious | 1647.0 | 155 | yes | 83.3 | prophet , timemachines |
elo_faster_residual_balanced_ensemble | 1645.0 | 1185 | yes | 4.0 | timemachines |
nprophet_p2 | 1634.0 | 252 | yes | 37.9 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1614.0 | 343 | yes | 26.8 | simdkalman , timemachines |
elo_fastest_residual_precision_ensemble | 1608.0 | 905 | yes | 2.1 | timemachines |
pycrt_mean_3 | 1606.0 | 2 | yes | 2616.1 | 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 | 1600 | 0 | no | 0.0 | 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 |
pycrt_mean_8 | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_median_3_full | 1600 | 0 | no | -1.0 | pycaret , timemachines |
pycrt_median_8 | 1600 | 0 | no | -2745.0 | pycaret , timemachines |
fbprophet_chaser | 1600 | 0 | no | -1.0 | prophet , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
fbprophet_exogenous_hypocratic | 1595.0 | 113 | yes | 253.4 | prophet , timemachines |
smdk_p5_d0_q3_n1000 | 1589.0 | 231 | yes | 69.0 | simdkalman , timemachines |
tsa_balanced_theta_ensemble | 1588.0 | 756 | yes | 2.8 | statsmodels , timemachines |
fbprophet_univariate | 1571.0 | 183 | yes | 209.5 | prophet , timemachines |
elo_fastest_residual_aggressive_ensemble | 1569.0 | 929 | yes | 2.2 | timemachines |
fbprophet_cautious_hypocratic | 1563.0 | 94 | yes | 75.1 | prophet , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1554.0 | 43 | yes | 220.8 | statsmodels , timemachines |
fbprophet_univariate_hypocratic | 1552.0 | 118 | yes | 162.9 | prophet , timemachines |
divine_univariate | 1548.0 | 196 | yes | 118.8 | divinity , timemachines |
sk_ae_add | 1533.0 | 734 | yes | 15.7 | sktime , timemachines |
darts_theta | 1529.0 | 33 | no | 1.2 | darts , timemachines |
sluggish_moving_average | 1521.0 | 1180 | yes | 0.0 | timemachines |
pycrt_median_3 | 1512.0 | 1 | no | 980.4 | pycaret , timemachines |
quick_precision_ema_ensemble | 1504.0 | 626 | yes | 0.2 | timemachines |
tsa_precision_theta_ensemble | 1504.0 | 646 | yes | 4.2 | statsmodels , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1498.0 | 353 | yes | 69.5 | simdkalman , timemachines |
darts_four_theta | 1494.0 | 74 | no | 1.3 | darts , timemachines |
darts_arima | 1491.0 | 64 | no | 10.6 | darts , timemachines |
balanced_ema_ensemble | 1482.0 | 730 | yes | 0.1 | timemachines |
fbprophet_exogenous | 1462.0 | 165 | yes | 201.6 | prophet , timemachines |
bats_fast | 1458.0 | 18 | yes | 684.1 | tbats , timemachines |
orbit_lgt_12 | 1443.0 | 5 | yes | -0.1 | orbit-ml , timemachines |
tsa_precision_combined_ensemble | 1439.0 | 16 | yes | 473.9 | statsmodels , timemachines |
fbprophet_recursive | 1416.0 | 158 | yes | 140.6 | prophet , timemachines |
suc_quick_aggressive_ema_ensemble | 1408.0 | 35 | no | 4.5 | successor , timemachines |
fbprophet_exogenous_exogenous | 1398.0 | 96 | yes | 255.5 | prophet , timemachines |
darts_exp_smoothing | 1395.0 | 84 | no | 8.5 | darts , timemachines |
darts_prophet | 1386.0 | 28 | no | 71.4 | darts , timemachines |
nprophet_p3 | 1376.0 | 213 | yes | 38.4 | neuralprophet , timemachines |
sk_theta | 1368.0 | 633 | yes | 0.8 | sktime , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1366.0 | 52 | yes | 262.4 | statsmodels , timemachines |
suc_tsa_p2_d0_q1 | 1344.0 | 39 | no | 4.2 | successor , timemachines |
gk_basic_skater | 1333.0 | 5 | yes | 3948.1 | greykite , timemachines |
nprophet_p1 | 1317.0 | 648 | yes | 76.0 | neuralprophet , timemachines |
tsa_aggressive_theta_ensemble | 1310.0 | 576 | yes | 2.7 | statsmodels , timemachines |
dlm_univariate_b | 1298.0 | 63 | no | -1.0 | pydlm , timemachines |
nprophet_p1_hypocratic | 1270.0 | 250 | yes | 37.6 | neuralprophet , timemachines |
nprophet_p5 | 1244.0 | 204 | yes | 75.9 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500 | 1224.0 | 681 | yes | 22.7 | simdkalman , timemachines |
nprophet_p8_hypocratic | 1200.0 | 269 | yes | 50.2 | neuralprophet , timemachines |
rvr_p5_d0_q0 | 1163.0 | 561 | yes | 0.1 | river , timemachines |
nprophet_p3_hypocratic | 1162.0 | 250 | yes | 64.1 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 1155.0 | 243 | yes | 57.3 | neuralprophet , timemachines |
rvr_balanced_ensemble | 1149.0 | 446 | yes | 0.3 | river , timemachines |
nprophet_p2_hypocratic | 1144.0 | 243 | yes | 65.9 | neuralprophet , timemachines |
thinking_fast_and_fast | 1130.0 | 636 | yes | 0.1 | timemachines |
rvr_quickly_hypocratic | 1107.0 | 508 | yes | 0.3 | river , timemachines |
fbprophet_univariate_univariate_hypocratic | 1098.0 | 95 | yes | 365.9 | prophet , timemachines |
quick_aggressive_ema_ensemble | 1098.0 | 1249 | yes | 0.3 | timemachines |
nprophet_p8 | 1044.0 | 265 | yes | 47.8 | neuralprophet , timemachines |
rapidly_moving_average | 982.0 | 788 | yes | 0.0 | timemachines |
rvr_p1_d0_q0 | 877.0 | 385 | yes | 0.0 | river , timemachines |
rvr_p2_d0_q0 | 816.0 | 895 | yes | 0.0 | river , timemachines |
rvr_p8_d0_q0 | 802.0 | 327 | yes | 0.1 | river , timemachines |
empirical_last_value | 743.0 | 626 | yes | 0.0 | timemachines |
merlion_mses | 686.0 | 26 | yes | 98.3 | timemachines |