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 |
---|---|---|---|---|---|
sk_autoarima | 2190.0 | 59 | yes | 117.2 | sktime , timemachines |
tsa_p2_d0_q1 | 2112.0 | 588 | yes | 91.8 | statsmodels , timemachines |
bats_trendy | 2107.0 | 26 | yes | 417.8 | tbats , timemachines |
tsa_p3_d0_q0 | 2101.0 | 343 | yes | 42.5 | statsmodels , timemachines |
sk_ae_add_damped | 2067.0 | 1142 | yes | 10.4 | sktime , timemachines |
elo_faster_residual_aggressive_ensemble | 2060.0 | 885 | yes | 19.8 | timemachines |
quick_precision_ema_ensemble | 2046.0 | 1223 | yes | 0.1 | timemachines |
tsa_precision_d0_ensemble | 2037.0 | 46 | yes | 691.1 | statsmodels , timemachines |
bats_damped_arma | 1995.0 | 18 | yes | 2210.4 | tbats , timemachines |
orbit_lgt_12 | 1989.0 | 18 | yes | 40.3 | orbit-ml , timemachines |
bats_trendy_bc | 1957.0 | 31 | yes | 827.0 | tbats , timemachines |
quick_balanced_ema_ensemble | 1956.0 | 1232 | yes | 0.1 | timemachines |
tsa_balanced_combined_ensemble | 1926.0 | 36 | yes | 620.6 | statsmodels , timemachines |
tsa_balanced_d0_ensemble | 1910.0 | 23 | yes | 194.3 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 1896.0 | 12 | yes | 3501.2 | statsmodels , timemachines |
bats_trendy_arma_bc | 1894.0 | 11 | yes | 1292.2 | tbats , timemachines |
tsa_p2_d0_q0 | 1885.0 | 751 | yes | 27.7 | statsmodels , timemachines |
bats_bc | 1884.0 | 24 | yes | 832.9 | tbats , timemachines |
quick_aggressive_ema_ensemble | 1883.0 | 2071 | yes | 0.1 | timemachines |
thinking_slow_and_fast | 1876.0 | 1499 | yes | 0.0 | timemachines |
thinking_precision_ensemble | 1871.0 | 93 | yes | 0.2 | timemachines |
elo_faster_univariate_balanced_ensemble | 1868.0 | 813 | yes | 1614.2 | timemachines |
bats_arma_bc | 1859.0 | 7 | no | 4617.3 | tbats , timemachines |
tsa_p3_d0_q1 | 1855.0 | 238 | yes | 83.7 | statsmodels , timemachines |
precision_ema_ensemble | 1849.0 | 1342 | yes | 0.1 | timemachines |
tsa_p1_d0_q1 | 1843.0 | 398 | yes | 70.2 | statsmodels , timemachines |
elo_faster_residual_precision_ensemble | 1841.0 | 708 | yes | 22.1 | timemachines |
tsa_precision_theta_ensemble | 1834.0 | 1222 | yes | 9.7 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1816.0 | 1299 | yes | 2190.5 | timemachines |
nprophet_p5 | 1815.0 | 567 | yes | 47.5 | neuralprophet , timemachines |
darts_autoarima | 1796.0 | 26 | no | 130.9 | darts , timemachines |
tsa_balanced_theta_ensemble | 1792.0 | 1462 | yes | 3.6 | statsmodels , timemachines |
bats_damped_bc | 1780.0 | 28 | yes | 547.5 | tbats , timemachines |
slow_balanced_ema_ensemble | 1778.0 | 1492 | yes | 0.1 | timemachines |
elo_faster_univariate_precision_ensemble | 1777.0 | 863 | yes | 1590.9 | timemachines |
bats_arma | 1761.0 | 13 | yes | 435.8 | tbats , timemachines |
tsa_aggressive_theta_ensemble | 1758.0 | 1233 | yes | 4.8 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 1757.0 | 1070 | yes | 852.7 | timemachines |
elo_fastest_residual_aggressive_ensemble | 1748.0 | 1826 | yes | 1.1 | timemachines |
tsa_precision_combined_ensemble | 1741.0 | 29 | yes | 2240.6 | statsmodels , timemachines |
darts_arima | 1735.0 | 109 | no | 14.1 | darts , timemachines |
aggressive_ema_ensemble | 1733.0 | 1372 | yes | 0.1 | timemachines |
bats_trendy_arma | 1731.0 | 24 | yes | 766.1 | tbats , timemachines |
dlm_univariate_a | 1719.0 | 61 | no | -1.0 | pydlm , timemachines |
elo_fastest_residual_precision_ensemble | 1712.0 | 1777 | yes | 1.7 | timemachines |
thinking_slow_and_slow | 1708.0 | 1229 | yes | 0.1 | timemachines |
fbprophet_univariate_hypocratic | 1704.0 | 120 | yes | 144.3 | prophet , timemachines |
rapidly_moving_average | 1697.0 | 1470 | yes | 0.0 | timemachines |
darts_fft | 1687.0 | 140 | no | 0.7 | darts , timemachines |
elo_fastest_residual_balanced_ensemble | 1666.0 | 1382 | yes | 0.9 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1662.0 | 1072 | yes | 1369.5 | timemachines |
slow_precision_ema_ensemble | 1662.0 | 1265 | yes | 0.1 | timemachines |
slow_aggressive_ema_ensemble | 1659.0 | 1630 | yes | 0.1 | timemachines |
bats_damped | 1659.0 | 25 | yes | 377.8 | tbats , timemachines |
bats_fast | 1646.0 | 46 | yes | 1091.4 | tbats , timemachines |
sk_theta | 1646.0 | 1317 | yes | 0.8 | sktime , timemachines |
bats_damped_arma_bc | 1644.0 | 24 | yes | 1337.4 | tbats , timemachines |
divine_univariate_hypocratic_slow | 1640.0 | 149 | yes | -0.1 | divinity , timemachines |
merlion_prophet | 1639.0 | 18 | yes | 34.4 | timemachines |
nprophet_p3_hypocratic | 1638.0 | 478 | yes | 47.9 | neuralprophet , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1623.0 | 890 | yes | 1586.7 | timemachines |
sk_ae_add | 1619.0 | 1314 | yes | 13.6 | sktime , timemachines |
thinking_fast_and_slow | 1618.0 | 1309 | yes | 0.1 | timemachines |
pycrt_median_3 | 1617.0 | 2 | no | 1620.9 | pycaret , timemachines |
merlion_mses | 1608.0 | 26 | yes | 103.1 | timemachines |
nprophet_p3 | 1605.0 | 415 | yes | 55.1 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 1602.0 | 389 | yes | 36.0 | neuralprophet , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | -0.3 | 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 |
pycrt_median_3_full | 1600 | 0 | no | -6944.4 | pycaret , timemachines |
fbprophet_chaser | 1600 | 0 | no | -1.0 | prophet , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
pycrt_median_8 | 1590.0 | 2 | yes | 4420.3 | pycaret , timemachines |
elo_faster_residual_balanced_ensemble | 1582.0 | 1646 | yes | 23.1 | timemachines |
tsa_aggressive_d0_ensemble | 1567.0 | 56 | yes | 663.2 | statsmodels , timemachines |
balanced_ema_ensemble | 1565.0 | 1194 | yes | 0.1 | timemachines |
darts_four_theta | 1555.0 | 146 | no | 0.9 | darts , timemachines |
merlion_arima | 1549.0 | 32 | yes | 19.8 | timemachines |
divine_univariate | 1549.0 | 230 | yes | -0.1 | divinity , timemachines |
darts_theta | 1533.0 | 109 | no | 1.3 | darts , timemachines |
pycrt_mean_8 | 1518.0 | 2 | yes | 4133.0 | pycaret , timemachines |
sk_ae | 1518.0 | 1016 | yes | 12.6 | sktime , timemachines |
nprophet_p2 | 1517.0 | 501 | yes | 29.2 | neuralprophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1512.0 | 618 | yes | 58.4 | simdkalman , timemachines |
darts_exp_smoothing | 1511.0 | 162 | no | 10.3 | darts , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1490.0 | 785 | yes | 13.8 | simdkalman , timemachines |
empirical_last_value | 1486.0 | 1034 | yes | 0.0 | timemachines |
fbprophet_cautious_hypocratic | 1479.0 | 114 | yes | 160.5 | prophet , timemachines |
divine_univariate_hypocratic_fast | 1478.0 | 144 | yes | -0.1 | divinity , timemachines |
pmd_exogenous_hypocratic | 1472.0 | 956 | yes | 22.9 | pmdarima , timemachines |
pycrt_mean_3 | 1471.0 | 3 | no | 2470.0 | pycaret , timemachines |
darts_prophet | 1459.0 | 46 | yes | 80.2 | darts , timemachines |
fbprophet_cautious | 1453.0 | 166 | yes | 207.6 | prophet , timemachines |
nprophet_p8_hypocratic | 1444.0 | 575 | yes | 47.7 | neuralprophet , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1443.0 | 74 | yes | 501.5 | statsmodels , timemachines |
thinking_fast_and_fast | 1400.0 | 1162 | yes | 0.0 | timemachines |
dlm_univariate_b | 1399.0 | 45 | no | -1.0 | pydlm , timemachines |
quickly_moving_average | 1392.0 | 1815 | yes | 0.0 | timemachines |
slowly_moving_average | 1384.0 | 1594 | yes | 0.0 | timemachines |
rvr_p5_d0_q0 | 1382.0 | 1002 | yes | 0.1 | river , timemachines |
nprophet_p2_hypocratic | 1381.0 | 491 | yes | 35.9 | neuralprophet , timemachines |
tsa_p1_d0_q0 | 1379.0 | 791 | yes | 27.7 | statsmodels , timemachines |
fbprophet_exogenous_hypocratic | 1379.0 | 122 | yes | 160.2 | prophet , timemachines |
fbprophet_recursive | 1376.0 | 166 | yes | 177.9 | prophet , timemachines |
fbprophet_exogenous | 1375.0 | 174 | yes | 83.4 | prophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1338.0 | 93 | yes | 530.5 | prophet , timemachines |
nprophet_p8 | 1319.0 | 448 | yes | 35.8 | neuralprophet , timemachines |
nprophet_p1 | 1311.0 | 1065 | yes | 36.2 | neuralprophet , timemachines |
fbprophet_exogenous_exogenous | 1287.0 | 93 | yes | 254.0 | prophet , timemachines |
gk_basic_skater | 1281.0 | 12 | yes | 3557.3 | greykite , timemachines |
fbprophet_known | 1273.0 | 176 | yes | 251.3 | prophet , timemachines |
rvr_quickly_hypocratic | 1270.0 | 1023 | yes | 0.4 | river , timemachines |
nprophet_p5_hypocratic | 1267.0 | 390 | yes | 47.2 | neuralprophet , timemachines |
fbprophet_univariate | 1265.0 | 222 | yes | 85.2 | prophet , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1232.0 | 75 | yes | 245.6 | statsmodels , timemachines |
sluggish_moving_average | 1206.0 | 1980 | yes | 0.0 | timemachines |
rvr_p1_d0_q0 | 1175.0 | 725 | yes | 0.0 | river , timemachines |
suc_tsa_aggressive_d0_ensemble | 1136.0 | 7 | yes | 1.6 | successor , timemachines |
rvr_balanced_ensemble | 1120.0 | 848 | yes | 0.8 | river , timemachines |
smdk_p5_d0_q3_n1000 | 1114.0 | 547 | yes | 36.9 | simdkalman , timemachines |
smdk_p5_d0_q3_n500 | 1104.0 | 1209 | yes | 14.1 | simdkalman , timemachines |
rvr_slowly_hypocratic | 1083.0 | 636 | yes | 0.4 | river , timemachines |
pmd_univariate | 1067.0 | 1039 | yes | 12.3 | pmdarima , timemachines |
rvr_p2_d0_q0 | 1024.0 | 1580 | yes | 0.1 | river , timemachines |
suc_quick_aggressive_ema_ensemble | 1003.0 | 129 | no | 3.0 | successor , timemachines |
suc_tsa_p2_d0_q1 | 967.0 | 135 | no | 1.8 | successor , timemachines |
rvr_p8_d0_q0 | 934.0 | 661 | yes | 0.1 | river , timemachines |