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 | 2188.0 | 287 | yes | 97.5 | statsmodels , timemachines |
quick_aggressive_ema_ensemble | 2154.0 | 1022 | yes | 0.3 | timemachines |
tsa_aggressive_d0_ensemble | 2100.0 | 31 | yes | 174.5 | statsmodels , timemachines |
tsa_p1_d0_q1 | 2067.0 | 284 | yes | 87.4 | statsmodels , timemachines |
tsa_p3_d0_q1 | 2049.0 | 124 | yes | 51.3 | statsmodels , timemachines |
sk_ae_add | 2032.0 | 726 | yes | 11.4 | sktime , timemachines |
slow_precision_ema_ensemble | 2010.0 | 598 | yes | 0.4 | timemachines |
bats_arma_bc | 1961.0 | 10 | yes | 2251.7 | tbats , timemachines |
quickly_moving_average | 1957.0 | 1037 | yes | 0.0 | timemachines |
quick_balanced_ema_ensemble | 1952.0 | 601 | yes | 0.3 | timemachines |
bats_trendy_arma | 1931.0 | 14 | yes | 561.5 | tbats , timemachines |
tsa_p3_d0_q0 | 1929.0 | 198 | yes | 55.5 | statsmodels , timemachines |
sk_autoarima | 1915.0 | 41 | yes | 491.7 | sktime , timemachines |
darts_autoarima | 1914.0 | 9 | no | 132.9 | darts , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1898.0 | 636 | yes | 1.3 | timemachines |
bats_trendy | 1892.0 | 11 | yes | 1504.4 | tbats , timemachines |
merlion_arima | 1887.0 | 8 | yes | 60.5 | timemachines |
tsa_balanced_d0_ensemble | 1871.0 | 13 | yes | 4780.3 | statsmodels , timemachines |
elo_faster_univariate_balanced_ensemble | 1864.0 | 450 | yes | 11.1 | timemachines |
slowly_moving_average | 1851.0 | 978 | yes | 0.0 | timemachines |
elo_faster_residual_aggressive_ensemble | 1847.0 | 635 | yes | 3.5 | timemachines |
elo_fastest_residual_precision_ensemble | 1840.0 | 899 | yes | 0.6 | timemachines |
elo_fastest_univariate_balanced_ensemble | 1824.0 | 706 | yes | 0.6 | timemachines |
tsa_balanced_combined_ensemble | 1816.0 | 25 | yes | 398.5 | statsmodels , timemachines |
darts_fft | 1815.0 | 47 | no | 0.7 | darts , timemachines |
elo_faster_residual_precision_ensemble | 1812.0 | 523 | yes | 6.5 | timemachines |
bats_arma | 1806.0 | 6 | yes | 536.9 | tbats , timemachines |
tsa_balanced_theta_ensemble | 1800.0 | 753 | yes | 4.6 | statsmodels , timemachines |
thinking_fast_and_fast | 1794.0 | 626 | yes | 0.1 | timemachines |
bats_damped | 1782.0 | 11 | yes | 1020.0 | tbats , timemachines |
elo_fastest_residual_balanced_ensemble | 1782.0 | 560 | yes | 1.0 | timemachines |
tsa_p2_d0_q0 | 1772.0 | 344 | yes | 20.0 | statsmodels , timemachines |
precision_ema_ensemble | 1762.0 | 698 | yes | 0.2 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1752.0 | 562 | yes | 18.6 | timemachines |
thinking_slow_and_fast | 1744.0 | 791 | yes | 0.1 | timemachines |
divine_univariate_hypocratic_fast | 1738.0 | 128 | yes | -0.1 | divinity , timemachines |
gk_basic_skater | 1734.0 | 1 | yes | 1515.4 | greykite , timemachines |
tsa_precision_d0_ensemble | 1718.0 | 32 | yes | 447.3 | statsmodels , timemachines |
bats_bc | 1712.0 | 17 | yes | 205.2 | tbats , timemachines |
bats_trendy_arma_bc | 1712.0 | 10 | yes | 642.6 | tbats , timemachines |
elo_fastest_residual_aggressive_ensemble | 1712.0 | 914 | yes | 1.6 | timemachines |
bats_trendy_bc | 1712.0 | 18 | yes | 366.4 | tbats , timemachines |
dlm_univariate_a | 1704.0 | 64 | no | -1.0 | pydlm , timemachines |
balanced_ema_ensemble | 1702.0 | 718 | yes | 0.0 | timemachines |
aggressive_ema_ensemble | 1700.0 | 774 | yes | 0.2 | timemachines |
quick_precision_ema_ensemble | 1695.0 | 615 | yes | 0.2 | timemachines |
sk_ae_add_damped | 1690.0 | 644 | yes | 6.8 | sktime , timemachines |
elo_fastest_univariate_precision_ensemble | 1683.0 | 556 | yes | 1.1 | timemachines |
divine_univariate_hypocratic_slow | 1663.0 | 182 | yes | 89.7 | divinity , timemachines |
rvr_quickly_hypocratic | 1661.0 | 488 | no | 0.2 | river , timemachines |
rvr_balanced_ensemble | 1659.0 | 433 | yes | 0.3 | river , timemachines |
smdk_p5_d0_q3_n500 | 1658.0 | 670 | yes | 27.1 | simdkalman , timemachines |
tsa_precision_theta_ensemble | 1658.0 | 631 | yes | 2.8 | statsmodels , timemachines |
thinking_slow_and_slow | 1653.0 | 765 | yes | 0.1 | timemachines |
elo_faster_residual_balanced_ensemble | 1640.0 | 1169 | yes | 6.9 | timemachines |
thinking_precision_ensemble | 1635.0 | 21 | yes | 0.2 | timemachines |
tsa_p1_d0_q0 | 1634.0 | 431 | yes | 120.2 | statsmodels , timemachines |
slow_aggressive_ema_ensemble | 1632.0 | 772 | yes | 0.2 | timemachines |
smdk_p5_d0_q3_n500_aggressive | 1622.0 | 336 | yes | 21.5 | simdkalman , timemachines |
bats_damped_bc | 1613.0 | 9 | yes | 641.2 | tbats , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1607.0 | 350 | no | 26.7 | simdkalman , timemachines |
pycrt_mean_3 | 1606.0 | 2 | yes | 2616.1 | pycaret , timemachines |
fbprophet_cautious | 1602.0 | 156 | yes | 86.0 | prophet , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | -0.1 | orbit-ml , timemachines |
orbit_lgt_12 | 1600 | 0 | yes | -0.4 | 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.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 |
thinking_fast_and_slow | 1599.0 | 696 | yes | 0.1 | timemachines |
sluggish_moving_average | 1598.0 | 1184 | yes | 0.0 | timemachines |
pmd_exogenous_hypocratic | 1591.0 | 599 | yes | 12.3 | pmdarima , timemachines |
fbprophet_known | 1585.0 | 154 | yes | 80.6 | prophet , timemachines |
darts_theta | 1577.0 | 32 | no | 1.2 | darts , timemachines |
nprophet_p8 | 1564.0 | 250 | yes | 51.7 | neuralprophet , timemachines |
fbprophet_cautious_hypocratic | 1563.0 | 94 | yes | 75.1 | prophet , timemachines |
sk_ae | 1555.0 | 536 | yes | 18.6 | sktime , timemachines |
rvr_slowly_hypocratic | 1553.0 | 310 | yes | 0.9 | river , timemachines |
slow_balanced_ema_ensemble | 1549.0 | 757 | yes | 0.1 | timemachines |
divine_univariate | 1548.0 | 196 | yes | 118.8 | divinity , timemachines |
bats_damped_arma_bc | 1544.0 | 12 | yes | 1757.6 | tbats , timemachines |
tsa_aggressive_combined_ensemble | 1543.0 | 14 | yes | 582.8 | statsmodels , timemachines |
smdk_p5_d0_q3_n1000 | 1528.0 | 230 | no | 31.1 | simdkalman , timemachines |
bats_damped_arma | 1527.0 | 12 | yes | 1705.4 | tbats , timemachines |
tsa_precision_combined_ensemble | 1523.0 | 13 | yes | 1488.9 | statsmodels , timemachines |
pycrt_median_3 | 1512.0 | 1 | yes | 980.4 | pycaret , timemachines |
fbprophet_univariate_hypocratic | 1502.0 | 114 | yes | 80.2 | prophet , timemachines |
darts_four_theta | 1494.0 | 74 | yes | 1.3 | darts , timemachines |
darts_arima | 1491.0 | 64 | no | 10.6 | darts , timemachines |
fbprophet_exogenous | 1462.0 | 163 | yes | 75.9 | prophet , timemachines |
bats_fast | 1458.0 | 18 | yes | 684.1 | tbats , timemachines |
pmd_univariate | 1457.0 | 570 | yes | 0.8 | pmdarima , timemachines |
suc_quick_aggressive_ema_ensemble | 1456.0 | 34 | no | 4.7 | successor , timemachines |
fbprophet_exogenous_hypocratic | 1449.0 | 110 | yes | 77.2 | prophet , timemachines |
fbprophet_recursive | 1414.0 | 157 | yes | 222.7 | prophet , timemachines |
elo_faster_univariate_precision_ensemble | 1401.0 | 482 | yes | 7.1 | timemachines |
fbprophet_exogenous_exogenous | 1398.0 | 96 | yes | 255.5 | prophet , timemachines |
tsa_aggressive_theta_ensemble | 1397.0 | 567 | yes | 3.9 | statsmodels , timemachines |
darts_exp_smoothing | 1395.0 | 84 | no | 8.5 | darts , timemachines |
nprophet_p3 | 1387.0 | 206 | yes | 37.5 | neuralprophet , timemachines |
darts_prophet | 1386.0 | 28 | yes | 71.4 | darts , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1367.0 | 47 | yes | 460.2 | statsmodels , timemachines |
suc_tsa_p2_d0_q1 | 1344.0 | 39 | no | 4.2 | successor , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1338.0 | 47 | yes | 433.2 | statsmodels , timemachines |
nprophet_p2_hypocratic | 1328.0 | 239 | yes | 30.1 | neuralprophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 1304.0 | 3 | yes | 1.9 | successor , timemachines |
rapidly_moving_average | 1301.0 | 766 | yes | 0.0 | timemachines |
dlm_univariate_b | 1298.0 | 63 | no | -1.0 | pydlm , timemachines |
rvr_p5_d0_q0 | 1295.0 | 554 | yes | 0.2 | river , timemachines |
fbprophet_univariate | 1291.0 | 179 | yes | 122.8 | prophet , timemachines |
nprophet_p8_hypocratic | 1285.0 | 266 | yes | 30.0 | neuralprophet , timemachines |
sk_theta | 1282.0 | 619 | yes | 0.6 | sktime , timemachines |
merlion_mses | 1273.0 | 13 | yes | 99.2 | timemachines |
merlion_prophet | 1267.0 | 13 | yes | 35.3 | timemachines |
nprophet_p5 | 1267.0 | 202 | yes | 37.5 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 1261.0 | 238 | yes | 30.2 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 1246.0 | 238 | yes | 37.7 | neuralprophet , timemachines |
nprophet_p2 | 1225.0 | 255 | yes | 53.5 | neuralprophet , timemachines |
nprophet_p1 | 1098.0 | 658 | yes | 55.4 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1087.0 | 99 | yes | 372.3 | prophet , timemachines |
nprophet_p3_hypocratic | 1036.0 | 251 | yes | 49.1 | neuralprophet , timemachines |
rvr_p1_d0_q0 | 1032.0 | 379 | yes | 0.0 | river , timemachines |
rvr_p8_d0_q0 | 1009.0 | 309 | no | 0.0 | river , timemachines |
empirical_last_value | 982.0 | 603 | yes | 0.0 | timemachines |
rvr_p2_d0_q0 | 873.0 | 889 | yes | 0.0 | river , timemachines |