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 | 2109.0 | 12410 | yes | 102.7 | statsmodels , timemachines |
orbit_lgt_24 | 2046.0 | 61 | yes | 40.3 | orbit-ml , timemachines |
tsa_p1_d0_q1 | 2021.0 | 7506 | yes | 87.8 | statsmodels , timemachines |
tsa_p3_d0_q1 | 2015.0 | 3697 | yes | 105.7 | statsmodels , timemachines |
elo_faster_univariate_balanced_ensemble | 1984.0 | 17071 | yes | 193.1 | timemachines |
tsa_balanced_d0_ensemble | 1982.0 | 627 | yes | 1237.8 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 1968.0 | 1134 | yes | 2203.2 | statsmodels , timemachines |
sk_autoarima | 1926.0 | 1911 | yes | 293.1 | sktime , timemachines |
tsa_p2_d0_q0 | 1902.0 | 10865 | yes | 45.2 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 1902.0 | 700 | yes | 1484.3 | statsmodels , timemachines |
tsa_p3_d0_q0 | 1894.0 | 8892 | yes | 56.4 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1875.0 | 25368 | yes | 253.1 | timemachines |
bats_trendy_bc | 1867.0 | 655 | yes | 774.0 | tbats , timemachines |
elo_faster_residual_balanced_ensemble | 1864.0 | 25824 | yes | 20.5 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1863.0 | 21016 | yes | 240.8 | timemachines |
slow_precision_ema_ensemble | 1861.0 | 23049 | yes | 0.3 | timemachines |
elo_fastest_residual_balanced_ensemble | 1859.0 | 24706 | yes | 1.7 | timemachines |
bats_trendy_arma_bc | 1856.0 | 425 | yes | 1455.0 | tbats , timemachines |
elo_faster_residual_precision_ensemble | 1855.0 | 18680 | yes | 15.0 | timemachines |
tsa_aggressive_d0_ensemble | 1852.0 | 818 | yes | 1028.5 | statsmodels , timemachines |
elo_faster_residual_aggressive_ensemble | 1849.0 | 16652 | yes | 11.3 | timemachines |
bats_damped_arma | 1845.0 | 292 | yes | 1320.8 | tbats , timemachines |
bats_damped_bc | 1843.0 | 558 | yes | 917.9 | tbats , timemachines |
elo_fastest_residual_precision_ensemble | 1837.0 | 29149 | yes | 1.3 | timemachines |
elo_faster_univariate_precision_ensemble | 1837.0 | 19811 | yes | 238.4 | timemachines |
elo_fastest_univariate_precision_ensemble | 1837.0 | 31036 | yes | 329.0 | timemachines |
tsa_balanced_combined_ensemble | 1834.0 | 897 | yes | 524.9 | statsmodels , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1827.0 | 22082 | yes | 282.4 | timemachines |
merlion_arima | 1826.0 | 592 | yes | 33.2 | timemachines |
bats_trendy_arma | 1825.0 | 342 | yes | 1128.5 | tbats , timemachines |
orbit_lgt_12 | 1822.0 | 98 | yes | 20.2 | orbit-ml , timemachines |
thinking_slow_and_fast | 1813.0 | 29310 | yes | 0.1 | timemachines |
tsa_precision_combined_ensemble | 1808.0 | 676 | yes | 1537.0 | statsmodels , timemachines |
divine_univariate_hypocratic_fast | 1805.0 | 2692 | yes | 27.6 | divinity , timemachines |
darts_autoarima | 1803.0 | 435 | yes | 130.0 | darts , timemachines |
slow_aggressive_ema_ensemble | 1797.0 | 26092 | yes | 0.3 | timemachines |
tsa_p1_d0_q0 | 1795.0 | 14855 | yes | 30.0 | statsmodels , timemachines |
bats_damped | 1793.0 | 350 | yes | 717.2 | tbats , timemachines |
slow_balanced_ema_ensemble | 1792.0 | 29987 | yes | 0.3 | timemachines |
elo_fastest_residual_aggressive_ensemble | 1790.0 | 25345 | yes | 1.2 | timemachines |
divine_univariate | 1788.0 | 3607 | yes | 33.8 | divinity , timemachines |
bats_damped_arma_bc | 1778.0 | 327 | yes | 1367.0 | tbats , timemachines |
bats_trendy | 1775.0 | 680 | yes | 832.1 | tbats , timemachines |
divine_univariate_hypocratic_slow | 1774.0 | 3038 | yes | 20.0 | divinity , timemachines |
aggressive_ema_ensemble | 1772.0 | 26879 | yes | 0.3 | timemachines |
precision_ema_ensemble | 1752.0 | 30644 | yes | 0.2 | timemachines |
bats_arma_bc | 1738.0 | 292 | yes | 1390.7 | tbats , timemachines |
thinking_precision_ensemble | 1733.0 | 1287 | yes | 0.6 | timemachines |
sluggish_moving_average | 1732.0 | 30718 | yes | 0.0 | timemachines |
thinking_fast_and_slow | 1730.0 | 24214 | yes | 0.1 | timemachines |
thinking_slow_and_slow | 1722.0 | 24116 | yes | 0.1 | timemachines |
bats_arma | 1719.0 | 360 | yes | 1286.5 | tbats , timemachines |
quick_precision_ema_ensemble | 1718.0 | 24907 | yes | 0.3 | timemachines |
slowly_moving_average | 1710.0 | 31684 | yes | 0.0 | timemachines |
balanced_ema_ensemble | 1706.0 | 27726 | yes | 0.2 | timemachines |
sk_ae_add_damped | 1705.0 | 25880 | yes | 12.3 | sktime , timemachines |
dlm_univariate_a | 1705.0 | 684 | yes | -1.0 | pydlm , timemachines |
quick_aggressive_ema_ensemble | 1701.0 | 47934 | yes | 0.3 | timemachines |
quick_balanced_ema_ensemble | 1698.0 | 23316 | yes | 0.3 | timemachines |
sk_ae | 1691.0 | 23569 | yes | 11.6 | sktime , timemachines |
pmd_exogenous_hypocratic | 1683.0 | 19405 | yes | 6.3 | pmdarima , timemachines |
bats_bc | 1673.0 | 704 | yes | 563.1 | tbats , timemachines |
sk_ae_add | 1663.0 | 33226 | yes | 13.6 | sktime , timemachines |
fbprophet_cautious | 1647.0 | 2509 | yes | 123.4 | prophet , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1643.0 | 1599 | yes | 578.1 | statsmodels , timemachines |
bats_fast | 1641.0 | 718 | yes | 598.6 | tbats , timemachines |
pmd_univariate | 1630.0 | 17258 | yes | 6.9 | pmdarima , timemachines |
tsa_precision_theta_ensemble | 1620.0 | 21714 | yes | 3.4 | statsmodels , timemachines |
fbprophet_chaser | 1612.0 | 52 | yes | -1.0 | prophet , timemachines |
tsa_balanced_theta_ensemble | 1604.0 | 24883 | yes | 4.0 | statsmodels , timemachines |
fbprophet_univariate_hypocratic | 1595.0 | 2221 | yes | 120.8 | prophet , timemachines |
fbprophet_exogenous_hypocratic | 1592.0 | 2348 | yes | 118.9 | prophet , timemachines |
sk_theta | 1591.0 | 23762 | yes | 0.8 | sktime , timemachines |
darts_theta | 1590.0 | 1682 | yes | 1.3 | darts , timemachines |
darts_arima | 1576.0 | 1801 | yes | 11.8 | darts , timemachines |
tsa_aggressive_theta_ensemble | 1556.0 | 29340 | yes | 3.8 | statsmodels , timemachines |
quickly_moving_average | 1553.0 | 29991 | yes | 0.0 | timemachines |
gk_basic_skater | 1552.0 | 36 | yes | 3656.6 | greykite , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1552.0 | 1422 | yes | 1136.3 | statsmodels , timemachines |
fbprophet_univariate | 1547.0 | 3727 | yes | 121.8 | prophet , timemachines |
fbprophet_known | 1540.0 | 2583 | yes | 144.6 | prophet , timemachines |
darts_four_theta | 1538.0 | 2388 | yes | 1.4 | darts , timemachines |
fbprophet_recursive | 1513.0 | 2588 | yes | 133.2 | prophet , timemachines |
rvr_slowly_hypocratic | 1505.0 | 11957 | yes | 0.5 | river , timemachines |
darts_prophet | 1501.0 | 556 | yes | 82.3 | darts , timemachines |
fbprophet_cautious_hypocratic | 1487.0 | 1817 | yes | 124.4 | prophet , timemachines |
thinking_fast_and_fast | 1487.0 | 23989 | yes | 0.1 | timemachines |
darts_fft | 1485.0 | 1660 | yes | 0.7 | darts , timemachines |
fbprophet_exogenous | 1482.0 | 3097 | yes | 135.7 | prophet , timemachines |
rvr_quickly_hypocratic | 1471.0 | 16481 | yes | 0.4 | river , timemachines |
merlion_prophet | 1471.0 | 492 | yes | 42.0 | timemachines |
suc_quick_aggressive_ema_ensemble | 1434.0 | 1591 | yes | 5.0 | successor , timemachines |
dlm_univariate_b | 1426.0 | 609 | yes | -1.0 | pydlm , timemachines |
darts_exp_smoothing | 1392.0 | 3501 | yes | 10.7 | darts , timemachines |
suc_tsa_aggressive_d0_ensemble | 1354.0 | 318 | yes | 3.0 | successor , timemachines |
rapidly_moving_average | 1316.0 | 27881 | yes | 0.0 | timemachines |
suc_tsa_p2_d0_q1 | 1289.0 | 1673 | yes | 5.3 | successor , timemachines |
rvr_balanced_ensemble | 1271.0 | 15239 | yes | 0.4 | river , timemachines |
nprophet_p3 | 1259.0 | 8302 | yes | 53.5 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1240.0 | 1862 | yes | 391.3 | prophet , timemachines |
nprophet_p2 | 1238.0 | 9947 | yes | 44.0 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1221.0 | 11583 | yes | 83.8 | simdkalman , timemachines |
fbprophet_exogenous_exogenous | 1216.0 | 1794 | yes | 329.1 | prophet , timemachines |
smdk_p5_d0_q3_n1000 | 1188.0 | 8986 | yes | 79.0 | simdkalman , timemachines |
nprophet_p8 | 1177.0 | 8496 | yes | 49.8 | neuralprophet , timemachines |
nprophet_p5 | 1166.0 | 9698 | yes | 49.1 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 1160.0 | 8659 | yes | 49.1 | neuralprophet , timemachines |
nprophet_p1 | 1157.0 | 19526 | yes | 51.4 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 1150.0 | 8703 | yes | 51.9 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1146.0 | 12130 | yes | 42.2 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | 1133.0 | 16974 | yes | 48.6 | simdkalman , timemachines |
nprophet_p3_hypocratic | 1126.0 | 8900 | yes | 52.3 | neuralprophet , timemachines |
nprophet_p8_hypocratic | 1094.0 | 8438 | yes | 53.1 | neuralprophet , timemachines |
empirical_last_value | 1075.0 | 18950 | yes | 0.0 | timemachines |
nprophet_p5_hypocratic | 1070.0 | 10555 | yes | 55.3 | neuralprophet , timemachines |
rvr_p1_d0_q0 | 1067.0 | 17082 | yes | 0.0 | river , timemachines |
rvr_p5_d0_q0 | 1049.0 | 14434 | yes | 0.1 | river , timemachines |
merlion_mses | 1043.0 | 294 | yes | 119.8 | timemachines |
rvr_p2_d0_q0 | 1004.0 | 20921 | yes | 0.0 | river , timemachines |
rvr_p8_d0_q0 | 955.0 | 12534 | yes | 0.1 | river , timemachines |
pycrt_median_3_full | 0 | 0 | yes | 0.0 | , timemachines |
darts_nbeats | 0 | 0 | yes | 0.0 | , timemachines |
sk_ae_mul_damped | 0 | 0 | yes | 0.0 | , timemachines |
rvr_p3_d0_q0 | 0 | 0 | yes | 0.0 | , timemachines |
pycrt_mean_8 | 0 | 0 | yes | 0.0 | , timemachines |
sk_ae_mul | 0 | 0 | yes | 0.0 | , timemachines |
regress_change_on_first_known | 0 | 0 | yes | 0.0 | , timemachines |
tsa_p1_d1_q0 | 0 | 0 | yes | 0.0 | , timemachines |
tsa_p2_d1_q0 | 0 | 0 | yes | 0.0 | , timemachines |
pycrt_mean_3 | 0 | 0 | yes | 0.0 | , timemachines |
pycrt_median_8 | 0 | 0 | yes | 0.0 | , timemachines |
pycrt_median_3 | 0 | 0 | yes | 0.0 | , timemachines |
rvr_aggressive_ensemble | 0 | 0 | yes | 0.0 | , timemachines |
tsa_p3_d1_q0 | 0 | 0 | yes | 0.0 | , timemachines |