Skip to content

Commit 8755e8e

Browse files
First version of C05Lb_ts
1 parent 7c91928 commit 8755e8e

File tree

2 files changed

+201
-37
lines changed

2 files changed

+201
-37
lines changed

inst/tutorials/C05Lb_ts_decomp/C05Lb_ts_decomp.Rmd.inactivated_torework

Lines changed: 0 additions & 37 deletions
This file was deleted.
Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
---
2+
title: "Décomposition de séries spatio-temporelles"
3+
author: "Guyliann Engels & Philippe Grosjean"
4+
description: "**SDD III Module 5** Décomposition saisonnière de séries spatio-temporelles."
5+
tutorial:
6+
id: "C05Lb_ts_decomp"
7+
version: 2.0.0/6
8+
output:
9+
learnr::tutorial:
10+
progressive: true
11+
allow_skip: true
12+
runtime: shiny_prerendered
13+
---
14+
15+
```{r setup, include=FALSE}
16+
BioDataScience3::learnr_setup()
17+
SciViews::R('ts', lang = 'fr')
18+
library(pastecs)
19+
# datasets
20+
flow <- read("flow", package = "TSA")
21+
flow <- flow/35.3147
22+
#tsp(flow)
23+
24+
fl_loess <- tsd(flow, method = "loess", s.window = 13, trend = FALSE)
25+
```
26+
27+
```{r, echo=FALSE}
28+
BioDataScience3::learnr_banner()
29+
```
30+
31+
```{r, context="server"}
32+
BioDataScience3::learnr_server(input, output, session)
33+
```
34+
35+
------------------------------------------------------------------------
36+
37+
## Objectifs
38+
39+
- Décrire une série spatio-temporelle (`ts`)
40+
- Décomposez une série spatio-temporelle
41+
- Extraire et analyser les composantes obtenues
42+
43+
## Description de la série
44+
45+
Le débit de la rivière Iowa est mesuré de 1958 à 2006 au niveau de la ville de Wapello, dans l'état de l'Iowa. Ce cours d'eau de 485km de long prend sa source dans le nord de l'état d'Iowa pour rejoindre le Mississippi au sud-est de l'état.
46+
47+
```{r, echo = TRUE}
48+
yl <- expression(paste("Débit mensuel moyen [", m^3, s^-1, "]"))
49+
plot(flow, ylab = yl, xlab = "Temps [année]")
50+
```
51+
52+
La variation du cours d'eau semble suivre un cycle saisonnier commun pour les cours d'eau. Le débit de l'Iowa a atteint des valeurs très importantes en 1993 qui a engendré des inondations importantes dans les villes proches du cours d'eau dans l'état d'Iowa.
53+
54+
Différentes questions peuvent se poser ici auxquels nous allons tenter de répondre =
55+
56+
- Y a-t-il une tendance générale dans cette série ?
57+
- Observe-t-on un cycle différent du cycle saisonnier ?
58+
59+
Commençons l'analyse, par étudier son autocorrélation et décrire cette série à l'aide des statistiques glissantes et des tendances locales.
60+
61+
Réalisez l'autocorrélation de la série `flow`.
62+
63+
```{r acf_h1, exercise=TRUE, exercise.lines=1}
64+
___
65+
```
66+
67+
```{r acf_h1-solution}
68+
## Solution ##
69+
acf(flow)
70+
```
71+
72+
```{r acf_h1-check}
73+
grade_code("On observe une autocorrélation particulière. La série décalée enchaine les corrélations positives puis négatives par rapport à la série initiale. Cet enchainement est caractéristique d'une série périodique.")
74+
```
75+
76+
Affichez un graphique avec des statistiques glissantes avec un pas de temps de 3 ans. Proposez la médiane sur le graphique. Ajoutez la légende avec les valeurs suivantes : 2100 en y et 1960 en x
77+
78+
```{r sl_h2, exercise=TRUE, exercise.lines=2}
79+
sl <- ___(___, ___, deltat = ___)
80+
plot(sl, stat = ___, ___ = ___, lpos = c(___, ___))
81+
```
82+
83+
```{r sl_h2-hint-1}
84+
sl <- stat.slide(time(___), ___, deltat = ___)
85+
plot(sl, stat = "___", leg = TRUE, lpos = c(___, ___))
86+
#### ATTENTION: Hint suivant = solution !####
87+
```
88+
89+
```{r sl_h2-solution}
90+
## Solution ##
91+
sl <- stat.slide(time(flow), flow, deltat = 3)
92+
plot(sl, stat = "median", leg = TRUE, lpos = c(1960, 2100))
93+
```
94+
95+
```{r sl_h2-check}
96+
grade_code("Les valeurs médianes sont assez similaires au cours du temps. On observe tout de même une médiane élevée de 331 $m^3/s$ en 1991 et 1994. Aucune indication ne semble indiquer la présence d'une tendance monotone croissante ou décroissante que l'on pourrait détecter avec un test de tendance générale.")
97+
```
98+
99+
Réalisez maintenant le graphique de l'analyse des tendances locales.
100+
101+
```{r lt_h1, exercise=TRUE, exercise.lines=1}
102+
loc <- ___
103+
```
104+
105+
```{r lt_h1-solution}
106+
## Solution ##
107+
loc <- local.trend(flow)
108+
```
109+
110+
```{r lt_h1-check}
111+
grade_code("Le graphique des tendances locales est particulier. Outre la période d'inondation de 1993 qui fait monter brusquement la courbe rouge du signal des sommes cumulés, on observe également au moins trois phases particulières au milieu des années 70, puis en fin des années 80 et enfin à la fin des années 90. Ces pics pourraient potentiellement indiquer un changement particulier qui se répète avec un pas de temps plus important que l'année.")
112+
```
113+
114+
Concernant la tendance globale de cette série, elle ne suit pas une variation lente à l'augmentation ou à la diminution. Il n'est donc pas utile d'étudier la tendance générale à l'aide de la fonction trend.test().
115+
116+
## Décomposition de la série
117+
118+
Nous allons décomposer la série afin d'explorer plus en détail la série. Pour ce faire, nous allons extraire le cycle saisonnier et étudier la série désaisonnalisée. Comme nous l'avons mis en avant précédemment, il n'est pas utile d'extraire une quelconque tendance générale. Proposez une décomposition par la méthode LOESS avec une fenêtre de décomposition saisonnière (rappelez-vous que l'étendue est 2 k + 1). Afin de tenter de faire ressortir un cycle particulier autre.
119+
120+
```{r loess_h2, exercise=TRUE, exercise.lines=2}
121+
fl_loess <- tsd(___, method = ___, ___ = ___, trend = ___)
122+
plot(___, col = 1:3)
123+
```
124+
125+
```{r loess_h2-hint-1}
126+
fl_loess <- tsd(___, method = ___, s.window = ___, trend = ___)
127+
plot(fl_loess, col = 1:3)
128+
#### ATTENTION: Hint suivant = solution !####
129+
```
130+
131+
```{r loess_h2-solution}
132+
## Solution ##
133+
fl_loess <- tsd(flow, method = "loess", s.window = 13, trend = FALSE)
134+
plot(fl_loess, col = 1:3)
135+
```
136+
137+
```{r loess_h2-check}
138+
grade_code("(`s.window=`) la valeur optimale est de 13. Par défaut, la tendance générale n'est pas décomposée. On vous demande malgré tout de spécifier que l'on ne souhaite pas décomposer la tendance générale.")
139+
```
140+
141+
Réalisez uniquement le graphique de la composante saisonnière (`seasonal`) en récupérant la série d'intérêt via la fonction tseries().
142+
143+
```{r seasonal_h2, exercise=TRUE, exercise.lines=2}
144+
fl_mts <- ___(____)
145+
plot(___)
146+
```
147+
148+
```{r seasonal_h2-hint-1}
149+
fl_mts <- tseries(___)
150+
plot(fl_mts[, "___"])
151+
#### ATTENTION: Hint suivant = solution !####
152+
```
153+
154+
```{r seasonal_h2-solution}
155+
## Solution ##
156+
fl_mts <- tseries(fl_loess)
157+
plot(fl_mts[, "seasonal"])
158+
```
159+
160+
```{r seasonal_h2-check}
161+
grade_code("La tendance cyclique extraite est particulière. On observe que l'amplitude du signal varie tout le long de la série. Il aurait été possible de réaliser une décomposition en forçant l'extraction d'un signal périodique constant s.window = 'periodic'.")
162+
```
163+
164+
À présent, extrayez la composante désaisonnalisée afin d'étudier la présence ou non d'un cycle différent du cycle saisonnier. Afin d'extraire la composante qui vous intéresse. Utilisez la fonction extract(). Réalisez ensuite un graphique de la série extraite et une analyse spectrale de cette dernière. Employez des valeurs de lissage de 5 et 7.
165+
166+
```{r deseasoned_h1, exercise=TRUE, exercise.lines=5}
167+
# Extraction de la série
168+
fl_des <- extract(___, ____ = "deseasoned")
169+
# Graphique de la série et analyse spectrale
170+
plot(___)
171+
___(___, spans = ___)
172+
```
173+
174+
```{r deseasoned_h1-solution}
175+
## Solution ##
176+
# Extraction de la série
177+
fl_des <- extract(fl_loess, components = "deseasoned")
178+
# Graphique de la série et analyse spectrale
179+
plot(fl_des)
180+
spectrum(fl_des, spans = c(5,7))
181+
```
182+
183+
```{r deseasoned_h1-check}
184+
grade_code("Les creux dans l'analyse spectrale sont le résultat de la décomposition. En effet, on extrait le cycle saisonnier. Ce dernier n'est donc plus présent dans les résidus. Un cycle tous les 1.3 an et est présent. On ne retrouve pas dans cette analyse spectrale les changements particuliers que l’on a observés dans l’analyse des tendances locales.")
185+
```
186+
187+
Pour faire un bilan de cette analyse, il n'est pas possible d'étudier la tendance générale de la série. Les tendances locales indiquent des changements de débit à différentes périodes (année 70, 80 et fin 90). Ces variations ne sont pas mise en évidence lors de l'analyse de la série décomposée. Il n'y a pas de cycle significatif en dehors de cycle saisonnier dans la période est supérieure à l'année. Une piste de réflexion concernant ces changements particuliers pourrait être anthropique. En effet, en amont de la ville de Walepelo. Un barrage a été construit avant le début des mesures de la série qui a donné naissance à un lac artificiel le Coralville Lake.
188+
189+
## Conclusion
190+
191+
Vous venez de réaliser une analyse du débit de la rivière Iowa en utilisant la décomposition de série pour extraire le cycle saisonnier et vous intéressez aux éléments cachés par ce cycle très marqué. Les méthodes de décomposition sont des outils puissants qu'il faut manipuler avec prudence. Le choix des bonnes valeurs des arguments est très important.
192+
193+
```{r comm_noscore, echo=FALSE}
194+
question_text(
195+
"Laissez-nous vos impressions sur cet outil pédagogique",
196+
answer("", TRUE, message = "Pas de commentaires... C'est bien aussi."),
197+
incorrect = "Vos commentaires sont enregistrés.",
198+
placeholder = "Entrez vos commentaires ici...",
199+
allow_retry = TRUE
200+
)
201+
```

0 commit comments

Comments
 (0)