- Practical Time Series Analysis
- Dr. Avishek Pal Dr. PKS Prakash
- 308字
- 2021-07-08 10:18:26
Seasonal sub series plot
For a known periodicity of seasonal variations, seasonal sub series redraws the original series over batches of successive time periods. For example, the periodicity in the CO2 concentrations is 12 months and based on this a seasonal sub series plots on mean and standard deviation of the residuals are shown in the following figure. To visualize seasonality in the residuals, we create quarterly mean and standard deviations.
A seasonal sub series reveals two properties:
- Variations within seasons as within a batch of successive months
- Variations between seasons as between batches of successive months


Let us now describe the code used for generating the preceding plots. First, we need to add the residuals and quarter labels to the CO2 concentrations DataFrame. This is done as follows:
data['Residuals'] = residuals month_quarter_map = {1: 'Q1', 2: 'Q1', 3: 'Q1', 4: 'Q2', 5: 'Q2', 6: 'Q2', 7: 'Q3', 8: 'Q3', 9: 'Q3', 10: 'Q4', 11: 'Q4', 12: 'Q4' } data['Quarter'] = data['Month'].map(lambda m: month_quarter_map.get(m))
Next, the seasonal mean and standard deviations are computed by grouping by the data over Year and Quarter:
seasonal_sub_series_data = data.groupby(by=['Year', 'Quarter'])['Residuals']\ .aggregate([np.mean, np.std])
This creates the new DataFrame as seasonal_sub_series_data, which has quarterly mean and standard deviations over the years. These columns are renamed as follows:
seasonal_sub_series_data.columns = ['Quarterly Mean', 'Quarterly Standard Deviation']
Next, the quarterly mean and standard deviations are plotted by running the following lines of code:
#plot quarterly mean of residuals
plt.figure(figsize=(5.5, 5.5))
seasonal_sub_series_data['Quarterly Mean'].plot(color='b')
plt.title('Quarterly Mean of Residuals')
plt.xlabel('Time')
plt.ylabel('CO2 concentratition')
plt.xticks(rotation=30)
#plot quarterly standard deviation of residuals
plt.figure(figsize=(5.5, 5.5))
seasonal_sub_series_data['Quarterly Standard Deviation'].plot(color='b')
plt.title('Quarterly Standard Deviation of Residuals')
plt.xlabel('Time')
plt.ylabel('CO2 concentratition')
plt.xticks(rotation=30)
- Android應用程序開發與典型案例
- Blender 3D Incredible Machines
- JSP開發案例教程
- Android開發:從0到1 (清華開發者書庫)
- C#應用程序設計教程
- 動手學數據結構與算法
- D3.js By Example
- Android Development Tools for Eclipse
- Python+Office:輕松實現Python辦公自動化
- Mastering OAuth 2.0
- SQL Server on Linux
- 用Python動手學統計學
- Building Web and Mobile ArcGIS Server Applications with JavaScript(Second Edition)
- 面向物聯網的Android應用開發與實踐
- Cocos2D Game Development Essentials