An Introduction to Time Series Forecasting with Python

By Andrii Gakhov

Elevator Pitch

Time series is an important instrument to model, analyze and predict data collected over time. In this talk, we learn the basic theoretical concepts without going deep into mathematical aspects, study different models, and try them in practice using StatsModels, Prophet, scikit-learn, and keras.

Description

Nowadays, it is hard to find a company that doesn’t collect various time-dependent data in different forms, for instance, it can be a daily number of visitors and monthly sales for online stores, available resources and stock for factories, number of food poisoning cases for hospitals, and so on. And the reason why all that data is carefully collected, because it can provide meaningful insides not only about the past but can be used to predict and prepare for the future.

In this presentation, we discuss how to analyze and forecast those data, that is called time series. Many people already did that many times while trying to predict the weather on the weekend, guessing the currency exchange rate for tomorrow, or just by expecting great discounts on Christmas sales. Of course, some patterns are truly obvious, like weekly or monthly changes, and overall tendency, others are not. However, all these aspects can be formalized and learned automatically using the power of mathematics and computer science.

The first part is dedicated to the theoretical introduction of time series, where listeners can learn or refresh in memory the essential aspects of time series’ representations, modeling, and forecasting. In the second part, we dive into the most popular time series forecast models - stochastic models (e.g., Autoregressive integrated moving average (ARIMA)), artificial neural networks (e.g., seasonal recurrent neural network) and Support Vector Machines (SVR). Along the way, we show at practice how these models can be applied to a real-world dataset of UK visits by providing examples using such popular Python libraries as StatsModels, Prophet, scikit-learn, and keras.

With these guidelines in mind, you should be better equipped to deal with time series in your everyday work and opt-in for the right tools to analyze them.

To follow the talk it’s not required any prior knowledge of time series analysis, but the basic understanding of mathematics and machine learning approaches could be quite helpful.

Notes

The interest to time series analysis in Python community has been raised again since Facebook released its Python package called Prophet. Nowadays, it’s the most easy-to-use tool; however, it’s by far not the best one if you want to get a better analysis. In this talk, I go through the foundations of the time series analysis and forecasting, describe different approaches and Python tools that can be used for time series forecasting.

Theoretically, on request, this talk can be converted into a workshop or a tutorial for 1.5h where with listeners we can go through different models and tools in Jupyter Notebook if there are interest and possibilities.

Email: andrii.gakhov@gmail.com