The initial purpose of the dataset was to forecast the total amount of products sold in every shop for the test set. The test set must be created using the train dataset's last month (October) without the target (item_cnt_day). You need to forecast the sales for the shops and products of the resulting dataset for October 2015. This allows you to compare each method's predicted data with actual data. Note that the list of shops and products slightly changes every month. Creating a robust model to handle such situations is part of the challenge.
While keeping the initial purpose in mind, here I am using daily historical sales data to learn time series forecasting methods. Instead of using the test dataset provided ( which does not contain the target data), I am using the last month of the training dataset as the test/validation data for the model.
-
sales_train.csv - the training set. Daily historical data from January 2013 to October 2015.
-
items.csv - supplemental information about the items/products.
-
item_categories.csv - supplemental information about the items categories.
-
shops.csv- supplemental information about the shops.
- shop_id - unique identifier of a shop
- item_id - unique identifier of a product
- item_category_id - unique identifier of item category
- item_cnt_day - number of products sold. You are predicting a monthly amount of this measure
- item_price - current price of an item
- date - date in format dd/mm/yyyy
- date_block_num - a consecutive month number, used for convenience. January 2013 is 0, February 2013 is 1,..., October 2015 is 33
- item_name - name of item ( In Russian)
- shop_name - name of shop ( In Russian)
- item_category_name - name of item category (In Russian)
- Exploratory Data Analysis
- Feature Engineering
- Post-Feature-Engineering EDA
- Prediction accuracy measurement
- Forecasting
- Moving average
- ARIMA
- SARIMA
- Exponential Smoothing
- Regression
- Python / Pandas / Numpy / matplotlib
- Jupyter-Lab
- sklearn.metrics
- statsmodels
- pmdarima
- https://machinelearningmastery.com/moving-average-smoothing-for-time-series-forecasting-python/
- https://www.kaggle.com/code/carlmcbrideellis/time-series-a-simple-moving-average-ma-model
- https://medium.com/@josemarcialportilla/using-python-and-auto-arima-to-forecast-seasonal-time-series-90877adff03c
- https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/
- https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/
- https://stackoverflow.com/questions/46146537/error-in-threading-sarimax-model
- https://www.tutorialspoint.com/why-do-time-series-have-to-be-stationary-before-analysis
- https://medium.com/analytics-vidhya/interpreting-acf-or-auto-correlation-plot-d12e9051cd14
- https://github.com/fabryandrea/forecasting-intro/blob/main/forecasting-intro.ipynb
- https://machinelearningmastery.com/time-series-data-stationary-python/
- https://barnesanalytics.com/sarima-models-using-statsmodels-in-python/
- https://machinelearningmastery.com/gentle-introduction-autocorrelation-partial-autocorrelation/
- https://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAX.html
- https://www.studocu.com/en-gb/document/loughborough-university/business-forecasting/lecture-8-decomposition-with-arima/18305535
- https://ademos.people.uic.edu/Chapter23.html#5_using_correlograms_and_partial_correlograms_to_determine_our_p_and_q_values
- https://github.com/fabryandrea/forecasting-exp-smoothing/blob/master/timeseries_exp_sm_statsmodels.ipynb
- https://www.dummies.com/article/technology/information-technology/data-science/big-data/autocorrelation-plots-graphical-technique-for-statistical-data-141241/
- https://otexts.com/fpp2/MA.html
- https://www.influxdata.com/blog/autocorrelation-in-time-series-data/
- https://otexts.com/fpp2/moving-averages.html
- https://www.datasciencesmachinelearning.com/2019/01/arimasarima-in-python.html