From 2854aa71d2450434ff81c4e2c5b54f4a6088c3fb Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Wed, 18 Feb 2026 14:25:32 +0100 Subject: [PATCH] Add residual diagnostics and explanations for decomposition - Add extraction/NA-cleaning of residuals and plots + ACF for additive and multiplicative decompositions - Clarify why multiplicative seasonality fits AirPassengers better - Update STL plot title - Add ACF for the final differenced series - Expand explanation of differencing operators and show combined differencing formula --- M2/Time Series/TD2.qmd | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/M2/Time Series/TD2.qmd b/M2/Time Series/TD2.qmd index 1c12c7a..b834de2 100644 --- a/M2/Time Series/TD2.qmd +++ b/M2/Time Series/TD2.qmd @@ -59,18 +59,39 @@ legend( ```{r} airpassengers_add <- decompose(AirPassengers, type = "additive") plot(airpassengers_add) +residus_add <- airpassengers_add$random +residus_add_clean <- stats::na.omit(residus_add) +plot(residus_add_clean, main = "Résidus du modèle additif", ylab = "Résidus") +acf(residus_add_clean, main = "ACF des résidus du modèle additif") +``` +```{r} airpassengers_mult <- decompose(AirPassengers, type = "multiplicative") plot(airpassengers_mult) +residus_mult <- airpassengers_mult$random +residus_mult_clean <- stats::na.omit(residus_mult) + +plot( + residus_mult_clean, + main = "Résidus du modèle multiplicatif", + ylab = "Résidus" +) + +acf( + residus_mult_clean, + main = "ACF des résidus du modèle multiplicatif" +) ``` Observation : Le modèle multiplicatif est ici plus pertinent car les résidus (le "random") du modèle additif montrent encore une structure liée à l'amplitude de la série, alors qu'ils sont plus stables (homoscédastiques) dans le modèle multiplicatif. La fonction `decompose()` permet de séparer la série en trois composantes : tendance, saisonnalité et résidus. Cependant, elle suppose que la saisonnalité est fixe dans le temps, ce qui peut ne pas être le cas pour toutes les séries temporelles. De plus, elle est sensible aux valeurs aberrantes, ce qui peut affecter la qualité de la décomposition. +La saisonnalité de type multiplicatif colle mieux à AirPassengers car l'amplitude de la saisonnalité semble augmenter avec le temps, ce qui est caractéristique d'une relation multiplicative entre les composantes. En revanche, une décomposition additive supposerait que la saisonnalité a une amplitude constante, ce qui ne correspond pas à la nature des données d'AirPassengers. + ## 5. STL ```{r} dec_stl <- stl(log(AirPassengers), s.window = "periodic") -plot(dec_stl) +plot(dec_stl, main = "Décomposition STL de log(AirPassengers)") ``` Différences clés : @@ -100,11 +121,23 @@ plot( main = "Différence finale (Trend + Seasonal)", ylab = "Différence finale" ) + +acf( + final_diff, + main = "ACF de la série différenciée", + lag.max = 20 +) ``` -Une différence première ($I−B$) pour retirer la tendance. +Le symbole $I$ est l'opérateur identité (ne décale pas la série). +$B$ est l'opérateur de retard (backshift) défini par $B X_t = X_{t-1}$. -Une différence saisonnière ($I−B^{12}$) pour retirer la saisonnalité. +Ainsi : +- $(I - B)X_t = X_t - X_{t-1}$ : différence première (retirer la tendance). +- $(I - B^{12})X_t = X_t - X_{t-12}$ : différence saisonnière sur 12 périodes (retirer la saisonnalité). + +Donc ma série finale est obtenue en appliquant ces deux différences : +- $(I - B)(I - B^{12})X_t = X_t - X_{t-1} - X_{t-12} + X_{t-13}$ ```{r} kpss_test_result <- kpss.test(final_diff)