### Priklad 1
"TO-DO" # nacteni dat mlrm-fat.txt
"TO-DO" # odstraneni odlehleho pozorovani 36 a promenne BMI, se kterou nepracujeme

## vektor vyberovych prumeru
colMeans(data)

## vyberova variancni matice - fce var()
var("TO-DO")

## overeni predpokladu vicerozmerneho normalniho rozdeleni
# Mardiuv test
MVN::mvn(data, mvnTest = "mardia", multivariatePlot = "qq")$multivariateNormality

# Henzeuv - Zirkleruv test
"TO-DO"

## jina varianta vypoctu
mvnTest::HZ.test(data)


## jednovyberovy Hotellinguv test
# testujeme hypotezu, ze vektor strednich hodnot je roven zadanemu vektoru
# pouzivame fci HotellingsT2 z knihovny ICSNP
mu0 <- "TO-DO"
ICSNP::HotellingsT2(data, mu = mu0)

## jednorozmerne t-testy
# Nejprve spocteme Bonferroniho korigovanou hladinu vyznamnosti: Pro jednotlive
# testy podelime hladinu vyznamnosti poctem testovanych hypotez, tj.
alpha.korig <- 0.05 / 6

# Nyni pomoci funkce t.test() provedeme samotne testy.
# pohlidejte si, at promenne priradite vzdy adekvatni hodnotu mu0
t.test(data$body.W, mu = mu0[1])
"TO-DO" # t-testy pro ostatni promenne


### Priklad 2
"TO-DO" # nacteni dat d2d4.txt
"TO-DO" # odstraneni sloupce id, se kterym dale nepracujeme
zeny <- "TO-DO"
muzi <- "TO-DO"

## vektor vyber. prumeru a variancni matice zvlast pro muze a zeny
colMeans(zeny[, 2:3])
var(zeny[, 2:3]) # lze pouzit i funkci cov()
"TO-DO" # totez pro muze

## overeni normality
# ve fci mvn lze zadat faktor pohlavi pomoci subset
par(mfrow = c(1, 2))
MVN::mvn(d2d4,
  subset = "sex", mvnTest = "mardia",
  multivariatePlot = "qq"
)$multivariateNormality

"TO-DO" # Henze - Zirkleruv test

# Pokud bychom pouzili funkci HZ.test(), museli bychom kazdou skupinu testovat zvlast:


## predpoklad rovnosti variancnich matic - Boxuv M test
# faktor pohlavi nastavujeme argumentem grouping
library(biotools)
boxM(d2d4[, 2:3], grouping = d2d4$sex)

## dvouvyberovy Hotellinguv test
ICSNP::HotellingsT2(zeny[, 2:3], muzi[, 2:3])


## simultanni testy
n1 <- "TO-DO" # pocet zen
n2 <- "TO-DO" # pocet muzu
n <- n1 + n2 # Celkovy pocet jedincu
k <- "TO-DO" # Pocet numerickych promennych

# vektory strednich hodnot (tj. prumery) pro muze a zeny
mu1 <- colMeans(zeny[, 2:3])
mu2 <- "TO-DO"

# vyberove rozptyly danych promennych
# ziskame jako diagonaly variancnich matic (funkce diag()).
var1 <- diag(cov(zeny[, 2:3]))
var2 <- "TO-DO"

# Dale postupujeme podle vzorce
var <- ((n1 - 1) * var1 + (n2 - 1) * var2) / (n - 2)
F.stat <- n1 * n2 * (n - k - 1) * (mu1 - mu2)^2 / (var * n * k * (n - 2))

# Vypocteme p-hodnotu pomoci funkce pf(). Argumentem je hodnota
# F-statistiky a dane stupne volnosti ("k" a "n-k-1").
p.hodnota <- 1 - pf(F.stat, k, n - k - 1)

# Prislusny kvantil:
kvantil <- qf(0.95, k, n - k - 1)

# Vsechny hodnoty umistime do tabulky a vypiseme si ji (volime
# zaokrouhleni na 4 des. mista).
tab <- round(rbind(F.stat, p.hodnota, kvantil), digits = 4)
rownames(tab) <- c("F", "p-hodnota", "kvantil")
tab
