θα προχωρήσουμε σε αποσύνθεση της χρονοσειράς dataset_1:
import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import acf
from statsmodels.stats.diagnostic import acorr_ljungbox
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.seasonal import STL
dataset_1 = np.array([0.11, 0.13, 0.07, 0.02, 0.06, 0.11, 0.1, 0.06, 0.23, 0.04,0.05, 0.2, 0.1, 0.07, 0.13, 0.09, 0.01, 0.03, 0.02, 0.01, 0.01, 0.03, 0.05, 0.1,0.04, 0.05, 0.01, 0.11, 0.15, 0.01, 0.01, 0.02, 0.06, 0.07, 0.04, 0.03, 0.05,0.04, 0.03, 0.04, 0.04, 0.12, 0.06, 0.04, 0.19, 0.27, 0.13, 0.01, 0.02, 0.05,0.02, 0.06, 0.06, 0.06, 0.03, 0.08, 0.23, 0.13, 0.13, 0.08, 0.03, 0.01, 0.1,0.01, 0.03, 0.03, 0.02, 0.08, 0.09, 0.03, 0.11, 0.05, 0.13, 0.07, 0.07, 0.04,0.18])
df = pd.DataFrame(dataset_1, columns=['Values'])
result = seasonal_decompose(df['Values'], model='additive', period=24)
print("\n additive Observed:")
print(result.observed.head(5))
print("\n additive Trend:")
print(result.trend.dropna().head(5))
print("\n additive Seasonal:")
print(result.seasonal.head(5))
print("\n additive Residual:")
print(result.resid.dropna().head(5))
df = pd.DataFrame(dataset_1, columns=['Values'])
stl = STL(df['Values'], period=24)
result = stl.fit()
observed_head = result.observed.head(5)
trend_head = result.trend.head(5)
seasonal_head = result.seasonal.head(5)
resid_head = result.resid.head(5)
print("\nSTL Observed:")
print(observed_head)
print("\n STL Trend:")
print(trend_head)
print("\n STL Seasonal:")
print(seasonal_head)
print("\n STL Residual:")
print(resid_head)Κλασική Αποσύνθεση
Χρησιμοποιήσαμε την κλασική μέθοδο αποσύνθεσης με βάση τη μετακίνηση μέσων για να διαχωρίσουμε τη χρονοσειρά στα παρακάτω στοιχεία:
- Observed: Οι αρχικές τιμές της χρονοσειράς.
- Trend: Η τάση δείχνει τη γενική κατεύθυνση των δεδομένων.
- Seasonal: Η εποχικότητα δείχνει τα επαναλαμβανόμενα μοτίβα.
- Residual: Το υπόλοιπο δείχνει τις αποκλίσεις από την τάση και την εποχικότητα.
STL Αποσύνθεση
Η STL (Seasonal-Trend Decomposition using LOESS) αποσύνθεση χρησιμοποιεί πιο προσαρμοστικές τεχνικές για να διαχωρίσει τα δεδομένα στα παρακάτω στοιχεία:
- Observed: Οι αρχικές τιμές της χρονοσειράς.
- Trend: Η τάση δείχνει τη γενική κατεύθυνση των δεδομένων με χρήση LOESS.
- Seasonal: Η εποχικότητα δείχνει τα επαναλαμβανόμενα μοτίβα κάθε 24 περιόδους.
- Residual: Το υπόλοιπο δείχνει τις αποκλίσεις από την τάση και την εποχικότητα.
Παρατηρήσεις
Τάση (Trend):Στην κλασική αποσύνθεση, η τάση είναι πιο ευθεία και λιγότερο προσαρμοστική στις μικρές αλλαγές.Στην STL αποσύνθεση, η τάση είναι πιο ομαλή και ακολουθεί καλύτερα τις αλλαγές στη χρονοσειρά.
Εποχικότητα (Seasonal):Και στις δύο αποσυνθέσεις, η εποχικότητα δείχνει επαναλαμβανόμενα μοτίβα.Η STL αποσύνθεση μπορεί να ανιχνεύσει πιο σύνθετα εποχικά μοτίβα λόγω της χρήσης της LOESS για την προσαρμογή.
Υπόλοιπο (Residual):Στην κλασική αποσύνθεση, το υπόλοιπο δείχνει μεγαλύτερη διασπορά και έντονες διακυμάνσεις.Στην STL αποσύνθεση, το υπόλοιπο είναι πιο εξομαλυσμένο και οι ακραίες τιμές είναι λιγότερο έντονες.
Πλεονεκτήματα της STL:Η STL αποσύνθεση είναι πιο προσαρμοστική και μπορεί να ανιχνεύσει μη γραμμικές τάσεις και πολύπλοκα εποχικά μοτίβα.Είναι πιο κατάλληλη για δεδομένα με μεταβαλλόμενη εποχικότητα και τάση.
Συμπέρασμα
- Η STL αποσύνθεση φαίνεται να παρέχει μια πιο λεπτομερή και προσαρμοστική ανάλυση των δεδομένων.
- Αν οι χρονοσειρές περιέχουν μη γραμμικές τάσεις ή πιο σύνθετα εποχικά μοτίβα, η STL είναι πιθανώς πιο κατάλληλη.
Observed:
0 0.11
1 0.13
2 0.07
3 0.02
4 0.06
Name: Values, dtype: float64
Trend:
12 0.074792
13 0.071667
14 0.068750
15 0.069375
16 0.073125
Name: trend, dtype: float64
Seasonal:
0 -0.035609
1 -0.014255
2 -0.048317
3 0.022828
4 0.043453
Name: seasonal, dtype: float64
Residual:
12 0.033908
13 0.026755
14 0.042588
15 0.042102
16 -0.020676
Name: resid, dtype: float64
Observed:
0 0.11
1 0.13
2 0.07
3 0.02
4 0.06
Name: Values, dtype: float64
Trend:
0 0.100144
1 0.098141
2 0.096144
3 0.094154
4 0.092171
Name: trend, dtype: float64
Seasonal:
0 -0.000304
1 0.024974
2 -0.032990
3 -0.034573
4 -0.000829
Name: season, dtype: float64
Residual:
0 0.010159
1 0.006885
2 0.006846
3 -0.039581
4 -0.031342
Name: resid, dtype: float64
