section-engineering-education / engineering-education

“Section's Engineering Education (EngEd) Program is dedicated to offering a unique quality community experience for computer science university students."
Apache License 2.0
363 stars 890 forks source link

[Machine Learning] Univariate time series analysis and forecasting with ARIMA and Seasonal ARIMA in Python #6977

Closed josephgatura328 closed 2 years ago

josephgatura328 commented 2 years ago

Proposal Submission

Proposed title of article

[Machine Learning] Univariate time series analysis and forecasting with ARIMA and Seasonal ARIMA in Python

Proposed article introduction

A time series is a sequence of data points that occur in successive order over some period of time. A time series allows one to see what factors influence certain variables from period to period. Examples of time series data are weather records, economic indicators, and patient health evolution metrics. Time series forecasting is the process of analyzing time series data using statistics and modeling to make predictions and inform strategic decision-making. Time series analysis involves developing models to gain an understanding of the data to understand the underlying causes.

In time series, we have univariate, bivariate, and multivariate modeling. Univariate statistics summarize only one variable at a time, bivariate statistics compare two variables and multivariate statistics compare more than two variables. In this tutorial, we will be focusing on univariate time series modeling.

ARIMA is an acronym that stands for AutoRegressive Integrated Moving Average. It is an effective machine learning algorithm to performing time series forecasting. This is the combination of Auto Regression and Moving average. It is based on the assumption that previous values carry inherent information and can be used to predict future values. Seasonal Autoregressive Integrated Moving Average, SARIMA or Seasonal ARIMA, is an extension of ARIMA that explicitly supports univariate time series data with a seasonal component.

Differencing is a method of transforming a non-stationary time series into a stationary one. This is an important step in preparing data to be used in an ARIMA model. Differencing can help stabilize the mean of the time series by removing changes in the level of a time series, and so eliminating (or reducing) trend and seasonality.

Key takeaways

  1. Visualize the Time Series Data
  2. Make the time series data stationary
  3. Plot the Correlation and AutoCorrelation Charts for differencing. 4 .Construct the ARIMA Model or Seasonal ARIMA based on the data
  4. Use the model to make predictions

Article quality

This tutorial is unique because we will be able to differentiate univariate, bivarite and multivariate time series. We will also discuss stationarity and non-stationarity time series. ARIMA requires a stationary time series, the tutorial will explain how to convert an non-stationary time series into a stationary time series. We will use differencing method. Differencing is a method of transforming a non-stationary time series into a stationary one. This is an important step in preparing data to be used in an ARIMA model. The first differencing value is the difference between the current time period and the previous time period. Finally, we will build a custom sales prediction time series model.

References

Please list links to any published content/research that you intend to use to support/guide this article.

Conclusion

Finally, remove the Pre-Submission advice section and all our blockquoted notes as you fill in the form before you submit. We look forwarding to reviewing your topic suggestion.

Templates to use as guides

github-actions[bot] commented 2 years ago

👋 @josephgatura328 Good afternoon and thank you for submitting your topic suggestion. Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

ahmadmardeni1 commented 2 years ago

Sounds like a helpful topic - let's please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it).

Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting it for final approval. (There are some great free tools that we reference in EngEd resources.) ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.

Please be sure to double-check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved @josephgatura328