library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.4 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.2      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(moderndive)
df = data.frame(x = c(-3.64, -2.6, -2.1, 2.9, 4.2), y = c(-5.6, 22.6, -8.85, -4.1, 26)) %>% as_tibble()
df

1.

ggplot(df, aes(x, y)) +
  geom_point() + 
  geom_smooth(method = lm, se = FALSE)
## `geom_smooth()` using formula 'y ~ x'

2.

get_regression_table(lm(y~x, df))

y = 1.694 * x + 6.430

3.

df %>% mutate(error = y - (1.694 * x + 6.430)) -> df
df

4.

df %>% summarise(MSE = mean(error**2))

5.

df %>% arrange(desc(abs(error)))

6.

x = 8
1.694 * x + 6.430
## [1] 19.982

7.

pnorm(10, mean = 8, sd = 5, lower.tail = TRUE, log.p = FALSE)
## [1] 0.6554217

8.

pnorm(7, mean = 8, sd = 5, lower.tail = FALSE, log.p = FALSE)
## [1] 0.5792597

9.

qnorm(0.75, mean = 8, sd = 5, lower.tail = TRUE, log.p = FALSE)
## [1] 11.37245

10.

qnorm(0.4, mean = 8, sd = 5, lower.tail = FALSE, log.p = FALSE)
## [1] 9.266736

11.

dnorm(9, mean = 8, sd = 5, log = FALSE)
## [1] 0.07820854

12.

dnorm(6, mean = 8, sd = 5, log = FALSE)
## [1] 0.07365403

13.

g <- function(x, mean, sd) dnorm(x, mean = mean, sd = sd)
g(6, 8, 5)
## [1] 0.07365403