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 | 2332.0 | 847 | yes | 126.9 | statsmodels , timemachines |
bats_damped_bc | 2225.0 | 19 | yes | 1419.1 | tbats , timemachines |
quick_aggressive_ema_ensemble | 2213.0 | 3482 | yes | 0.2 | timemachines |
tsa_p3_d0_q1 | 2208.0 | 283 | yes | 186.6 | statsmodels , timemachines |
elo_faster_residual_aggressive_ensemble | 2159.0 | 1810 | yes | 5.0 | timemachines |
sk_theta | 2150.0 | 2299 | yes | 0.7 | sktime , timemachines |
tsa_precision_combined_ensemble | 2125.0 | 15 | yes | 14940.8 | statsmodels , timemachines |
orbit_lgt_24 | 2103.0 | 14 | yes | 72.5 | orbit-ml , timemachines |
elo_faster_univariate_aggressive_ensemble | 2061.0 | 1940 | yes | 385.6 | timemachines |
tsa_p1_d0_q1 | 2060.0 | 352 | yes | 427.1 | statsmodels , timemachines |
sk_autoarima | 2049.0 | 152 | yes | 429.1 | sktime , timemachines |
bats_damped | 2020.0 | 31 | yes | 652.2 | tbats , timemachines |
tsa_p1_d0_q0 | 2018.0 | 1351 | yes | 29.0 | statsmodels , timemachines |
balanced_ema_ensemble | 2016.0 | 2029 | yes | 0.1 | timemachines |
bats_trendy_arma_bc | 1984.0 | 28 | yes | 787.7 | tbats , timemachines |
elo_faster_univariate_precision_ensemble | 1984.0 | 1615 | yes | 1.1 | timemachines |
tsa_balanced_theta_ensemble | 1966.0 | 2633 | yes | 3.7 | statsmodels , timemachines |
slow_balanced_ema_ensemble | 1965.0 | 2449 | yes | 0.1 | timemachines |
slow_aggressive_ema_ensemble | 1965.0 | 2695 | yes | 0.1 | timemachines |
quick_precision_ema_ensemble | 1957.0 | 2005 | yes | 0.1 | timemachines |
tsa_balanced_combined_ensemble | 1934.0 | 82 | yes | 1486.2 | statsmodels , timemachines |
elo_faster_univariate_balanced_ensemble | 1924.0 | 1624 | yes | 0.8 | timemachines |
tsa_p2_d0_q0 | 1909.0 | 1068 | yes | 115.3 | statsmodels , timemachines |
bats_damped_arma_bc | 1900.0 | 30 | yes | 736.5 | tbats , timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1898.0 | 2344 | yes | 20.7 | simdkalman , timemachines |
orbit_lgt_12 | 1898.0 | 19 | yes | 30.5 | orbit-ml , timemachines |
tsa_aggressive_theta_ensemble | 1896.0 | 2138 | yes | 9.0 | statsmodels , timemachines |
slow_precision_ema_ensemble | 1876.0 | 1959 | yes | 0.1 | timemachines |
bats_trendy_bc | 1874.0 | 60 | yes | 1260.6 | tbats , timemachines |
divine_univariate_hypocratic_fast | 1870.0 | 238 | yes | -0.1 | divinity , timemachines |
divine_univariate | 1870.0 | 299 | yes | 80.9 | divinity , timemachines |
precision_ema_ensemble | 1864.0 | 2232 | yes | 0.2 | timemachines |
empirical_last_value | 1857.0 | 1622 | yes | 0.0 | timemachines |
bats_trendy_arma | 1849.0 | 23 | yes | 753.7 | tbats , timemachines |
tsa_precision_d0_ensemble | 1847.0 | 67 | yes | 499.3 | statsmodels , timemachines |
bats_damped_arma | 1847.0 | 34 | yes | 614.4 | tbats , timemachines |
bats_arma | 1845.0 | 19 | yes | 1013.6 | tbats , timemachines |
tsa_precision_theta_ensemble | 1843.0 | 2139 | yes | 4.8 | statsmodels , timemachines |
divine_univariate_hypocratic_slow | 1838.0 | 218 | yes | -0.1 | divinity , timemachines |
nprophet_p2 | 1833.0 | 848 | yes | 46.4 | neuralprophet , timemachines |
thinking_fast_and_slow | 1827.0 | 2184 | yes | 0.0 | timemachines |
elo_faster_residual_balanced_ensemble | 1824.0 | 3409 | yes | 12.3 | timemachines |
sk_ae_add | 1810.0 | 2173 | yes | 14.4 | sktime , timemachines |
darts_arima | 1808.0 | 187 | no | 10.8 | darts , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1805.0 | 1903 | yes | 1.5 | timemachines |
elo_fastest_residual_precision_ensemble | 1783.0 | 3041 | yes | 0.7 | timemachines |
elo_fastest_univariate_balanced_ensemble | 1777.0 | 2549 | yes | 1.3 | timemachines |
sk_ae_add_damped | 1776.0 | 1961 | yes | 31.4 | sktime , timemachines |
darts_theta | 1775.0 | 201 | no | 1.2 | darts , timemachines |
darts_autoarima | 1769.0 | 26 | no | 110.2 | darts , timemachines |
tsa_balanced_d0_ensemble | 1755.0 | 54 | yes | 787.2 | statsmodels , timemachines |
bats_trendy | 1749.0 | 53 | yes | 809.5 | tbats , timemachines |
elo_fastest_residual_balanced_ensemble | 1745.0 | 2277 | yes | 1.1 | timemachines |
nprophet_p1 | 1731.0 | 2094 | yes | 50.0 | neuralprophet , timemachines |
bats_fast | 1730.0 | 69 | yes | 0.3 | tbats , timemachines |
elo_fastest_residual_aggressive_ensemble | 1723.0 | 3363 | yes | 0.8 | timemachines |
bats_bc | 1716.0 | 57 | yes | 345.2 | tbats , timemachines |
elo_fastest_univariate_precision_ensemble | 1695.0 | 1996 | yes | 350.4 | timemachines |
tsa_aggressive_combined_ensemble | 1688.0 | 27 | yes | 947.5 | statsmodels , timemachines |
tsa_aggressive_d0_ensemble | 1686.0 | 89 | yes | 307.5 | statsmodels , timemachines |
pycrt_mean_8 | 1680.0 | 1 | yes | 4418.7 | pycaret , timemachines |
merlion_arima | 1657.0 | 40 | yes | 23.2 | timemachines |
elo_faster_residual_precision_ensemble | 1651.0 | 1473 | yes | 3.3 | timemachines |
sk_ae | 1639.0 | 1613 | yes | 11.8 | sktime , timemachines |
nprophet_p8_hypocratic | 1637.0 | 953 | yes | 47.5 | neuralprophet , timemachines |
darts_exp_smoothing | 1629.0 | 254 | no | 10.2 | darts , timemachines |
fbprophet_chaser | 1612.0 | 52 | no | -1.0 | prophet , 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.0 | sktime , timemachines |
sk_ae_mul | 1600 | 0 | no | -1.0 | sktime , timemachines |
rvr_p3_d0_q0 | 1600 | 0 | no | -1.0 | river , timemachines |
rvr_aggressive_ensemble | 1600 | 0 | no | -1.0 | river , timemachines |
darts_nbeats | 1600 | 0 | no | -1.0 | darts , timemachines |
aggressive_ema_ensemble | 1594.0 | 2171 | yes | 0.1 | timemachines |
nprophet_p3_hypocratic | 1588.0 | 974 | yes | 61.6 | neuralprophet , timemachines |
smdk_p5_d0_q3_n500 | 1586.0 | 2737 | yes | 18.0 | simdkalman , timemachines |
darts_four_theta | 1562.0 | 229 | no | 1.0 | darts , timemachines |
thinking_fast_and_fast | 1545.0 | 1833 | yes | 0.0 | timemachines |
quick_balanced_ema_ensemble | 1529.0 | 1968 | yes | 0.1 | timemachines |
pycrt_median_3_full | 1522.0 | 1 | yes | 12096.1 | pycaret , timemachines |
dlm_univariate_b | 1515.0 | 59 | no | -1.0 | pydlm , timemachines |
fbprophet_univariate | 1509.0 | 307 | yes | 78.6 | prophet , timemachines |
pycrt_median_8 | 1507.0 | 2 | yes | 4621.6 | pycaret , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1500.0 | 156 | yes | 444.6 | statsmodels , timemachines |
fbprophet_exogenous_exogenous | 1498.0 | 104 | yes | 311.1 | prophet , timemachines |
nprophet_p8 | 1495.0 | 810 | yes | 46.4 | neuralprophet , timemachines |
nprophet_p2_hypocratic | 1491.0 | 931 | yes | 61.4 | neuralprophet , timemachines |
nprophet_p5_hypocratic | 1488.0 | 844 | yes | 36.4 | neuralprophet , timemachines |
fbprophet_cautious | 1468.0 | 218 | yes | 221.4 | prophet , timemachines |
nprophet_p3 | 1467.0 | 814 | yes | 60.0 | neuralprophet , timemachines |
merlion_prophet | 1466.0 | 30 | yes | 65.5 | timemachines |
nprophet_p1_hypocratic | 1466.0 | 882 | yes | 66.8 | neuralprophet , timemachines |
bats_arma_bc | 1457.0 | 23 | yes | 2242.1 | tbats , timemachines |
pycrt_mean_3 | 1454.0 | 1 | yes | 1783.6 | pycaret , timemachines |
thinking_precision_ensemble | 1448.0 | 142 | yes | 0.1 | timemachines |
quickly_moving_average | 1435.0 | 3137 | yes | 0.0 | timemachines |
dlm_univariate_a | 1406.0 | 78 | no | -1.0 | pydlm , timemachines |
fbprophet_univariate_hypocratic | 1392.0 | 143 | yes | 86.4 | prophet , timemachines |
pycrt_median_3 | 1390.0 | 2 | no | -286.3 | pycaret , timemachines |
smdk_p5_d0_q3_n1000 | 1389.0 | 1232 | yes | 21.7 | simdkalman , timemachines |
tsa_p3_d0_q0 | 1378.0 | 610 | yes | 44.0 | statsmodels , timemachines |
slowly_moving_average | 1375.0 | 2692 | yes | 0.0 | timemachines |
fbprophet_univariate_univariate_hypocratic | 1337.0 | 120 | yes | 250.2 | prophet , timemachines |
fbprophet_known | 1336.0 | 199 | yes | 90.3 | prophet , timemachines |
nprophet_p5 | 1306.0 | 1226 | yes | 37.1 | neuralprophet , timemachines |
fbprophet_cautious_hypocratic | 1282.0 | 132 | yes | 146.9 | prophet , timemachines |
smdk_p5_d0_q3_n500_aggressive | 1281.0 | 1509 | yes | 10.3 | simdkalman , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1280.0 | 110 | yes | 652.5 | statsmodels , timemachines |
fbprophet_exogenous_hypocratic | 1265.0 | 139 | yes | 184.2 | prophet , timemachines |
darts_fft | 1245.0 | 154 | no | 0.7 | darts , timemachines |
thinking_slow_and_slow | 1243.0 | 2154 | yes | 0.0 | timemachines |
darts_prophet | 1205.0 | 48 | yes | 81.7 | darts , timemachines |
rapidly_moving_average | 1180.0 | 2440 | yes | 0.0 | timemachines |
pmd_exogenous_hypocratic | 1159.0 | 1639 | yes | 6.9 | pmdarima , timemachines |
merlion_mses | 1121.0 | 19 | yes | 158.3 | timemachines |
fbprophet_exogenous | 1104.0 | 205 | yes | 166.1 | prophet , timemachines |
rvr_balanced_ensemble | 1092.0 | 1331 | yes | 0.3 | river , timemachines |
suc_quick_aggressive_ema_ensemble | 1078.0 | 174 | no | 1.3 | successor , timemachines |
rvr_p5_d0_q0 | 1054.0 | 1607 | yes | 0.1 | river , timemachines |
rvr_p1_d0_q0 | 1049.0 | 1232 | yes | 0.0 | river , timemachines |
rvr_p2_d0_q0 | 1043.0 | 2842 | yes | 0.0 | river , timemachines |
gk_basic_skater | 1023.0 | 8 | yes | 3563.0 | greykite , timemachines |
fbprophet_recursive | 998.0 | 208 | yes | 127.0 | prophet , timemachines |
thinking_slow_and_fast | 991.0 | 2134 | yes | 0.0 | timemachines |
rvr_p8_d0_q0 | 983.0 | 1055 | yes | 0.1 | river , timemachines |
suc_tsa_p2_d0_q1 | 906.0 | 186 | no | 1.4 | successor , timemachines |
rvr_slowly_hypocratic | 906.0 | 1029 | yes | 0.3 | river , timemachines |
sluggish_moving_average | 879.0 | 3291 | yes | 0.0 | timemachines |
rvr_quickly_hypocratic | 835.0 | 1651 | yes | 0.3 | river , timemachines |
pmd_univariate | 622.0 | 1548 | yes | 7.5 | pmdarima , timemachines |
suc_tsa_aggressive_d0_ensemble | 472.0 | 29 | yes | 1.4 | successor , timemachines |