Skip to content

Commit b0360d8

Browse files
committed
Learnr for module 5 revised for 2023-2024
1 parent e7846d3 commit b0360d8

File tree

3 files changed

+37
-21
lines changed

3 files changed

+37
-21
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: BioDataScience2
2-
Version: 2023.4.0
2+
Version: 2023.5.0
33
Title: A Series of Learnr Documents for Biological Data Science 2
44
Description: Interactive documents using learnr for studying biological data science (second course).
55
Authors@R: c(

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# BioDataScience2 2023.5.0
2+
3+
- Learnr **B05La_nls** revised for 2023-2024.
4+
15
# BioDataScience2 2023.4.0
26

37
- New learnr **B04La_glm** added for 2023-2024.

inst/tutorials/B05La_nls/B05La_nls.Rmd.inactive renamed to inst/tutorials/B05La_nls/B05La_nls.Rmd

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Régression non linéaire"
33
author: "Guyliann Engels & Philippe Grosjean"
4-
description: "**SDD II Module 5** Régression non linéaire et modèles non linéaires principaux en biologie."
4+
description: "**SDD II Module 5** Régression non linéaire."
55
tutorial:
66
id: "B05La_nls"
77
version: 2.0.1/5
@@ -13,7 +13,7 @@ runtime: shiny_prerendered
1313

1414
```{r setup, include=FALSE}
1515
BioDataScience2::learnr_setup()
16-
SciViews::R()
16+
SciViews::R("model", lang = "fr")
1717
1818
set.seed(42)
1919
tumor <- dtx(
@@ -78,15 +78,17 @@ df1 <- dtx(
7878
)
7979
```
8080

81-
```{r expo_h2, exercise=TRUE, exercise.setup="expo_prep"}
81+
```{r expo_h2, exercise=TRUE, exercise.lines=5, exercise.setup="expo_prep"}
8282
expo <- ___(data = ___, ___ ~ ___(t, ___, ___),
8383
start = list(___ = ___, ___ = ___), trace = TRUE)
84+
chart(___)
8485
summary(___)
8586
```
8687

8788
```{r expo_h2-hint-1}
8889
expo <- nls(data = df1, y ~ exponent(t, ___, ___),
8990
start = list(y0 = ___, k = ___), trace = TRUE)
91+
chart(___)
9092
summary(___)
9193
9294
#### ATTENTION: Hint suivant = solution !####
@@ -96,11 +98,12 @@ summary(___)
9698
## Solution ##
9799
expo <- nls(data = df1, y ~ exponent(t, y0, k),
98100
start = list(y0 = 1, k = 0.5), trace = TRUE)
101+
chart(expo)
99102
summary(expo)
100103
```
101104

102105
```{r expo_h2-check}
103-
grade_code("Voici votre premier modèle non linéaire... et certainement pas le dernier.")
106+
grade_code("C'est votre premier modèle non linéaire... et certainement pas le dernier.")
104107
```
105108

106109
## Volume tumoral
@@ -119,14 +122,16 @@ Aidez-les en réalisant les différents modèles proposés ci-dessous et sélect
119122

120123
A partir du jeu de données `tumor`, modélisez la croissance tumorale (`volume`) en fonction du temps (`time`) en utilisant une courbe logistique. Calculez le critère d'Akaïke pour votre modèle.
121124

122-
```{r tumor_logis_h2, exercise = TRUE}
123-
logis <- nls(data = ___, ___ ~ SSlogis(___, ___, ___, ___))
125+
```{r tumor_logis_h2, exercise=TRUE, exercise.lines=5}
126+
logis <- nls(data = ___, ___ ~ ___(___, ___, ___, ___))
127+
chart(___)
124128
summary(___)
125129
___(___)
126130
```
127131

128132
```{r tumor_logis_h2-hint-1}
129133
logis <- nls(data = tumor, volume ~ SSlogis(time, ___, ___, ___))
134+
chart(___)
130135
summary(___)
131136
___(logis)
132137
@@ -136,6 +141,7 @@ ___(logis)
136141
```{r tumor_logis_h2-solution}
137142
## Solution ##
138143
logis <- nls(data = tumor, volume ~ SSlogis(time, Asym, xmid, scal))
144+
chart(logis)
139145
summary(logis)
140146
AIC(logis)
141147
```
@@ -148,14 +154,16 @@ grade_code("Essayons un autre modèle pour voir si l'on peut faire mieux.")
148154

149155
A partir du jeu de données `tumor`, modélisez la croissance tumorale (`volume`) en fonction du temps (`time`) en utilisant le modèle de Gompertz. Calculez le critère d'Akaïke pour votre modèle.
150156

151-
```{r tumor_gomp_h2, exercise = TRUE}
152-
gomp <- nls(data = ___, ___ ~ SSgompertz(___, ___, ___, ___))
157+
```{r tumor_gomp_h2, exercise=TRUE, exercise.lines=5}
158+
gomp <- nls(data = ___, ___ ~ ___(___, ___, ___, ___))
159+
chart(___)
153160
summary(___)
154161
___(___)
155162
```
156163

157164
```{r tumor_gomp_h2-hint-1}
158165
gomp <- nls(data = tumor, volume ~ SSgompertz(time, ___, ___, ___))
166+
chart(___)
159167
summary(___)
160168
___(gomp)
161169
@@ -165,41 +173,45 @@ ___(gomp)
165173
```{r tumor_gomp_h2-solution}
166174
## Solution ##
167175
gomp <- nls(data = tumor, volume ~ SSgompertz(time, Asym, b2, b3))
176+
chart(gomp)
168177
summary(gomp)
169178
AIC(gomp)
170179
```
171180

172181
```{r tumor_gomp_h2-check}
173-
grade_code("Bravo ! C'est impressionnant. Et si on en testait un dernier...")
182+
grade_code("Et si on en testait un dernier...")
174183
```
175184

176-
### Modèle de von Bertalanffy
185+
### Modèle de Weibull
177186

178-
A partir du jeu de données `tumor`, modélisez la croissance tumorale (`volume`) en fonction du temps (`time`) en utilisant le modèle de von Bertalanffy. Calculez le critère d'Akaïke pour votre modèle.
187+
A partir du jeu de données `tumor`, modélisez la croissance tumorale (`volume`) en fonction du temps (`time`) en utilisant le modèle de Weibull. Calculez le critère d'Akaïke pour votre modèle.
179188

180-
```{r tumor_vb_h2, exercise = TRUE}
181-
vb <- nls(data = ___, ___ ~ SSasympOff(___, ___, ___, ___))
189+
```{r tumor_vb_h2, exercise=TRUE, exercise.lines=5}
190+
wb <- nls(data = ___, ___ ~ ___(___, ___, ___, ___, ___))
191+
chart(___)
182192
summary(___)
183193
___(___)
184194
```
185195

186196
```{r tumor_vb_h2-hint-1}
187-
vb <- nls(data = tumor, volume ~ SSasympOff(time, ___, ___, ___))
197+
wb <- nls(data = tumor, volume ~ SSweibull(time, ___, ___, ___, ___))
198+
chart(___)
188199
summary(___)
189-
___(vb)
200+
___(wb)
190201
191202
#### ATTENTION: Hint suivant = solution !####
192203
```
193204

194205
```{r tumor_vb_h2-solution}
195206
## Solution ##
196-
vb <- nls(data = tumor, volume ~ SSasympOff(time, Asym, lrc, c0))
197-
summary(vb)
198-
AIC(vb)
207+
wb <- nls(data = tumor, volume ~ SSweibull(time, Asym, Drop, lrc, pwr))
208+
chart(wb)
209+
summary(wb)
210+
AIC(wb)
199211
```
200212

201213
```{r tumor_vb_h2-check}
202-
grade_code("Ce modèle s'ajuste aussi dans ces données")
214+
grade_code("Ce modèle s'ajuste aussi dans ces données.")
203215
```
204216

205217
### Comparaison des modèles à partir du critère d'Akaïke
@@ -214,7 +226,7 @@ question("Quelle est le meilleur modèle ?",
214226

215227
## Conclusion
216228

217-
Vous venez de terminer votre séance d'exercice.
229+
Vous venez de terminer votre séance d'exercices relative à la régression non linéaire. L'utilisation de modèles 'selfStart' rend les calculs bien plus faciles dans R. La difficulté reste, comme toujours, de choisir le bon modèle.
218230

219231
```{r comm_noscore, echo=FALSE}
220232
question_text(

0 commit comments

Comments
 (0)