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 | 2223.0 | 745 | yes | 58.2 | statsmodels , timemachines |
tsa_precision_theta_ensemble | 2103.0 | 1935 | yes | 2.8 | statsmodels , timemachines |
bats_trendy_arma_bc | 2085.0 | 33 | yes | 1345.4 | tbats , timemachines |
elo_faster_univariate_balanced_ensemble | 2059.0 | 1540 | yes | 1.0 | timemachines |
tsa_aggressive_combined_ensemble | 2040.0 | 101 | yes | 397.6 | statsmodels , timemachines |
orbit_lgt_12 | 2022.0 | 4 | yes | 0.0 | orbit-ml , timemachines |
quick_precision_ema_ensemble | 2020.0 | 2221 | yes | 0.2 | timemachines |
elo_faster_residual_balanced_ensemble | 2014.0 | 2021 | yes | 4.7 | timemachines |
tsa_p3_d0_q1 | 2009.0 | 220 | yes | 83.4 | statsmodels , timemachines |
slow_precision_ema_ensemble | 1992.0 | 2059 | yes | 0.1 | timemachines |
elo_faster_univariate_precision_ensemble | 1991.0 | 1901 | yes | 374.5 | timemachines |
precision_ema_ensemble | 1967.0 | 3028 | yes | 0.1 | timemachines |
tsa_precision_d0_ensemble | 1966.0 | 111 | yes | 196.4 | statsmodels , timemachines |
tsa_aggressive_d0_ensemble | 1958.0 | 70 | yes | 230.7 | statsmodels , timemachines |
elo_faster_univariate_aggressive_ensemble | 1943.0 | 2018 | yes | 321.4 | timemachines |
bats_damped_arma_bc | 1942.0 | 30 | yes | 1032.2 | tbats , timemachines |
quick_aggressive_ema_ensemble | 1939.0 | 4667 | yes | 0.2 | timemachines |
sk_autoarima | 1935.0 | 177 | yes | 246.1 | sktime , timemachines |
bats_trendy_bc | 1930.0 | 49 | yes | 372.8 | tbats , timemachines |
tsa_balanced_d0_ensemble | 1930.0 | 70 | yes | 1038.4 | statsmodels , timemachines |
merlion_arima | 1913.0 | 54 | yes | 33.6 | timemachines |
tsa_aggressive_theta_ensemble | 1910.0 | 2911 | yes | 3.4 | statsmodels , timemachines |
elo_fastest_univariate_balanced_ensemble | 1905.0 | 2319 | yes | 1.1 | timemachines |
aggressive_ema_ensemble | 1905.0 | 2389 | yes | 0.1 | timemachines |
bats_damped_arma | 1900.0 | 18 | yes | 732.7 | tbats , timemachines |
bats_damped | 1896.0 | 19 | yes | 1050.7 | tbats , timemachines |
bats_arma_bc | 1895.0 | 32 | yes | 2632.1 | tbats , timemachines |
orbit_lgt_24 | 1884.0 | 7 | yes | 0.0 | orbit-ml , timemachines |
tsa_p3_d0_q0 | 1862.0 | 1185 | yes | 61.0 | statsmodels , timemachines |
bats_trendy_arma | 1861.0 | 25 | yes | 546.9 | tbats , timemachines |
tsa_p1_d0_q1 | 1845.0 | 601 | yes | 71.1 | statsmodels , timemachines |
elo_fastest_univariate_precision_ensemble | 1834.0 | 3491 | yes | 421.1 | timemachines |
sk_theta | 1829.0 | 2055 | yes | 0.7 | sktime , timemachines |
divine_univariate_hypocratic_fast | 1826.0 | 133 | yes | -0.1 | divinity , timemachines |
balanced_ema_ensemble | 1823.0 | 2717 | yes | 0.1 | timemachines |
tsa_p1_d0_q0 | 1820.0 | 1199 | yes | 22.6 | statsmodels , timemachines |
slow_aggressive_ema_ensemble | 1817.0 | 1832 | yes | 0.1 | timemachines |
elo_fastest_residual_aggressive_ensemble | 1816.0 | 1766 | yes | 1.1 | timemachines |
nprophet_p8 | 1810.0 | 848 | yes | 45.5 | neuralprophet , timemachines |
quickly_moving_average | 1794.0 | 1995 | yes | 0.0 | timemachines |
elo_fastest_residual_balanced_ensemble | 1785.0 | 2306 | yes | 0.7 | timemachines |
bats_arma | 1775.0 | 32 | yes | 597.0 | tbats , timemachines |
tsa_precision_combined_ensemble | 1764.0 | 54 | yes | 699.6 | statsmodels , timemachines |
divine_univariate_hypocratic_slow | 1751.0 | 154 | yes | -0.1 | divinity , timemachines |
darts_four_theta | 1738.0 | 255 | no | 1.3 | darts , timemachines |
bats_bc | 1731.0 | 57 | yes | 200.1 | tbats , timemachines |
elo_fastest_univariate_aggressive_ensemble | 1728.0 | 2139 | yes | 307.7 | timemachines |
thinking_fast_and_fast | 1718.0 | 2256 | yes | 0.0 | timemachines |
bats_trendy | 1712.0 | 61 | yes | 409.7 | tbats , timemachines |
darts_theta | 1702.0 | 187 | no | 1.2 | darts , timemachines |
divine_univariate | 1690.0 | 184 | yes | -0.1 | divinity , timemachines |
elo_faster_residual_aggressive_ensemble | 1672.0 | 1672 | yes | 4.7 | timemachines |
tsa_p2_d0_q0 | 1667.0 | 752 | yes | 84.1 | statsmodels , timemachines |
bats_damped_bc | 1663.0 | 48 | yes | 660.6 | tbats , timemachines |
darts_arima | 1661.0 | 167 | no | 17.8 | darts , timemachines |
darts_autoarima | 1660.0 | 32 | no | 102.4 | darts , timemachines |
rvr_quickly_hypocratic | 1651.0 | 1363 | yes | 0.3 | river , timemachines |
elo_fastest_residual_precision_ensemble | 1644.0 | 2534 | yes | 0.7 | timemachines |
smdk_p5_d0_q3_n1000_aggressive | 1638.0 | 1815 | yes | 20.6 | simdkalman , timemachines |
tsa_balanced_theta_ensemble | 1627.0 | 2109 | yes | 4.2 | statsmodels , timemachines |
darts_exp_smoothing | 1624.0 | 411 | no | 9.8 | darts , timemachines |
nprophet_p3 | 1622.0 | 899 | yes | 60.9 | neuralprophet , timemachines |
bats_fast | 1617.0 | 54 | yes | 886.7 | tbats , timemachines |
slow_balanced_ema_ensemble | 1612.0 | 2735 | yes | 0.2 | timemachines |
fbprophet_cautious_hypocratic | 1601.0 | 88 | yes | 156.9 | 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 | -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 |
smdk_p5_d0_q3_n500_aggressive | 1577.0 | 1515 | yes | 19.1 | simdkalman , timemachines |
sk_ae | 1576.0 | 2396 | yes | 10.6 | sktime , timemachines |
fbprophet_known | 1575.0 | 54 | yes | 83.5 | prophet , timemachines |
nprophet_p8_hypocratic | 1555.0 | 737 | yes | 35.4 | neuralprophet , timemachines |
thinking_precision_ensemble | 1550.0 | 102 | yes | 0.1 | timemachines |
smdk_p5_d0_q3_n1000 | 1546.0 | 1268 | yes | 29.4 | simdkalman , timemachines |
nprophet_p1 | 1545.0 | 2124 | yes | 29.7 | neuralprophet , timemachines |
pycrt_mean_8 | 1534.0 | 4 | no | 3779.9 | pycaret , timemachines |
elo_faster_residual_precision_ensemble | 1532.0 | 2054 | yes | 6.4 | timemachines |
rapidly_moving_average | 1522.0 | 2534 | yes | 0.0 | timemachines |
sk_ae_add_damped | 1517.0 | 2496 | yes | 8.5 | sktime , timemachines |
sluggish_moving_average | 1516.0 | 2219 | yes | 0.0 | timemachines |
smdk_p5_d0_q3_n500 | 1515.0 | 1850 | yes | 14.4 | simdkalman , timemachines |
pycrt_median_8 | 1513.0 | 1 | no | 4072.9 | pycaret , timemachines |
merlion_prophet | 1509.0 | 34 | yes | 39.2 | timemachines |
nprophet_p2_hypocratic | 1506.0 | 849 | yes | 35.6 | neuralprophet , timemachines |
darts_fft | 1504.0 | 161 | no | 0.7 | darts , timemachines |
tsa_quickly_hypocratic_d0_ensemble | 1493.0 | 145 | yes | 468.3 | statsmodels , timemachines |
tsa_slowly_hypocratic_d0_ensemble | 1492.0 | 149 | yes | 349.4 | statsmodels , timemachines |
quick_balanced_ema_ensemble | 1479.0 | 1964 | yes | 0.2 | timemachines |
pycrt_median_3_full | 1476.0 | 3 | yes | 5176.8 | pycaret , timemachines |
sk_ae_add | 1474.0 | 2940 | yes | 13.3 | sktime , timemachines |
nprophet_p5_hypocratic | 1470.0 | 1325 | yes | 62.3 | neuralprophet , timemachines |
tsa_balanced_combined_ensemble | 1443.0 | 86 | yes | 532.5 | statsmodels , timemachines |
nprophet_p2 | 1438.0 | 999 | yes | 46.5 | neuralprophet , timemachines |
fbprophet_univariate_hypocratic | 1437.0 | 65 | yes | 94.2 | prophet , timemachines |
gk_basic_skater | 1434.0 | 4 | no | 1531.4 | greykite , timemachines |
thinking_slow_and_slow | 1416.0 | 1901 | yes | 0.0 | timemachines |
pycrt_mean_3 | 1415.0 | 7 | no | 4246.7 | pycaret , timemachines |
nprophet_p5 | 1404.0 | 942 | yes | 35.3 | neuralprophet , timemachines |
thinking_slow_and_fast | 1380.0 | 2125 | yes | 0.0 | timemachines |
pmd_univariate | 1370.0 | 1312 | yes | 9.5 | pmdarima , timemachines |
pycrt_median_3 | 1369.0 | 2 | yes | 3692.0 | pycaret , timemachines |
fbprophet_exogenous_hypocratic | 1349.0 | 104 | yes | 130.0 | prophet , timemachines |
darts_prophet | 1338.0 | 38 | no | 76.9 | darts , timemachines |
fbprophet_exogenous | 1327.0 | 132 | yes | 126.3 | prophet , timemachines |
fbprophet_univariate | 1320.0 | 173 | yes | 160.2 | prophet , timemachines |
suc_tsa_p2_d0_q1 | 1307.0 | 173 | no | 1.2 | successor , timemachines |
thinking_fast_and_slow | 1300.0 | 2055 | yes | 0.0 | timemachines |
fbprophet_univariate_univariate_hypocratic | 1293.0 | 83 | yes | 241.0 | prophet , timemachines |
empirical_last_value | 1259.0 | 1533 | yes | 0.0 | timemachines |
nprophet_p1_hypocratic | 1253.0 | 885 | yes | 34.7 | neuralprophet , timemachines |
rvr_balanced_ensemble | 1240.0 | 1339 | yes | 0.4 | river , timemachines |
fbprophet_cautious | 1193.0 | 75 | yes | 122.5 | prophet , timemachines |
slowly_moving_average | 1192.0 | 2645 | yes | 0.0 | timemachines |
pmd_exogenous_hypocratic | 1183.0 | 1551 | yes | 3.8 | pmdarima , timemachines |
suc_quick_aggressive_ema_ensemble | 1131.0 | 164 | no | 1.3 | successor , timemachines |
fbprophet_recursive | 1131.0 | 71 | yes | 250.4 | prophet , timemachines |
rvr_slowly_hypocratic | 1116.0 | 1027 | yes | 0.3 | river , timemachines |
merlion_mses | 1098.0 | 10 | yes | 128.9 | timemachines |
fbprophet_exogenous_exogenous | 1096.0 | 66 | yes | 237.8 | prophet , timemachines |
suc_tsa_aggressive_d0_ensemble | 998.0 | 16 | yes | 1.3 | successor , timemachines |
rvr_p2_d0_q0 | 920.0 | 1299 | yes | 0.0 | river , timemachines |
rvr_p1_d0_q0 | 876.0 | 1651 | yes | 0.1 | river , timemachines |
nprophet_p3_hypocratic | 828.0 | 832 | yes | 35.3 | neuralprophet , timemachines |
rvr_p5_d0_q0 | 685.0 | 1011 | yes | 0.1 | river , timemachines |
rvr_p8_d0_q0 | 505.0 | 1059 | yes | 0.1 | river , timemachines |