Skip to content

Commit 61dcae3

Browse files
committed
Correction of one quiz in B02La_reg_multi
1 parent 7112475 commit 61dcae3

File tree

5 files changed

+89
-84
lines changed

5 files changed

+89
-84
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: 2021.0.0
2+
Version: 2021.0.2
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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# BioDataScience2 News
22

3+
## Changes in version 2021.0.2
4+
5+
- Correction of one quiz that had several answers set to `NA` in `B02La_reg_multi`.
6+
7+
## Changes in version 2021.0.1
8+
9+
- Minor change in the template for an exercise in `B01Lb_reglin1`: it was not clear that `plot(correlation(....))` should be used because the template was just `correlation(....)`. Students had to look at hints to understand that.
10+
311
## Changes in version 2021.0.0
412

513
- Start of 2021 series.

inst/tutorials/B01Lb_reglin1/B01Lb_reglin1.Rmd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD II Module1** Régression linéaire simple."
55
tutorial:
66
id: "B01Lb_reglin1"
7-
version: 2.1.1/10
7+
version: 2.1.2/10
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -168,7 +168,7 @@ plot(correlation(df[, 2:4], use = "complete.obs", method = "pearson"), type = "u
168168
```
169169

170170
```{r corr3_h3, exercise=TRUE, exercise.lines=2, exercise.setup="correlation-prep"}
171-
correlation(___[,___:___], use = ___, method = ___)
171+
___(correlation(___[,___:___], use = ___, method = ___), ___ = ___)
172172
```
173173

174174
```{r corr3_h3-hint-1}
@@ -280,12 +280,12 @@ quiz(
280280
answer(sprintf("%.2f", lm_result$statistic[2])),
281281
answer(sprintf("%.2f", lm_param$r.squared[1])),
282282
allow_retry = TRUE, random_answer_order = TRUE),
283-
question(text = "Est ce que la valeur de l'ordonnée à l'origne est significativement différente de zéro ?",
283+
question(text = "Est ce que la valeur de l'ordonnée à l'origne est significativement différente de zéro au seuil alpha de 5% ?",
284284
answer("oui", correct = TRUE),
285285
answer("non"),
286286
allow_retry = TRUE),
287287
question(
288-
text = "Est ce que la valeur de la pente est significativement différente de zéro ?",
288+
text = "Est ce que la valeur de la pente est significativement différente de zéro au seuil alpha de 5% ?",
289289
answer("oui", correct = TRUE),
290290
answer("non"),
291291
allow_retry = TRUE)

inst/tutorials/B02La_reg_multi/B02La_reg_multi.Rmd

Lines changed: 73 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD II Module 2** Régression linéaire multiple."
55
tutorial:
66
id: "B02La_reg_multi"
7-
version: 2.2.0/7
7+
version: 2.2.1/7
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -29,56 +29,59 @@ BioDataScience2::learnr_server(input, output, session)
2929

3030
## Objectifs
3131

32-
- Savoir lire la sortie renvoyée par `summary()` lorsqu'il est appliqué à un objet `lm`.
32+
- Être capable de lire la sortie renvoyée par `summary()` lorsqu'il est appliqué à un objet `lm`.
3333
- Maîtriser la régression linéaire multiple dans R avec la fonction `lm()`.
3434

3535
## Régression linéaire
3636

3737
Réalisez une régression linéaire simple sur le jeu de données `df1` de la variable `y` en fonction de la variable `x`.
3838

3939
```{r reglin-init}
40-
# edition de l'exercice
40+
# Edition de l'exercice
4141
set.seed(42)
4242
43-
reg_lin <- function(x, a, b){
44-
y <- a*x + b
45-
y
46-
}
43+
reg_lin <- function(x, a, b)
44+
a * x + b
4745
48-
vec1 <- seq(from = 5, to = 20, by = 0.25)
49-
vec2 <- vec1 + rnorm(sd=0.5, n = length(vec1))
46+
v1 <- seq(from = 5, to = 20, by = 0.25)
47+
n_v1 <- length(v1)
48+
v2 <- v1 + rnorm(sd = 0.5, n = n_v1)
5049
5150
df1 <- tibble(
52-
x = vec2,
53-
y = reg_lin(vec2, 0.5, 0) + rnorm(sd=0.5, n = length(vec1)))
51+
x = v2,
52+
y = reg_lin(v2, 0.5, 0.001) + rnorm(sd = 0.5, n = n_v1)
53+
)
5454
55-
lm_lin <- lm(df1, formula = y ~ x - 1)
55+
lm_lin <- lm(data = df1, y ~ x)
5656
lm_lin_param <- broom::glance(lm_lin)
5757
lm_lin_result <- broom::tidy(lm_lin)
5858
```
5959

60-
Vous avez à votre disposition le graphique suivant pour visualiser les données.
60+
Vous avez à votre disposition le graphique suivant pour visualiser les données\ :
6161

6262
```{r}
63-
chart(df1, formula= y ~ x) +
63+
chart(data = df1, y ~ x) +
6464
geom_point()
6565
```
6666

6767
```{r reglin-prep}
68-
# edition de l'exercice
68+
# Edition de l'exercice
6969
set.seed(42)
7070
71-
reg_lin <- function(x, a, b){
72-
y <- a*x + b
73-
y
74-
}
71+
reg_lin <- function(x, a, b)
72+
a * x + b
7573
76-
vec1 <- seq(from = 5, to = 20, by = 0.25)
77-
vec2 <- vec1 + rnorm(sd=0.5, n = length(vec1))
74+
v1 <- seq(from = 5, to = 20, by = 0.25)
75+
n_v1 <- length(v1)
76+
v2 <- v1 + rnorm(sd = 0.5, n = n_v1)
7877
7978
df1 <- tibble(
80-
x = vec2,
81-
y = reg_lin(vec2, 0.5, 0) + rnorm(sd=0.5, n = length(vec1)))
79+
x = v2,
80+
y = reg_lin(v2, 0.5, 0.001) + rnorm(sd = 0.5, n = n_v1)
81+
)
82+
lm_lin <- lm(data = df1, y ~ x)
83+
lm_lin_param <- broom::glance(lm_lin)
84+
lm_lin_result <- broom::tidy(lm_lin)
8285
```
8386

8487
💬 **Un snippet peut vous aider à réaliser cet exercice.**
@@ -89,78 +92,73 @@ summary(lm. <- lm(data = ___, ___ ~ ___))
8992

9093
```{r reglin_h2-hint}
9194
summary(lm. <- lm(data = DF, FORMULA))
95+
9296
#### ATTENTION: Hint suivant = solution !####
9397
```
9498

9599
```{r reglin_h2-solution}
96100
## Solution ##
97-
summary(lm. <- lm(data = df1, y ~ x + 0))
101+
summary(lm. <- lm(data = df1, y ~ x))
98102
```
99103

100104
```{r reglin_h2-check}
101-
grade_code("Vous avez réalisé votre premier modèle linéaire.")
105+
grade_code("D'accord, on a maintenant un modèle linéaire simple comme point de départ.")
102106
```
103107

104-
Suite à votre analyse répondez aux questions suivantes :
108+
Suite à votre analyse répondez aux questions suivantes\ :
105109

106110
```{r qu_reglin}
107111
quiz(
108112
question(text = "Quelle est la valeur de l'ordonnée à l'origine ?",
109-
answer(sprintf("%.2f", 0), correct = TRUE),
110-
answer(sprintf("%.2f", lm_lin_result$estimate[1])),
113+
answer(sprintf("%.2f", lm_lin_result$estimate[1]), correct = TRUE),
114+
answer(sprintf("%.2f", 0)),
111115
answer(sprintf("%.2f", lm_lin_param$sigma[1])),
112-
answer(sprintf("%.2f", lm_lin_param$AIC[1])),
116+
answer(sprintf("%.2f", lm_lin_result$estimate[2])),
113117
answer(sprintf("%.2f", lm_lin_param$r.squared[1])),
114118
allow_retry = TRUE, random_answer_order = TRUE
115-
),
119+
),
116120
question(text = "Quelle est la valeur de la pente ?",
117121
answer(sprintf("%.2f", 0)),
118-
answer(sprintf("%.2f", lm_lin_result$estimate[1]), correct = TRUE),
122+
answer(sprintf("%.2f", lm_lin_result$estimate[2]), correct = TRUE),
119123
answer(sprintf("%.2f", lm_lin_param$BIC[1])),
120-
answer(sprintf("%.2f", lm_lin_param$AIC[1])),
124+
answer(sprintf("%.2f", lm_lin_result$estimate[1])),
121125
answer(sprintf("%.2f", lm_lin_param$r.squared[1])),
122126
allow_retry = TRUE, random_answer_order = TRUE
123-
),
127+
),
124128
question(text = "Quelle est la fraction de la variance exprimée par la régression linéaire ?",
125129
answer(sprintf("%.3f", lm_lin_param$r.squared), correct = TRUE),
126130
answer(sprintf("%.3f", lm_lin_param$statistic)),
127-
answer(sprintf("%.3f", lm_lin_param$df)),
131+
answer(sprintf("%.3f", as.numeric(lm_lin_param$df))),
128132
answer(sprintf("%.3f", lm_lin_result$estimate[1])),
129133
allow_retry = TRUE, random_answer_order = TRUE
130-
)
134+
)
131135
)
132136
```
133137

134138
## Régression linéaire multiple
135139

136140
```{r regmulti-init}
137-
# edition de l'exercice
138-
set.seed(42)
141+
# Edition de l'exercice
142+
set.seed(381)
139143
140-
vec <- seq(from = 1, to = 15, by = .2)
141-
x <- vec + rnorm(sd = 3, n = length(vec))
144+
v <- seq(from = 1, to = 15, by = .2)
145+
n_v <- length(v)
146+
x <- v + rnorm(sd = 3, n = n_v)
142147
143-
reg_lin_rand <- function(x, a, b, random = 0.5){
144-
y <- (a*x) + b + rnorm(sd=random, n = length(x))
145-
y
146-
}
147-
reg_mutli3_rand <- function(x1, a1, x2, a2, x3, a3, b, random = 5){
148-
y <- a1*x1 + a2*x2 + a3*x3 + b + rnorm(sd=random, n = length(x1))
149-
y
150-
}
148+
reg_lin_rand <- function(x, a, b, random = 0.5)
149+
a * x + b + rnorm(sd = random, n = n_v)
150+
151+
reg_mutli3_rand <- function(x1, a1, x2, a2, x3, a3, b, random = 5)
152+
a1 * x1 + a2 * x2 + a3 * x3 + b + rnorm(sd = random, n = length(x1))
151153
152154
df2 <- tibble::tibble(
153155
x = x,
154156
x0 = reg_lin_rand(x = x, a = 1.26, b = 2, random = 3.5),
155157
x1 = reg_lin_rand(x = x, a = 1.5, b = 1, random = 10),
156-
y = reg_mutli3_rand(x1 = x,
157-
x2 = x0,
158-
x3 = x1,
159-
a1 = 0.2, a2 = 0.3, a3 = 1.1,
160-
b = 2))
161-
158+
y = reg_mutli3_rand(x1 = x, x2 = x0, x3 = x1,
159+
a1 = 0.2, a2 = 0.3, a3 = 1.1, b = 2))
162160
163-
lm_mult <- lm(data = df2, formula = y ~ x + x1 )
161+
lm_mult <- lm(data = df2, y ~ x + x1)
164162
lm_mult_coef <- broom::tidy(lm_mult)
165163
lm_mult_param <- broom::glance(lm_mult)
166164
```
@@ -173,30 +171,29 @@ summary(df2)
173171
Réalisez une régression linéaire simple sur le jeu de données `df2` de la variable `y` en fonction de la variable `x` et `x1`.
174172

175173
```{r regmulti-prep}
176-
# edition de l'exercice
177-
set.seed(42)
174+
# Edition de l'exercice
175+
set.seed(381)
178176
179-
vec <- seq(from = 1, to = 15, by = .2)
180-
x <- vec + rnorm(sd = 3, n = length(vec))
177+
v <- seq(from = 1, to = 15, by = .2)
178+
n_v <- length(v)
179+
x <- v + rnorm(sd = 3, n = n_v)
181180
182-
reg_lin_rand <- function(x, a, b, random = 0.5){
183-
y <- (a*x) + b + rnorm(sd=random, n = length(x))
184-
y
185-
}
186-
reg_mutli3_rand <- function(x1, a1, x2, a2, x3, a3, b, random = 5){
187-
y <- a1*x1 + a2*x2 + a3*x3 + b + rnorm(sd=random, n = length(x1))
188-
y
189-
}
181+
reg_lin_rand <- function(x, a, b, random = 0.5)
182+
a * x + b + rnorm(sd = random, n = n_v)
183+
184+
reg_mutli3_rand <- function(x1, a1, x2, a2, x3, a3, b, random = 5)
185+
a1 * x1 + a2 * x2 + a3 * x3 + b + rnorm(sd = random, n = length(x1))
190186
191187
df2 <- tibble::tibble(
192188
x = x,
193189
x0 = reg_lin_rand(x = x, a = 1.26, b = 2, random = 3.5),
194190
x1 = reg_lin_rand(x = x, a = 1.5, b = 1, random = 10),
195-
y = reg_mutli3_rand(x1 = x,
196-
x2 = x0,
197-
x3 = x1,
198-
a1 = 0.2, a2 = 0.3, a3 = 1.1,
199-
b = 2))
191+
y = reg_mutli3_rand(x1 = x, x2 = x0, x3 = x1,
192+
a1 = 0.2, a2 = 0.3, a3 = 1.1, b = 2))
193+
194+
lm_mult <- lm(data = df2, y ~ x + x1)
195+
lm_mult_coef <- broom::tidy(lm_mult)
196+
lm_mult_param <- broom::glance(lm_mult)
200197
```
201198

202199
💬 **Un snippet peut vous aider à réaliser cet exercice.**
@@ -216,10 +213,10 @@ summary(lm. <- lm(data = df2, y ~ x + x1))
216213
```
217214

218215
```{r regmulti_h2-check}
219-
grade_code("Vous venez de réaliser votre première régression linéaire multiple. Elles n'auront bientôt plus de secret pour vous !")
216+
grade_code("Vous venez de réaliser votre première régression linéaire multiple. Elles n'auront bientôt plus de secrets pour vous !")
220217
```
221218

222-
Suite à votre analyse répondez aux questions suivantes :
219+
Suite à votre analyse répondez aux questions suivantes\ :
223220

224221
```{r qu_regmulti}
225222
quiz(
@@ -230,20 +227,20 @@ quiz(
230227
answer(sprintf("%.2f", lm_mult_param$AIC[1])),
231228
answer(sprintf("%.2f", lm_mult_param$r.squared[1])),
232229
allow_retry = TRUE, random_answer_order = TRUE
233-
),
230+
),
234231
question(text = "Quelle est la fraction de la variance exprimée par la régression linéaire ?",
235232
answer(sprintf("%.3f", lm_mult_param$adj.r.squared), correct = TRUE),
236233
answer(sprintf("%.3f", lm_mult_param$r.squared)),
237234
answer(sprintf("%.3f", lm_mult_param$df)),
238235
answer(sprintf("%.3f", lm_mult_coef$estimate[1])),
239236
allow_retry = TRUE, random_answer_order = TRUE
240-
)
237+
)
241238
)
242239
```
243240

244241
## Conclusion
245242

246-
Vous venez de terminer votre séance d'exercices.
243+
Vous venez de terminer votre séance d'exercices relive à la régression multiple.
247244

248245
```{r comm_noscore, echo=FALSE}
249246
question_text(

inst/tutorials/B02Lb_reg_poly/B02Lb_reg_poly.Rmd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ quiz(
137137
answer(sprintf("%.2f", lm_poly_param$r.squared[1])),
138138
allow_retry = TRUE, random_answer_order = TRUE
139139
),
140-
question(text = "Quelle est la valeur de **x** ?",
140+
question(text = "Quelle est la valeur du paramètre associé à **x** ?",
141141
answer(sprintf("%.2f", lm_poly_coef$estimate[1])),
142142
answer(sprintf("%.2f", lm_poly_coef$estimate[2]), correct = TRUE),
143143
answer(sprintf("%.2f", lm_poly_coef$std.error[1])),
@@ -270,14 +270,14 @@ quiz(
270270
question(text = "Quelle est la valeur du critère d'Akaike de la régression polynomiale ?",
271271
answer(sprintf("%.2f", lm_lp_param$AIC), correct = TRUE),
272272
answer(sprintf("%.2f", lm_lp_param$BIC)),
273-
answer(sprintf("%.2f", lm_lp_param$sigma)),
273+
answer(sprintf("%.2f", lm_ls_param$AIC)),
274274
answer(sprintf("%.2f", lm_lp_param$deviance)),
275275
allow_retry = TRUE, random_answer_order = TRUE
276276
),
277277
question(text = "Quelle est la valeur du critère d'Akaike de la régression linéaire simple ?",
278278
answer(sprintf("%.2f", lm_ls_param$AIC), correct = TRUE),
279279
answer(sprintf("%.2f", lm_ls_param$BIC)),
280-
answer(sprintf("%.2f", lm_ls_param$sigma)),
280+
answer(sprintf("%.2f", lm_lp_param$AIC)),
281281
answer(sprintf("%.2f", lm_ls_param$deviance)),
282282
allow_retry = TRUE, random_answer_order = TRUE
283283
),

0 commit comments

Comments
 (0)