Skip to content

Commit 97c0483

Browse files
committed
Small corrections
1 parent 0f6dfe6 commit 97c0483

File tree

1 file changed

+33
-18
lines changed

1 file changed

+33
-18
lines changed

inst/tutorials/C05La_ts_filter/C05La_ts_filter.Rmd

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Filtrage de séries spatio-temporelles"
33
author: "Guyliann Engels & Philippe Grosjean"
4-
description: "**SDD III Module 5** Filtrage de séries avec moyennes et médianes mobiles ou par différence."
4+
description: "**SDD III Module 5** Filtrage de séries spatio-termporelles."
55
tutorial:
66
id: "C05La_ts_filter"
77
version: 2.0.0/6
@@ -36,11 +36,11 @@ BioDataScience3::learnr_server(input, output, session)
3636

3737
## Objectifs
3838

39-
La décomposition d'une série est un élément central dans l'analyse d'une série spatio-temporelle. Vous avez découvert que l'on ne peut pas étudier les cycles d'une série si une tendance générale est présente. Il faut dans ce cas décomposer la série afin d'étudier chaque composante séparément. Nous aborderons dans ce tutoriel un exemple pratique de filtrage d'une série.
39+
La décomposition d'une série spatio-temporelle est un outil important pour son analyse. Vous avez découvert que l'on ne peut pas étudier les cycles d'une série si une tendance générale est présente. Il faut dans ce cas décomposer la série afin d'étudier chaque composante séparément. Nous aborderons dans ce tutoriel un exemple pratique de filtrage d'une série.
4040

4141
## Variation de la fréquence cardiaque
4242

43-
Un sportif travaille avec un médecin du sport afin d'optimiser ces performances. Le médecin n'est pas un expert dans le traitement des données collectées. Le sportif a couru sous les 36 minutes lors d'un effort maximal sur 10km, ce qui est une performance correcte pour un sportif amateur. En collaboration avec son médecin et vous, il souhaite comprendre les informations collectées par les différents capteurs qu'il a employées. Nous disposons de la distance parcourue, la puissance, la vitesse instantanée et la fréquence cardiaque.
43+
Un sportif travaille avec un médecin du sport afin d'optimiser ses performances. Le médecin n'est pas un expert dans le traitement des données collectées. Le sportif a couru sous les 36 minutes lors d'un effort maximal sur 10km, ce qui est une performance correcte pour un sportif amateur. En collaboration avec son médecin et vous, il souhaite comprendre les informations collectées par les différents capteurs qu'il a employées. Nous disposons de la distance parcourue, la puissance, la vitesse instantanée et la fréquence cardiaque.
4444

4545
```{r}
4646
a <- chart(data = hr, speed ~ time/60) +
@@ -66,15 +66,15 @@ chart(data = hr, heart_rate ~ time/60) +
6666

6767
## Création de l'objet ts
6868

69-
Les observations sont réalisées sur la même personne au cours du temps, nous sommes face à une série temporelle. Appliquez l'ensemble de vos connaissances. La fréquence cardiaque est mesurée chaque seconde.
69+
Les observations sont réalisées sur la même personne au cours du temps, nous sommes face à une série temporelle. Appliquez l'ensemble de vos connaissances. La fréquence cardiaque est mesurée toute les secondes.
7070

7171
```{r, echo=TRUE}
7272
head(hr[,c("time", "heart_rate")])
7373
```
7474

7575
Réalisez un objet `ts` dont le pas de temps est la minute et nommez-le `hr_ts`. Réalisez ensuite un graphique de `hr_ts`. Enfin, étudiez l'autocorrélation. Le tableau de données initial est `hr`.
7676

77-
```{r ts_h2, exercise = TRUE}
77+
```{r ts_h2, exercise=TRUE}
7878
___ <- ts(___$___, frequency = ___)
7979
# graphique
8080
___(___)
@@ -88,55 +88,64 @@ hr_ts <- ts(hr$___, frequency = ___)
8888
___(hr_ts)
8989
# autocorrélation
9090
___(hr_ts)
91+
92+
## Attention, le prochain indice est la solution ##
9193
```
9294

9395
```{r ts_h2-solution}
96+
## Solution ##
9497
hr_ts <- ts(hr$heart_rate, frequency = 60)
9598
plot(hr_ts)
9699
# autocorrélation
97100
acf(hr_ts)
98101
```
99102

100103
```{r ts_h2-check}
101-
grade_code("On compte 60 secondes par minute. Il semble donc cohérent d'avoir une fréquence de 60. L'étude de l'autocorrélation de la série indique une forte corrélation. Nous pouvons donc employer tous les outils présent dans notre boite à outils dédiée à l'anayse des séries spatio-temporelles.")
104+
grade_code("On compte 60 secondes par minute. Il semble donc cohérent d'avoir une fréquence de 60. L'étude de l'autocorrélation de la série indique une forte corrélation.")
102105
```
103106

104107
## Décomposition de la série
105108

106-
Tentez de filtrer la tendance de cette série à l'aide des médianes mobiles avec fenêtre de 30 observations et reproduisez la décomposition 20 fois. Nommez cet objet `hr_decomp`
109+
Filtrez cette série à l'aide des médianes mobiles avec fenêtre de 30 observations et reproduisez la décomposition 20 fois dans le but de dégager différentes phases successives tout au long de la série. Nommez cet objet `hr_decomp`
107110

108-
```{r, decmed_h2, exercise = TRUE}
111+
```{r, decmed_h2, exercise=TRUE}
109112
___ <- tsd(___, method = "___", order = ___, times = ___)
110113
plot(___)
111114
```
112115

113116
```{r, decmed_h2-hint-1}
114117
hr_decomp <- tsd(hr_ts, method = "___", order = 30, times = ___)
115118
plot(hr_decomp)
119+
120+
## Attention, le prochain indice est la solution ##
116121
```
117122

118123
```{r, decmed_h2-solution}
124+
## Solution ##
119125
hr_decomp <- tsd(hr_ts, method = "median", order = 30, times = 20)
120126
plot(hr_decomp)
121127
```
122128

123129
```{r, decmed_h2-check}
124-
grade_code("Bien joué, vous avez réussi à filtrer la tendance de la série et placer le reste dans les rédidus.")
130+
grade_code("Vous avez réussi à filtrer la tendance de la série et placer le reste dans les résidus.")
125131
```
126132

127-
Extrayez la composante filtrée à l'aide de la fonction `extract()` de l'objet `hr_decomp` puis réalisez un graphique de cette nouvelle série.
133+
Extrayez la composante filtrée à l'aide d'`extract()` de l'objet `hr_decomp` puis réalisez un graphique de cette nouvelle série.
128134

129-
```{r extract_h2, exercise = TRUE}
135+
```{r extract_h2, exercise=TRUE}
130136
hr_filtered <- extract(___, ___ = ___)
131137
plot(hr_filtered)
132138
```
133139

134140
```{r extract_h2-hint-1}
135141
hr_filtered <- extract(___, components = ___)
136142
plot(hr_filtered)
143+
144+
## Attention, le prochain indice est la solution ##
137145
```
138146

139147
```{r extract_h2-solution}
148+
## Solution ##
140149
hr_filtered <- extract(hr_decomp, components = "filtered")
141150
plot(hr_filtered)
142151
```
@@ -147,22 +156,25 @@ grade_code("Vous avez correctement converti votre objet `tsd` en objet `ts`.")
147156

148157
## Analyse de la série filtrée
149158

150-
L'utilisation des médianes mobiles est une approche intéressante afin de faire ressortir les plateaux observés par le médecin. Débutez par réaliser un test de tendance par bootstrap sur votre objet `hr_filtered`. Réalisez 99 ré-échantillonnages. Affichez les graphiques associés à ce test.
159+
L'utilisation des médianes mobiles est une approche intéressante afin de faire ressortir les plateaux observés par le médecin. Faites à présent un test de tendance par bootstrap sur votre objet `hr_filtered`. Réalisez 99 ré-échantillonnages. Affichez les graphiques associés à ce test.
151160

152161
```{r trend_h2, exercise = TRUE}
153162
___(trend.test(___, R = ___))
154163
```
155164

156165
```{r trend_h2-hint-1}
157166
plot(trend.test(___, R = ___))
167+
168+
## Attention, le prochain indice est la solution ##
158169
```
159170

160171
```{r trend_h2-solution}
172+
## Solution ##
161173
plot(trend.test(hr_filtered, R = 99))
162174
```
163175

164176
```{r trend_h2-check}
165-
grade_code("Un test de tendance avec bootstrap est bien plus intéressant qu'un test sans. Cependant, cette opération prend du temps. Nous avons donc décidé de faire seulement 99 rééchantillonage.")
177+
grade_code("Un test de tendance avec bootstrap est bien plus intéressant qu'un test sans. Cependant, cette opération prend du temps. Nous avons donc décidé de faire seulement 99 rééchantillonage. En pratique, il vaut mieux en faire, par exemple, 999.")
166178
```
167179

168180
```{r qu_tren}
@@ -173,7 +185,7 @@ question("Y a t'il un tendance générale dans cette série ? ",
173185
answer("Il n'y a pas de tendance générale dans cette série. On l'observe grâce au graphique quantile-quantile l'histogramme de la distribution de t*."),
174186
allow_retry = TRUE,
175187
random_answer_order = TRUE
176-
)
188+
)
177189
```
178190

179191
Calculez des statistiques glissantes afin de délimiter la période de 0 à 5, 5 à 15, 15 à 25 et de 25 à 36. Réalisez un graphique des statistiques glissantes en y ajoutant les médianes pour chaque période. Ajoutez la légende en position c(1,182). Renommez l'axe Y en "Fréquence cardiaque [bpm]", l'axe X en "Temps [min]" et le titre par "Statistiques glissantes".
@@ -183,18 +195,21 @@ sl <- stat.slide(___(___), ___, xcut = c(___, ___, ___, ___, ___))
183195
# Graphique de l'objet `sl`
184196
plot(__, stat = ___, leg = ___, lpos = c(___, ___),
185197
xlab = ___, ylab = ____,
186-
main = ___)
198+
main = ___)
187199
```
188200

189201
```{r sl_h2-hint-1}
190202
sl <- stat.slide(___(___), ___, xcut = c(0, 5, 15, 25, 36))
191203
# Graphique de l'objet `sl`
192204
plot(sl, stat = ___, leg = TRUE, lpos = c(1, 182),
193205
xlab = ___, ylab = ____,
194-
main = ___)
206+
main = ___)
207+
208+
## Attention, le prochain indice est la solution ##
195209
```
196210

197211
```{r sl_h2-solution}
212+
## Solution ##
198213
sl <- stat.slide(time(hr_filtered), hr_filtered, xcut = c(0, 5, 15, 25, 36))
199214
# Graphique de l'objet `sl`
200215
plot(sl, stat = "median", leg = TRUE, lpos = c(1, 182),
@@ -203,12 +218,12 @@ plot(sl, stat = "median", leg = TRUE, lpos = c(1, 182),
203218
```
204219

205220
```{r sl_h2-check}
206-
grade_code("Ce graphique est très explicite et va permettre au médécin d'expliquer au sportif l'évolutio de la fréquence cardiaque au cours du temps.")
221+
grade_code("Ce graphique est très explicite et va permettre au médécin d'expliquer au sportif l'évolution de sa fréquence cardiaque au cours du temps.")
207222
```
208223

209224
Grâce à votre analyse, le médecin peut confirmer ses premières observations. Les cinq premières minutes, la fréquence cardiaque augmente rapidement pour atteindre un plateau entre la minute 5 et la minute 15 d'une valeur médiane de 174 bpm. Une seconde augmentation plus progressive est observable entre la minute 15 et la minute 25. Enfin un nouveau plateau est observé entre la minute 25 et la fin de la course.
210225

211-
Le médecin émet l'hypothèse suivante. Le sportif atteint le premier plateau puis on observe une probable dérive cardiaque. La dérive cardiaque est liée à l'augmentation de la température corporelle. Le corps tente de dissiper la chaleur en dilatant les vaisseaux sanguins. Afin de maintenir le débit cardiaque constant, la fréquence cardiaque va augmenter. Le dernier plateau est probablement lié à la diminution de la vitesse qui va arrêter l'augmentation de la vitesse cardiaque.
226+
Le médecin émet l'hypothèse suivante. Le sportif atteint le premier plateau puis on observe une probable dérive cardiaque. La dérive cardiaque est liée à l'augmentation de la température corporelle. Le corps tente de dissiper la chaleur en dilatant les vaisseaux sanguins. Afin de maintenir le débit cardiaque constant, la fréquence cardiaque va augmenter. Le dernier plateau est probablement lié à la diminution de la vitesse qui va contrer l'augmentation de la vitesse cardiaque.
212227

213228
## Conclusion
214229

0 commit comments

Comments
 (0)