Rollende gemiddelden weergeven
Je kunt ook rollende gemiddelden van de waarden in je tijdreeks visualiseren. Dit komt neer op het "gladstrijken" van je data en is vooral handig als je tijdreeks veel ruis of uitschieters bevat. Voor een gegeven DataFrame df kun je het rollende gemiddelde van de tijdreeks krijgen met het commando:
df_mean = df.rolling(window=12).mean()
De parameter window moet je afstemmen op de granulariteit van je tijdreeks. Als je tijdreeks bijvoorbeeld dagelijkse data bevat en je rollende waarden over een heel jaar wilt, stel je de parameter in op window=365. Daarnaast is het eenvoudig om rollende waarden voor andere metriek te krijgen, zoals de standaarddeviatie (.std()) of variantie (.var()).
Deze oefening maakt deel uit van de cursus
Tijdreeksen visualiseren in Python
Oefeninstructies
- Bereken het rollende gemiddelde over 52 weken van
co2_levelsen sla dit op inma. - Bereken de rollende standaarddeviatie over 52 weken van
co2_levelsen sla dit op inmstd. - Bereken de bovengrens van de tijdreeks, gedefinieerd als het rollende gemiddelde + (2 × de rollende standaarddeviatie), en sla dit op in
ma[upper]. Bereken op dezelfde manier de ondergrens als het rollende gemiddelde − (2 × de rollende standaarddeviatie) en sla dit op inma[lower]. - Plot de lijngrafiek van
ma.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Compute the 52 weeks rolling mean of the co2_levels DataFrame
ma = ____.rolling(window=____).____()
# Compute the 52 weeks rolling standard deviation of the co2_levels DataFrame
mstd = ____
# Add the upper bound column to the ma DataFrame
ma['upper'] = ma['co2'] + (____ * ____)
# Add the lower bound column to the ma DataFrame
ma['lower'] = ma['co2'] - (____ * ____)
# Plot the content of the ma DataFrame
ax = ____(linewidth=0.8, fontsize=6)
# Specify labels, legend, and show the plot
ax.set_xlabel('Date', fontsize=10)
ax.set_ylabel('CO2 levels in Mauai Hawaii', fontsize=10)
ax.set_title('Rolling mean and variance of CO2 levels\nin Mauai Hawaii from 1958 to 2001', fontsize=10)
plt.show()