Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Bereken het rollende gemiddelde over 52 weken van co2_levels en sla dit op in ma.
  • Bereken de rollende standaarddeviatie over 52 weken van co2_levels en sla dit op in mstd.
  • 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 in ma[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()
Code bewerken en uitvoeren