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 | 2411.0 | 577 | yes | 86.3 | statsmodels , timemachines |
tsa_p3_d0_q1 | 2272.0 | 159 | yes | 77.8 | statsmodels , timemachines |
quick_aggressive_ema_ensemble | 2227.0 | 2695 | yes | 0.1 | timemachines |
tsa_p1_d0_q1 | 2061.0 | 314 | yes | 38.0 | statsmodels , timemachines |
tsa_aggressive_combined_ensemble | 2034.0 | 23 | yes | 5620.4 | statsmodels , timemachines |
quick_precision_ema_ensemble | 1994.0 | 1269 | yes | 0.1 | timemachines |
darts_autoarima | 1978.0 | 25 | no | 63.1 | darts , timemachines |
tsa_p1_d0_q0 | 1966.0 | 709 | yes | 26.3 | statsmodels , timemachines |
aggressive_ema_ensemble | 1947.0 | 1449 | yes | 0.1 | timemachines |
elo_fastest_univariate_aggressive_ensemble | 1939.0 | 1224 | yes | 0.9 | timemachines |
slow_precision_ema_ensemble | 1930.0 | 1136 | yes | 0.1 | timemachines |
orbit_lgt_12 | 1925.0 | 3 | yes | 32.0 | orbit-ml , timemachines |
slow_balanced_ema_ensemble | 1916.0 | 1738 | yes | 0.1 | timemachines |
elo_fastest_residual_precision_ensemble | 1916.0 | 1417 | yes | 1.9 | timemachines |
sluggish_moving_average | 1905.0 | 1403 | yes | 0.0 | timemachines |
elo_faster_univariate_balanced_ensemble | 1887.0 | 943 | yes | 20.3 | timemachines |
divine_univariate | 1875.0 | 95 | yes | 74.5 | divinity , timemachines |
divine_univariate_hypocratic_fast | 1856.0 | 98 | yes | 68.5 | divinity , timemachines |
tsa_precision_combined_ensemble | 1845.0 | 54 | yes | 292.6 | statsmodels , timemachines |
sk_theta | 1838.0 | 1199 | yes | 1.3 | sktime , timemachines |
fbprophet_recursive | 1837.0 | 72 | yes | 164.4 | prophet , timemachines |
divine_univariate_hypocratic_slow | 1835.0 | 147 | yes | -0.1 | divinity , timemachines |
elo_faster_univariate_precision_ensemble | 1829.0 | 1236 | yes | 18.7 | timemachines |
slow_aggressive_ema_ensemble | 1824.0 | 1134 | yes | 0.3 | timemachines |
bats_trendy | 1821.0 | 35 | yes | 841.7 | tbats , timemachines |
pmd_univariate | 1820.0 | 787 | yes | 6.8 | pmdarima , timemachines |
elo_fastest_residual_balanced_ensemble | 1813.0 | 1325 | yes | 3.4 | timemachines |
fbprophet_cautious | 1796.0 | 56 | yes | 120.1 | prophet , timemachines |
elo_faster_residual_aggressive_ensemble | 1786.0 | 662 | yes | 1.7 | timemachines |
elo_faster_residual_precision_ensemble | 1785.0 | 1003 | yes | 1.9 | timemachines |
merlion_arima | 1785.0 | 36 | yes | 26.0 | timemachines |
bats_damped_arma | 1785.0 | 21 | yes | 1618.5 | tbats , timemachines |
quick_balanced_ema_ensemble | 1778.0 | 1194 | yes | 0.1 | timemachines |
bats_trendy_bc | 1776.0 | 35 | yes | 1356.9 | tbats , timemachines |
tsa_balanced_combined_ensemble | 1765.0 | 56 | yes | 443.8 | statsmodels , timemachines |
bats_arma_bc | 1762.0 | 18 | yes | 698.7 | tbats , timemachines |
thinking_slow_and_slow | 1758.0 | 1156 | yes | 0.0 | timemachines |
fbprophet_exogenous_hypocratic | 1757.0 | 59 | yes | 158.6 | prophet , timemachines |
pmd_exogenous_hypocratic | 1755.0 | 982 | yes | 5.6 | pmdarima , timemachines |
thinking_fast_and_fast | 1750.0 | 1237 | yes | 0.0 | timemachines |
elo_faster_residual_balanced_ensemble | 1735.0 | 1049 | yes | 1.8 | timemachines |
gk_basic_skater | 1735.0 | 5 | yes | 4298.8 | greykite , timemachines |
thinking_fast_and_slow | 1731.0 | 1118 | yes | 0.1 | timemachines |
fbprophet_known | 1728.0 | 60 | yes | 80.5 | prophet , timemachines |
sk_ae_add_damped | 1726.0 | 1414 | yes | 9.6 | sktime , timemachines |
tsa_aggressive_theta_ensemble | 1724.0 | 1672 | yes | 2.6 | statsmodels , timemachines |
bats_arma | 1721.0 | 23 | yes | 2870.7 | tbats , timemachines |
bats_bc | 1690.0 | 50 | yes | 272.2 | tbats , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1680.0 | 790 | yes | 26.3 | simdkalman , timemachines |
tsa_aggressive_d0_ensemble | 1678.0 | 17 | yes | 2859.2 | statsmodels , timemachines |
thinking_precision_ensemble | 1677.0 | 60 | yes | 0.3 | timemachines |
sk_autoarima | 1674.0 | 127 | yes | 1317.0 | sktime , timemachines |
fbprophet_univariate_hypocratic | 1671.0 | 54 | yes | 120.4 | prophet , timemachines |
thinking_slow_and_fast | 1665.0 | 1378 | yes | 0.0 | timemachines |
bats_damped_arma_bc | 1650.0 | 13 | yes | 1396.8 | tbats , timemachines |
sk_ae | 1650.0 | 1355 | yes | 8.2 | sktime , timemachines |
elo_fastest_univariate_precision_ensemble | 1648.0 | 2035 | yes | 0.9 | timemachines |
precision_ema_ensemble | 1648.0 | 1722 | yes | 0.1 | timemachines |
quickly_moving_average | 1643.0 | 1199 | yes | 0.0 | timemachines |
bats_damped_bc | 1643.0 | 34 | yes | 1001.3 | tbats , timemachines |
fbprophet_exogenous | 1641.0 | 110 | yes | 80.7 | prophet , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1640.0 | 661 | yes | 50.4 | simdkalman , timemachines |
fbprophet_univariate | 1635.0 | 113 | yes | 146.4 | prophet , timemachines |
tsa_balanced_d0_ensemble | 1627.0 | 36 | yes | 777.2 | statsmodels , timemachines |
bats_trendy_arma_bc | 1626.0 | 25 | yes | 1502.6 | tbats , timemachines |
bats_trendy_arma | 1619.0 | 12 | yes | 754.2 | tbats , timemachines |
tsa_p3_d0_q0 | 1618.0 | 387 | yes | 64.3 | statsmodels , timemachines |
tsa_precision_d0_ensemble | 1617.0 | 56 | yes | 292.9 | statsmodels , timemachines |
orbit_lgt_24 | 1600 | 0 | yes | 0.0 | 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.1 | 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 |
dlm_univariate_a | 1600 | 0 | no | -1.0 | pydlm , timemachines |
dlm_univariate_b | 1600 | 0 | no | -1.0 | pydlm , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
balanced_ema_ensemble | 1598.0 | 1620 | yes | 0.1 | timemachines |
tsa_p2_d0_q0 | 1585.0 | 515 | yes | 73.9 | statsmodels , timemachines |
darts_theta | 1578.0 | 68 | no | 0.8 | darts , timemachines |
smdk_p5_d0_q3_n1000 | 1572.0 | 609 | yes | 57.0 | simdkalman , timemachines |
nprophet_p3 | 1568.0 | 413 | yes | 48.7 | neuralprophet , timemachines |
nprophet_p1 | 1562.0 | 1254 | yes | 36.7 | neuralprophet , timemachines |
elo_fastest_residual_aggressive_ensemble | 1556.0 | 1082 | yes | 3.8 | timemachines |
elo_faster_univariate_aggressive_ensemble | 1526.0 | 1165 | yes | 17.4 | timemachines |
pycrt_mean_8 | 1518.0 | 1 | yes | 3386.1 | pycaret , timemachines |
pycrt_median_3 | 1515.0 | 1 | no | 2389.6 | pycaret , timemachines |
pycrt_median_3_full | 1505.0 | 1 | yes | 10324.9 | pycaret , timemachines |
darts_four_theta | 1504.0 | 111 | no | 1.5 | darts , timemachines |
elo_fastest_univariate_balanced_ensemble | 1501.0 | 1255 | yes | 0.8 | timemachines |
darts_arima | 1500.0 | 75 | no | 12.0 | darts , timemachines |
rvr_quickly_hypocratic | 1497.0 | 790 | yes | 0.4 | river , timemachines |
sk_ae_add | 1492.0 | 2028 | yes | 11.5 | sktime , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1485.0 | 72 | yes | 195.0 | statsmodels , timemachines |
rvr_slowly_hypocratic | 1473.0 | 612 | yes | 0.3 | river , timemachines |
slowly_moving_average | 1455.0 | 1614 | yes | 0.0 | timemachines |
bats_fast | 1454.0 | 31 | yes | 788.6 | tbats , timemachines |
tsa_balanced_theta_ensemble | 1443.0 | 1207 | yes | 3.0 | statsmodels , timemachines |
fbprophet_cautious_hypocratic | 1441.0 | 50 | yes | 124.5 | prophet , timemachines |
suc_quick_aggressive_ema_ensemble | 1439.0 | 89 | no | 4.3 | successor , timemachines |
pycrt_median_8 | 1432.0 | 2 | yes | 2288.3 | pycaret , timemachines |
nprophet_p5 | 1425.0 | 442 | yes | 36.4 | neuralprophet , timemachines |
pycrt_mean_3 | 1419.0 | 2 | no | 3660.3 | pycaret , timemachines |
suc_tsa_p2_d0_q1 | 1417.0 | 100 | no | 3.0 | successor , timemachines |
bats_damped | 1405.0 | 16 | yes | 345.8 | tbats , timemachines |
nprophet_p2_hypocratic | 1400.0 | 540 | yes | 36.8 | neuralprophet , timemachines |
nprophet_p2 | 1396.0 | 657 | yes | 30.1 | neuralprophet , timemachines |
darts_fft | 1390.0 | 87 | no | 0.7 | darts , timemachines |
darts_exp_smoothing | 1368.0 | 187 | no | 9.9 | darts , timemachines |
nprophet_p5_hypocratic | 1324.0 | 558 | yes | 66.9 | neuralprophet , timemachines |
rapidly_moving_average | 1309.0 | 1451 | yes | 0.0 | timemachines |
suc_tsa_aggressive_d0_ensemble | 1300.0 | 5 | yes | 1.6 | successor , timemachines |
nprophet_p8_hypocratic | 1300.0 | 430 | yes | 68.9 | neuralprophet , timemachines |
nprophet_p1_hypocratic | 1296.0 | 467 | yes | 48.9 | neuralprophet , timemachines |
fbprophet_univariate_univariate_hypocratic | 1277.0 | 39 | yes | 368.5 | prophet , timemachines |
darts_prophet | 1276.0 | 20 | no | 77.6 | darts , timemachines |
merlion_prophet | 1265.0 | 29 | yes | 44.1 | timemachines |
tsa_precision_theta_ensemble | 1263.0 | 1029 | yes | 2.9 | statsmodels , timemachines |
smdk_p5_d0_q3_n500 | 1260.0 | 927 | yes | 24.1 | simdkalman , timemachines |
nprophet_p3_hypocratic | 1243.0 | 456 | yes | 38.4 | neuralprophet , timemachines |
nprophet_p8 | 1190.0 | 489 | yes | 36.7 | neuralprophet , timemachines |
fbprophet_exogenous_exogenous | 1169.0 | 45 | yes | 321.5 | prophet , timemachines |
empirical_last_value | 1109.0 | 870 | yes | 0.0 | timemachines |
rvr_balanced_ensemble | 1058.0 | 719 | yes | 0.3 | river , timemachines |
rvr_p5_d0_q0 | 1019.0 | 581 | yes | 0.1 | river , timemachines |
rvr_p2_d0_q0 | 914.0 | 746 | yes | 0.0 | river , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 885.0 | 54 | yes | 4522.7 | statsmodels , timemachines |
rvr_p8_d0_q0 | 842.0 | 610 | yes | 0.1 | river , timemachines |
rvr_p1_d0_q0 | 834.0 | 904 | yes | 0.1 | river , timemachines |
merlion_mses | 771.0 | 13 | yes | 184.6 | timemachines |