Files
ArtStudies/M2/Time Series/TD2.Rmd

105 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TD2 - Analyse de séries temporelles
## 1. Import et visualisation
```{r}
library(tseries)
par(mfrow = c(1, 1))
data(AirPassengers)
plot(AirPassengers)
```
## 2. Saisonnalité
```{r}
library(forecast)
monthplot(AirPassengers, main = "Graphique par mois (Monthplot)")
lag.plot(
AirPassengers,
lags = 12,
do.lines = FALSE,
main = "AirPassengers Lag-Plot"
)
boxplot(
AirPassengers ~ cycle(AirPassengers),
main = "Boxplot par mois",
xlab = "Mois",
ylab = "Nombre de passagers"
)
```
Il y a en effet une saisonnalité dans les données, avec des pics réguliers tous les 12 mois. Cela suggère que les passagers aériens ont tendance à augmenter à certaines périodes de l'année, probablement en raison de vacances ou d'autres facteurs saisonniers.
## 3. Moyenne mobile
```{r}
library(zoo)
ma <- rollmean(AirPassengers, k = 12, fill = NA)
plot(
AirPassengers,
main = "AirPassengers with Moving Average",
ylab = "Number of Passengers"
)
lines(ma, col = "red", lwd = 2)
legend(
"topleft",
legend = c("AirPassengers", "Moving Average"),
col = c("black", "red"),
lwd = 2
)
```
## 4. Décomposition
```{r}
airpassengers_add <- decompose(AirPassengers, type = "additive")
plot(airpassengers_add)
airpassengers_mult <- decompose(AirPassengers, type = "multiplicative")
plot(airpassengers_mult)
```
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.
## 5. STL
```{r}
dec_stl <- stl(log(AirPassengers), s.window = "periodic")
plot(dec_stl)
```
Différences clés :
- `decompose()` est rigide (moyennes mobiles simples, saisonnalité fixe).
- `stl()` permet de gérer des valeurs aberrantes et d'ajuster la "vitesse" d'évolution de la saisonnalité via le paramètre s.window.
## 6. Différenciation
```{r}
trend_diff <- diff(log(AirPassengers))
saison_diff <- diff(log(AirPassengers), lag = 12)
final_diff <- diff(trend_diff, lag = 12)
plot(trend_diff, main = "Différence tendancielle (Trend)", ylab = "Différence tendancielle")
plot(saison_diff, main = "Différence saisonnière (Seasonal)", ylab = "Différence saisonnière")
plot(final_diff, main = "Différence finale (Trend + Seasonal)", ylab = "Différence finale")
```
Une différence première ($IB$) pour retirer la tendance.
Une différence saisonnière ($IB^{12}$) pour retirer la saisonnalité.
```{r}
kpss_test_result <- kpss.test(final_diff)
print(kpss_test_result)
adf_test_result <- adf.test(final_diff)
print(adf_test_result)
```