---
title: "PUFF2"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```


# Opgave 1

```{r}
1-pnorm(185, mean=179.1, sd=6.6)
pnorm(171, mean=179.1, sd=6.6)
pnorm(185, mean=179.1, sd=6.6) - pnorm(175, mean=179.1, sd=6.6)
qnorm(.025, mean=179.1, sd=6.6)
qnorm(.975, mean=179.1, sd=6.6)
```

# Opgave 2

```{r}
pnorm(1, mean=0, sd=1) - pnorm(-1, mean=0, sd=1)
pnorm(2, mean=0, sd=1) - pnorm(-2, mean=0, sd=1)
pnorm(3, mean=0, sd=1) - pnorm(-3, mean=0, sd=1)

```


# Opgave 3

p-værdien er større end det valgte signifikansniveau, så man forkaster ikke sin hypotese. Med andre ord kan man ikke afvise, at gruppernes gennemsnit er ens.



# Opgave 4

## Indlæs data

```{r}
fev <- read.csv(url("http://biostatistics.dk/puff/data/fev.csv"), header=TRUE)
head(fev)

library("tidyverse")
```


## Tabel 1

```{r}
hist(fev$Age)
mean(fev$Age)
sd(fev$Age)
hist(fev$Ht)

plot(FEV ~ Age, data=fev)
plot(fev$Age, fev$FEV)

```


## Analyse

```{r}
m1 <- lm(FEV ~ Age, data=fev)
m1
summary(m1)

library("broom")
m1 %>% tidy()

confint(m1)

```

Vi er 95% sikre på, at intervallet fra [0.207 ; 0.237] indeholder den sande værdi for hældningen i populationen.

FEV = 0*age + skæring + støj
      a*age + b + epsilon

For Age er hypotesen, at parameteren hørende til Age er 0
Her er p-værdien 0 < 0.05 dvs vi forkaster vores hypotese

For intercept er hypotesen at b=0, dvs at skæringen er = 0, dvs den rette linje går gennem (0,0)

p = 0 < 0.05 så vi forkaster også denne hypotese



Samlet analyse:


Vi er 95% sikre på, at intervallet fra [0.207 ; 0.237] indeholder den sande værdi for hældningen i populationen. Denne værdi kan ikke være 0, så der er en sammenhæng mellem alder og lungekapacitet (p=0).


Vi er 95% sikre på, at intervallet fra [0.28 ; 0.58] indeholder den sande værdi for skæringen i populationen. Denne værdi kan ikke være 0, så den rette linje går ikke gennem (0,0) (p=0).


```{r}
m2 <- lm(FEV ~ Age + Ht, data=fev)
m2 %>% tidy()
```


# Opgave 5

```{r}
load(url("http://biostatistics.dk/puff/data/amhmini.rda"))
```

Data indeholder to numeriske variable, `alder` og `amh`. Vi er interesseret i at modellere `amh` som funktion af alderen.

Først tegner vi data for at se den umiddelbare sammenhæng.

```{r}
plot(amh ~ alder, data=amh)
```

Den lineære sammenhæng er ikke meget tydelig, men det kunne godt se ud som om, at der er et lille (lineært) fald. Det er måske mere bekymrende, at det ikke ser ud til, at fejlledene, $\epsilon_i$, lader til at være symmetrisk fordelte: Der er nogle få høje værdier af `amh` for alle aldre, men de fleste ligger nede omkring 20.

Dette kunne tyde på at man kunne transformere data - fx ved hjælp af logaritmen - for at høre afvigelserne i støjen mere symmetrisk. Lad os prøve at se på sammenhængen, hvis vi logaritmetransformerer udfaldet `amh`:

```{r}
plot(log(amh) ~ alder, data=amh)
```

Nu ser fejlledene mere symmetrisk fordelte ud, og hvis vi skal lave en analyse med normalfordelte fejl giver det mest mening at gøre det på logaritmeskala.

Opstiller nu den lineære regressionsmodel - på logaritmeskala:

```{r}
model1 <- lm(log(amh) ~ alder, data=amh)
library("broom")
model1 %>% tidy()
```

Her er hændningen og skæringen (begge på logaritmeskala) henholdsvis -0.0653 og 5.02. Vi kan tegne denne linje ind i plottet for at se, hvor godt modellen passer.

```{r}
plot(log(amh) ~ alder, data=amh)
abline(5.02, -0.0653, col="red", lwd=3)
```

Linjen ser ud til at fange sammenhængen i de transformerede data ret fint, og vi har derfor umiddelbart tiltro til vores model og kan bruge resultaterne fra den. Det betyder blandt andet, at vores bedste bud på effekten er, at når alderen stiger med 1 år så vil logaritmen til amh i gennemsnit falde med 0.0653.

Hvis vi vil teste hypotesen om ingen sammenhæng mellem alder og amh så kan vi aflæse p-værdien direkte af analysen ovenfor og finder at p=0. Hvis der *ikke* var nogen sammenhæng mellem de to variable ville det derfor være ret usandsynligt at se data med en sammenhæng som den vi har i vores datasæt.

Konfidensintervallet for hældningen (stadig på logaritmeskala) kan udregnes ved brug af `confint()`

```{r}
confint(model1)
```

Dette fortæller os, at vi er 95% sikre på, at intervallet [ -0.078 ; -0.052 ] indeholder den sande hældningen (på logaritmeskala) i hele populationen. Nul er klart ikke med i konfidensintervallet svarende til resultatet af vores hypotesetest ovenfor.

Det er de færreste mennesker, der er fortrolige med at tale om resultater på logaritmeskala, så det kunne være interessant at tilbagetransformere til den almindelige skala. Eksponentialfunktionen er den inverse funktion til logaritmefunktionen (husk at i `R` svarer `log()` til den naturlige logaritme), så vi kan tilbagetransformere resultaterne ved brug af denne.

Den overordnede effekt var

```{r}
exp(-0.0653)
```

Det betyder, at på den oprindelige skala så vil amh falde med $1-0.9397$ = 6.3% for hvert år. Bemærk, at når man tilbagetransformere en logaritmetransformeret variabel, så bliver fortolkningen en procentvis ændring og ikke en direkte ændring.

For hvert ekstra år falder `amh` altså med ca. 6.3 %


Vi kan også tilbagetransformere konfidensintervallet direkte

```{r}
exp(confint(model1))
```

Her ses det, at vi er 95% sikre på, at intervallet [1- 0.925 ; 1- 0.949] = [0.051 ; 0.075 ] indeholder det sande procentvise fald i amh i populationen.  
