/Time-Series

Awesome list and projects of Time Series

Primary LanguageJupyter NotebookMIT LicenseMIT

🎓 University Courses

Title Description
MIT 18.S096 Topics in Mathematics w Applications in Finance

    The purpose of the class is to expose undergraduate and graduate students to the mathematical concepts and techniques used in the financial industry. Mathematics lectures are mixed with lectures illustrating the corresponding application in the financial industry. MIT mathematicians teach the mathematics part while industry professionals give the lectures on applications in finance.

  • Video lectures

Courses

📚 Books

YouTube

Blogs

Articles

Small Time Series Dataset

Topic specific

Models, Algorithms

Title Description, key points, related links
MEAN

Tools

Frameworks

Title Description
Kats by Facebook Kats is a toolkit to analyze time series data, a lightweight, easy-to-use, and generalizable framework to perform time series analysis. Time series analysis is an essential component of Data Science and Engineering work at industry, from understanding the key statistics and characteristics, detecting regressions and anomalies, to forecasting future trends. Kats aims to provide the one-stop shop for time series analysis, including detection, forecasting, feature extraction/embedding, multivariate analysis, etc. Kats is released by Facebook's Infrastructure Data Science team. It is available for download on PyPI.
Prophet by Facebook

    Prophet is a forecasting procedure implemented in R and Python. It is Generalized additive model (GAM) with three main components: non-linear trends are fit with seasonality and holidays.

    It is fast and provides completely automated forecasts that can be tuned by hand by data scientists and analysts.

    gt is the piecewise linear or logistic growth curve to model the non-periodic changes in the time series, st is the seasonality term, ht is the holiday effect with irregular schedules, and εt is the error term.

    On a high level, Prophet is framing the forecasting problem as a curve-fitting exercise rather than looking explicitly at the time based dependence of each observation within a time series.

    As a computational tool/software, moreover, Prophet allows users to manually supply change points in fitting the trend term and set the boundaries for saturation growth, which gives great flexibility in business applications.

    Prophet is open source software released by Facebook’s Core Data Science team. It is available for download on CRAN and PyPI.

Orbit by Uber Orbit (Object-ORiented BayesIan Time Series) is a general interface for Bayesian exponential smoothing model. The goal of Orbit development team is to create a tool that is easy to use, flexible, interitible, and high performing (fast computation). Under the hood, Orbit uses the probabilistic programming languages (PPL) including but not limited to Stan and Pyro for posterior approximation (i.e, MCMC sampling, SVI). Below is a quadrant chart to position a few time series related packages in our assessment in terms of flexibility and completeness. Orbit is the only tool that allows for easy model specification and analysis while not limiting itself to a small subset of models. For example Prophet has a complete end to end solution but only has one model type and Pyro has total specification model flexibility but does not give an end to end solution. Thus Orbit bridges the gap between business problems and statistical solutions.
Greykite by LinkedIn

    The Greykite library provides flexible, intuitive and fast forecasts through its flagship algorithm, Silverkite.

    Silverkite algorithm works well on most time series, and is especially adept for those with changepoints in trend or seasonality, event/holiday effects, and temporal dependencies. Its forecasts are interpretable and therefore useful for trusted decision-making and insights.

    The Greykite library provides a framework that makes it easy to develop a good forecast model, with exploratory data analysis, outlier/anomaly preprocessing, feature extraction and engineering, grid search, evaluation, benchmarking, and plotting. Other open source algorithms can be supported through Greykite’s interface to take advantage of this framework.

  • :octocat: Greykite
  • Getting Started
  • A flexible forecasting model for production systems Paper
  • Greykite: A flexible, intuitive, and fast forecasting library
statsmodels statsmodels is a Python module that provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration. An extensive list of result statistics are available for each estimator. The results are tested against existing statistical packages to ensure that they are correct. The package is released under the open source Modified BSD (3-clause) license. The online documentation is hosted at statsmodels.org.
Merlion Merlion is a Python library for time series intelligence. It features a unified interface for many commonly used models and datasets for anomaly detection and forecasting on both univariate and multivariate time series, along with standard pre-processing and post-processing layers. It has several modules to improve ease-of-use, including visualization, anomaly score calibration to improve interpetability, AutoML for hyperparameter tuning and model selection, and model ensembling. Merlion also provides a unique evaluation framework that simulates the live deployment and re-training of a model in production. This library aims to provide engineers and researchers a one-stop solution to rapidly develop models for their specific time series needs, and benchmark them across multiple time series datasets.
Auto_TS: Auto_TimeSeries Automatically build ARIMA, SARIMAX, VAR, FB Prophet and XGBoost Models on Time Series data sets with a Single Line of Code. Now updated with Dask to handle millions of rows.
TensorFlow Probability TensorFlow Probability (TFP) is a Python library built on TensorFlow that makes it easy to combine probabilistic models and deep learning on modern hardware (TPU, GPU). It's for data scientists, statisticians, ML researchers, and practitioners who want to encode domain knowledge to understand data and make predictions.
Pyro

    Deep Universal Probabilistic Programming.

  • :octocat: Pyro
ArviZ: Exploratory analysis of Bayesian models ArviZ is a Python package for exploratory analysis of Bayesian models. Includes functions for posterior analysis, data storage, sample diagnostics, model checking, and comparison.
PyStan PyStan is a Python interface to Stan, a package for Bayesian inference.
StatsForecast
  • StatsForecast offers a collection of widely used univariate time series forecasting models, including automatic ARIMA and ETS modeling optimized for high performance using numba. It also includes a large battery of benchmarking models.
  • Fast Time Series Forecasting with StatsForecast
Transformers

GitHub Repositories :octocat:

Title Description
awesome_time_series_in_python This curated list contains python packages for time series analysis

Podcasts 🎧

Title Description
Data Skeptic Episode - Forecasting Principles and Practice
Seriously Social Episode - Forecasting the future: the science of prediction
The Curious Quant Episode - Forecasting COVID, time series, and why causality doesnt matter as much as you think‪
Forecasting Impact
The Random Sample Episode - Forecasting the future & the future of forecasting
Thought Capital Episode - Forecasts are always wrong (but we need them anyway)