Αν επικαλύψουμε ένα 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()

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