Εξομάλυνση με κινούμενο μέσο

Visualize

Εξομάλυνση με κινούμενο μέσο

Created: Last updated: Read time: 1 min

Αν επικαλύψουμε ένα moving average πάνω στα ημερήσια δεδομένα, μειώνουμε το θόρυβο χωρίς να χάνουμε την κύρια τάση. Με το pandas.Series.rolling η εξαγωγή αυτού του μέσου γίνεται υπόθεση μίας γραμμής.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = pd.date_range("2024-01-01", periods=60, freq="D")
sales = pd.Series(np.random.normal(loc=200, scale=25, size=len(rng))).cumsum() + 500
rolling = sales.rolling(window=7, center=True).mean()

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(rng, sales, label="Ημερήσιες πωλήσεις", color="#9ca3af", linewidth=1.5, alpha=0.7)
ax.plot(rng, rolling, label="Κινούμενος μέσος 7 ημερών", color="#2563eb", linewidth=2.5)

ax.set_ylabel("Πωλήσεις (χιλ. γιεν)")
ax.set_title("Παρακολούθηση τάσης με κινούμενο μέσο")
ax.legend()
ax.grid(alpha=0.3)

fig.tight_layout()

plt.show()

Το rolling mean του pandas εξομαλύνει τις ημερήσιες διακυμάνσεις και αναδεικνύει την τάση

Συμβουλές ανάγνωσης #

  • Ρυθμίστε το παράθυρο σύμφωνα με τον στόχο: εβδομάδα, μήνας ή άλλο χρονικό βήμα.
  • Κρατήστε και τη βασική σειρά για να μη χαθούν εποχικότητες ή απότομα spikes.
  • Αν υπάρχουν κενά στην ακολουθία, φροντίστε να τα συμπληρώσετε πριν υπολογίσετε τον μέσο ώστε η καμπύλη να παραμείνει ομαλή.