Skip to content

Commit ade597a

Browse files
add new tutorial sdd2.02a
1 parent 4776ea7 commit ade597a

File tree

5 files changed

+184
-34
lines changed

5 files changed

+184
-34
lines changed

inst/tutorials/02a_reg_multi/reg_lin_multi.Rmd

Lines changed: 95 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ output:
55
learnr::tutorial
66
tutorial:
77
id: "sdd2.02a"
8-
version: 0.1.0
8+
version: 1.0.0
99
runtime: shiny_prerendered
1010
---
1111

@@ -152,8 +152,8 @@ quiz(
152152
allow_retry = TRUE, random_answer_order = TRUE
153153
),
154154
question(text = "Quelle est la valeur de la pente ?",
155-
answer(sprintf("%.2f", 0), correct = TRUE),
156-
answer(sprintf("%.2f", lm_lin_result$estimate[1])),
155+
answer(sprintf("%.2f", 0)),
156+
answer(sprintf("%.2f", lm_lin_result$estimate[1]), correct = TRUE),
157157
answer(sprintf("%.2f", lm_lin_param$BIC[1])),
158158
answer(sprintf("%.2f", lm_lin_param$AIC[1])),
159159
answer(sprintf("%.2f", lm_lin_param$r.squared[1])),
@@ -176,39 +176,106 @@ quiz(
176176
# edition de l'exercice
177177
set.seed(42)
178178
179+
vec <- seq(from = 1, to = 15, by = .2)
180+
x <- vec + rnorm(sd = 3, n = length(vec))
179181
180-
a <- seq(from = 100, to = 500)
181-
random <- rnorm(n = length(a), sd = 50)
182-
x <- a + random
183-
x0 <- x + rnorm(n = length(x))
184-
x1 <- 1/x
185-
x2 <- log(x)
186-
x3 <- exp(x)
187-
x4 <- sin(x)
188-
x5 <- cos(x)
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+
}
190+
191+
df2 <- tibble::tibble(
192+
x = x,
193+
x0 = reg_lin_rand(x = x, a = 1.26, b = 2, random = 3.5),
194+
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))
200+
201+
202+
lm_mult <- lm(data = df2, formula = y ~ x + x1 )
203+
lm_mult_coef <- broom::tidy(lm_mult)
204+
lm_mult_param <- broom::glance(lm_mult)
205+
```
189206

190-
df <- tibble::tibble(x, x0, x1, x2, x3, x4, x5)
207+
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`
191208

192-
plot(df)
193-
corrplot::corrplot(cor(df,
194-
use = "pairwise.complete.obs"), method = "ellipse")
209+
```{r regmulti-prep}
210+
# edition de l'exercice
211+
set.seed(42)
195212
196-
corrplot::corrplot(cor(df,
197-
use = "pairwise.complete.obs", method = "spearman"), method = "ellipse")
213+
vec <- seq(from = 1, to = 15, by = .2)
214+
x <- vec + rnorm(sd = 3, n = length(vec))
198215
199-
mod_poly2 <- function(x1, alpha1, alpha2, intercept, random_effect){
200-
y <- intercept + (alpha1 * x1) + (alpha2 * (x1^2))
201-
y + rnorm(n = length(x1), sd = random_effect)
216+
reg_lin_rand <- function(x, a, b, random = 0.5){
217+
y <- (a*x) + b + rnorm(sd=random, n = length(x))
218+
y
219+
}
220+
reg_mutli3_rand <- function(x1, a1, x2, a2, x3, a3, b, random = 5){
221+
y <- a1*x1 + a2*x2 + a3*x3 + b + rnorm(sd=random, n = length(x1))
222+
y
202223
}
203224
204-
df <- tibble(
205-
x = x1,
206-
y = mod_poly2(x1 = x1, alpha1 = 2, alpha2 = 2.5, intercept = 55, random_effect = 10)
207-
)
225+
df2 <- tibble::tibble(
226+
x = x,
227+
x0 = reg_lin_rand(x = x, a = 1.26, b = 2, random = 3.5),
228+
x1 = reg_lin_rand(x = x, a = 1.5, b = 1, random = 10),
229+
y = reg_mutli3_rand(x1 = x,
230+
x2 = x0,
231+
x3 = x1,
232+
a1 = 0.2, a2 = 0.3, a3 = 1.1,
233+
b = 2))
234+
```
235+
236+
```{r regmulti, exercise = TRUE, exercise.setup = "regmulti-prep"}
237+
# résumé des données
238+
df2
239+
#
240+
```
208241

209-
lm_poly <- lm(df, formula = y ~ x + I(x^2))
210-
lm_poly_coef <- broom::tidy(lm_poly)
211-
lm_poly_param <- broom::glance(lm_poly)
242+
```{r regmulti-hint-1}
243+
# Snippet
244+
summary(lm. <- lm(data = DF, FORMULA))
245+
```
246+
247+
```{r regmulti-hint-2}
248+
summary(lm. <- lm(data = DF, formula = Y ~ VAR1 + VAR2))
249+
```
250+
251+
```{r regmulti-solution}
252+
summary(lm. <- lm(data = df2, formula = y ~ x + x1))
253+
```
254+
255+
```{r regmulti-check}
256+
#TODO
257+
```
258+
259+
Suite à votre analyse répondez aux questions suivantes :
260+
261+
```{r qu_regmulti}
262+
quiz(
263+
question(text = "Quelle est la valeur de l'ordonnée à l'origine ?",
264+
answer(sprintf("%.2f", lm_mult_coef$estimate[1]), correct = TRUE),
265+
answer(sprintf("%.2f", lm_mult_coef$estimate[2])),
266+
answer(sprintf("%.2f", lm_mult_coef$p.value[1])),
267+
answer(sprintf("%.2f", lm_mult_param$AIC[1])),
268+
answer(sprintf("%.2f", lm_mult_param$r.squared[1])),
269+
allow_retry = TRUE, random_answer_order = TRUE
270+
),
271+
question(text = "Quelle est la fraction de la variance exprimée par la régression linéaire ?",
272+
answer(sprintf("%.3f", lm_mult_param$adj.r.squared), correct = TRUE),
273+
answer(sprintf("%.3f", lm_mult_param$r.squared)),
274+
answer(sprintf("%.3f", lm_mult_param$df)),
275+
answer(sprintf("%.3f", lm_mult_coef$estimate[1])),
276+
allow_retry = TRUE, random_answer_order = TRUE
277+
)
278+
)
212279
```
213280

214281
## Conclusion

inst/tutorials/02a_reg_multi/reg_lin_multi.html

Lines changed: 89 additions & 6 deletions
Large diffs are not rendered by default.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)