library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

1

kja <- read.csv2("https://ahj.hi.is/alcho.txt", dec = ".")

2

ggplot(kja, aes(x = thyngd, y = alk)) +
  geom_point() +
  labs(
    x = "Þyngd",
    y = "Alkóhólmagn í blóði",
    title = "Samband alkóhólmagns og þyngdar"
  )

3

mod_kja <- lm(alk ~ thyngd, data = kja)
summary(mod_kja)
## 
## Call:
## lm(formula = alk ~ thyngd, data = kja)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.084980 -0.019232 -0.002216  0.025316  0.079558 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.3714600  0.0612195   6.068 1.05e-07 ***
## thyngd      -0.0021149  0.0008152  -2.594    0.012 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03245 on 58 degrees of freedom
## Multiple R-squared:  0.104,  Adjusted R-squared:  0.08852 
## F-statistic:  6.73 on 1 and 58 DF,  p-value: 0.01199

Matið á skurðpunkti línunnar er 0.37146 og matið á hallatölunni er -0.0021149. Það þýðir að metna aðhvarfslínan er = 0.37146 + -0.00211 thyngd.

Hallatalan er neikvæð, sem bendir til þess að eftir því sem þyngd eykst lækkar spáð alkóhólmagn í blóði samkvæmt líkaninu.

4

ggplot(kja, aes(x = thyngd, y = alk)) +
  geom_point() +
  geom_smooth(method = "lm") +
  labs(
    x = "Þyngd",
    y = "Alkóhólmagn í blóði",
    title = "Samband alkóhólmagns og þyngdar með aðhvarfslínu"
  )
## `geom_smooth()` using formula = 'y ~ x'

5

ggplot(data.frame(leifar = residuals(mod_kja)), aes(sample = leifar)) +
  stat_qq() +
  stat_qq_line() +
  labs(title = "Normaldreifingarit leifa")

6

nyr_einstaklingur <- data.frame(thyngd = 60)

predict(mod_kja, newdata = nyr_einstaklingur,
        interval = "prediction", level = 0.95)
##         fit       lwr       upr
## 1 0.2445672 0.1746904 0.3144439