Seasonality and trends

Analyzing IoT Data in Python

Matthias Voppichler

IT Developer

Time series components

  • Trend
  • Seasonal
  • Residual / Noise
series[t] = trend[t] + seasonal[t] + residual[t]
20.2 = 14.9 + 4.39 + 0.91
Analyzing IoT Data in Python

Seasonal decompose

import statsmodels.api as sm
# Run seasonal decompose
decomp = sm.tsa.seasonal_decompose(data["temperature"])
print(decomp.seasonal.head())

decomp.plot()
timestamp
2018-10-01 00:00:00   -3.670394
2018-10-01 01:00:00   -3.987451
2018-10-01 02:00:00   -4.372217
2018-10-01 03:00:00   -4.534066
2018-10-01 04:00:00   -4.802165
Freq: H, Name: temperature, dtype: float64
Analyzing IoT Data in Python

Seasonal decompose

Seasonal decomposition plot

Analyzing IoT Data in Python

Combined plot

# Plot the timeseries
plt.plot(data["temperature"], label="temperature")

decomp = sm.tsa.seasonal_decompose(data["temperature"]) # Plot trend and seasonality plt.plot(decomp.trend, label="trend") plt.plot(decomp.seasonal, label="seasonal") plt.show()
Analyzing IoT Data in Python

Combined plot

Seasonal Decomposition - combined plot

Analyzing IoT Data in Python

Let's practice!

Analyzing IoT Data in Python

Preparing Video For Download...