6.4.3
Εξομάλυνση με κινούμενο μέσο Αν επικαλύψουμε ένα moving average πάνω στα ημερήσια δεδομένα, μειώνουμε το θόρυβο χωρίς να χάνουμε την κύρια τάση. Με το pandas.Series.rolling η εξαγωγή αυτού του μέσου γίνεται υπόθεση μίας γραμμής.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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. Αν υπάρχουν κενά στην ακολουθία, φροντίστε να τα συμπληρώσετε πριν υπολογίσετε τον μέσο ώστε η καμπύλη να παραμείνει ομαλή.