Zobrazení klouzavých průměrů
Časové řady lze vizualizovat i pomocí klouzavých průměrů. Jde o takzvané „vyhlazení" dat, které se hodí zejména tehdy, když časová řada obsahuje hodně šumu nebo odlehlých hodnot. Pro daný DataFrame df získáš klouzavý průměr časové řady tímto příkazem:
df_mean = df.rolling(window=12).mean()
Parametr window nastav podle granularity své časové řady. Například pokud pracuješ s denními daty a chceš klouzavé hodnoty za celý rok, zadej window=365. Klouzavé hodnoty lze snadno počítat i pro jiné metriky, například pro směrodatnou odchylku (.std()) nebo rozptyl (.var()).
Toto cvičení je součástí kurzu
Vizualizace dat časových řad v Pythonu
Pokyny k cvičení
- Vypočítej 52týdenní klouzavý průměr proměnné
co2_levelsa výsledek ulož doma. - Vypočítej 52týdenní klouzavou směrodatnou odchylku proměnné
co2_levelsa výsledek ulož domstd. - Spočítej horní hranici časové řady jako klouzavý průměr + (2 × klouzavá směrodatná odchylka) a výsledek ulož do
ma[upper]. Obdobně spočítej dolní hranici jako klouzavý průměr − (2 × klouzavá směrodatná odchylka) a ulož ji doma[lower]. - Vykresli spojnicový graf proměnné
ma.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()