Processing math: 1%

NMST539 | Cvičenie 2

Podmíněná a marginální rozdělení náhodných vektorov.

LS 2020/2021 | 09/03/21 | (online výuka)

zdrojový Rmd súbor (kódovanie UTF8)

Outline druhého cvičenia:

  • vlastne čísla v vlastné vektory matíc;
  • náhodné vektory, podmienené a marginálne rozdelenia;
  • mnohorozmerné normálne rozdelenie (R knižnica ‘mvtnorm’);

Cieľom druhého cvičenia z mnohorozmernej analýzy je zopakovať si niektoré dôležité a pre mnohorozmerné štatistické postupy podstatné znalosti týkajúce sa matíc a rozkladu matíc na vlastné vektory a vlastné čísla.

Stručne si pripomenieme niektoré základné vlastnosti náhodných vektorov. Uvedených bude niekoľko teoretických aj praktických príkladov na počítanie združených, marginálných a podmienených rozdeleni.

Štatisticky program R je k dispozícii (GNU public licence) na adrese https://www.r-project.org

RStudio (tzv. “user-friendly” interface - jeden z mnohých, ktoré na internete sú dostupné): RStudio.

Užitočné návody a manuály pre prácu s programom R:

  • Bína, V., Komárek, A. a Komárková, L.: Jak na jazyk R. (PDF súbor)
  • Komárek, A.: Základy práce s R. (PDF súbor)
  • Kulich, M.: Velmi stručný úvod do R. (PDF súbor)
  • De Vries, A. a Meys, J.: R for Dummies. (ISBN-13: 978-1119055808)


Odborná literatúra:
  • Hardle, W. and Simar.L.: Applied Multivariate Statistical Analysis. Springer, 201
  • Mardia, K., Kent, J., and Bibby, J.:Multivariate Analysis, Academic Press, 1979.




1. Vlastné čísla a vlastné vektory matice

Mohorozmerné štatistické metódy bývajú často založené na nejakej vhodnej dekompozícii (rozklade) buď matice dat (data frame, ktorý je obecne reprezentovaný maticou typu n×p), alebo teoretickej, či výberovej variančnej-kovariančnej matice (t.j. štvorcová a symetrická matica typu p×p). Najzákladnejším a zároveň najdôležitejsím z týchto rozkladov je tzv. spektrálný rozklad matice na vlastné čísla a vlastné vektory.

Nenulový vektor \boldsymbol{v} \in \mathbb{R}^p sa nazýva vlastným vektorom matice \boldsymbol{A} \in \mathbb{R}^{p \times p}, ak platí \boldsymbol{A}\boldsymbol{v} = \lambda \boldsymbol{v}, kde \lambda \in \mathbb{R} je skalár, ktorý nazývame vlastným číslom matice \boldsymbol{A}, prislúchajúcim vlastnému vektoru \boldsymbol{v} \in \mathbb{R}.


Samostatne


  • Pripomeňte a zopakujte si základné vlastnosti matíc, vlastných čísel a vlastných vektorov.
  • Pokúste sa pomocou programu R naprogramovať vlastnú funkciu, ktorá pre jednoduchú štvorcovú maticu typu 2 \times 2, alebo 3 \times 3 nájde príslušné vlastné vektory a vlastné čísla.
  • V programe R je pre spektrálny rozklad (t.j. nájdenie vlastných čísel a vlastných vektorov štvorcovej matice) definovaná funkcia eigen(). Pomocou helpu sa podívajte, ako je funkcia implementována a jej fungovanie si vyskúšajte na nejakých príkladoch.



2. Náhodné vektory (združené, marginálné, podmienené rozdelenie)

Mnohorozmerné štatistické motódy sú založené na teórii náhodných vektorov a náhodných matíc. V tejto časti si ukážeme niekoľko teoretických aj praktických príkladov. Pripomeňte si teoretické základy náhodných vektorov, definíciu náhodného vektoru a definíciu združeného, marginálneho a podmieňeného rozdelenia.

Teoretické a praktické príklady
(Prklad 1 a Príklad 2 jako samostatný úkol)

  1. Uvažujte rovnomerné dvojrozmerné rozdelenie náhodného vektoru (X,Y)^\top na množine M = \{(x, y) \in \mathbb{R}^2;~0 < x < y < 1\}.
  2. Nájdite združenú hustotu f_{(X,Y)}(x,y) náhodného vektoru (X, Y)^\top a príslušné marginálne rozdelenia (hustoty) f_X(x) a f_Y(y). Sú náhodné veličiny X a Y nezávislé?


  3. Pomocou výpočtov z predchádzajúceho príkladu vygenerujte v programe R dvojrozmerný náhodný výber (X_1, Y_1)^\top, \dots, (X_n, Y_n)^\top, ktorý bude pochádzať z dvojrozmerného náhodného rozdelenia s hustotou f_{(X,Y)}(x,y) (z predchádzajúceho príkladu). Vizuálne overte, že ste naozaj nagenerovali náhodný vyber s požadovaným rozdelením. Spočítajte základné výberové charakteristiky (výberové stredné hodnoty a výberovú variančnú-kovariančnú maticu). Intuitívný návod na vypracovanie je uvedený nižšie.

    Hint pre vypracovanie
    • Pre ľubovolnú náhodnú veličinu X s distribučnou funkciou F_{X}(x) máme z definície, že platí P[X \leq x] = F_{X}(x), pre všetky x \in \mathbb{R}. Ak je distribučná funkcia naviac absolútne spojitá, tak pre kvantilovú funkciu F_X^{-1}(x) platí, že je to inverzná funkcia k distribučnej funkcii F_{X}(x). To ale znamená, že pre náhodnú veličinu Z = F_X(X) platí (opäť z definície distribučnej funkcie), že P[Z \leq z] = P[F_X(X) \leq z] = P[X \leq F_X^{-1}(z)] = F_{X}\Big( F_X^{-1}(z)\Big) = z pre z z intervalu [0,1]. To ale znemaná, že náhodná veličina Z má rovnomerné rozdelenie na intervale [0,1].
      To by vpodstate malo stačiť k tomu, aby sme dokázali generovať náhodný výber viac-menej z ľubovolného rozdelenia. Nižšie je uvedený drobný príklad pre ilustráciu.

    • Ako jednoduchý príklad, uvažujme náhodnú veličinu X s rozdelením daným hustotou f(x) = 3 x^2 pre x \in (0,1) a f(x) = 0 jinak. Chceme pomocou programu R nagenerovať náhodný vyber z tohto rozdelenia (bez toho, aby sme si spomenuli, alebo využili fakt, že X má vlastne Beta rozdelenie s parametrami \alpha = 3 a \beta = 1). Distribučná funkcia náhodnej veličiny X je F(x) = x^3 pre x \in [0,1] (distribučná funkcia je nulová pre x < 0 a F(x) = 1 pre x > 1). Keďže distribučná funkcia je absolútne spojitá, môžeme kvantilovú funkciu F^{-1}(q), pre q \in [0,1], vyjadriť ako funkciu inverznú k F(x), t.j. F^{-1}(q) = \sqrt[3]{q}. pre q \in [0,1]. Samozrejme platí, že F^{-1}(0) = 0 a F^{-1}(1) = 1. Vieme, že náhodná veličina Z = F(X), kde F(x) = x^3 je distribučná funkcia náhodnej veličiny X, má rovnomerné rozdelenie na intervale [0,1]. Nagenerujeme preto najprv náhodný vyber Z_1, \dots, Z_n z rovnomerného rozdelenia na intervale [0,1].

      n <- 1000
      set.seed(1234)
      
      Z <- runif(n)
      par(mfrow = c(1,2))
      plot(ecdf(Z))
      hist(Z, col = "gray", breaks = ceiling(sqrt(n)))

      Následne pomocou spojitej transformácie X_i = F^{-1}(Z_i) dostaneme náhodné veličiny, ktoré už majú požadované rozdelenie definované distribučnou funkciou F_X(x), resp. hustotou f(x).

      X <- Z^(1/3)
      xSeq <- seq(0,1, length = 1000)
      par(mfrow = c(1,2))
      plot(ecdf(X))
      lines(xSeq^3 ~ xSeq, col = "red", lty = 2, lwd = 2)
      legend("topleft", legend = c("Empirická d.f.", "Teoretická d.f."), col = c("black", "red"), lty = c(1,2), lwd = c(2,2))
      hist(X, freq = F, col = "gray", breaks = ceiling(sqrt(n)))
      lines(3 * xSeq^2 ~ xSeq, col = "red", lty = 2, lwd = 2)
      legend("topleft", legend = c("Empirická hustota", "Teoretická hustota"), col = c("black", "red"), lty = c(1,2), lwd = c(2,2))
    • Vyskúšajte predchádzajúci príklad pre väčší rozsah náhodného výberu n \in \mathbb{N} a empiricky overte, že uvedený postup naozaj dáva správne/požadované rodelenie. Počet binov v histograme je možné pre lepšíu aprozimáciu zväčšiť pomocou parametru breaks = ....
    • Pre využitie uvedeného postupu na generovanie dvojrozmerného náhodného vyberu (X,Y)^{\top} postačí aplikovať postup samostatne na náhodnú zložku X a náhodnú zložku Y (ak sú tieto zložky vzájomne nezávisle), alebo je nutné postup aplikovať na marginál jednej zložky a následne na podmienené rozdelenie druhej zložky – ak sú tieto zložky vzájomne závislé.

  4. Uvažujte dvojrozmerné Pareto rozdelenie definované hustotou f(x, y) = c(x + y - 1)^{-p - 2}, pre x,y > 1 a p > 0. Spočítajte hodnotu normalizačnej konštanty c > 0 a nájdite marginálne rozdelenie oboch zložiek. Spočítajte podmienené rozdelenie X pre dané Y = y a podmienené rozdelnie Y pri danej hodnote X = x.



Samostatne


  • Pokúste sa premyslieť si, ako by ste pomocou vyššie uvedeného postupu vizuálne dokázali overili závislosť/nezávislosť dvoch náhodných veličín v nejakom náhodnom výbere (X_i, Y_i)^\top, pre i = 1, \dots, n.
  • Uvedomte si, že klasický xy scatterplot býva často hodne zavádzajúci v posudzovani závislosti a nezávislosti dvoch náhodných veličín. Hodne evidentné to je napríklad pre exponenciálne rozdelenie - viď ilustráciu nižsie:

    n <- 100
    x <- rexp(n, rate = 1)
    y <- rexp(n, rate = 10)
    z <- x + rnorm(n, 0, 2)
    
    par(mfrow = c(1,2))
    plot(y ~ x, pch = 21, bg = "lightblue")
    plot(z ~ x, pch = 21, bg = "lightblue")

    Zatiaľ čo prvý obrázok zobrazuje dve nezávisle zložky X a Y - napriek tomu, že dochádza k evidentnému zhlukovaniu bodov v počiatku, druhý scatterplot zobrazuje závisle zložky X a Z - ktoré ale vizuálne by sme asi skôr mali tendenciu posúdiť, ako nezávisle. Celkový obraz sa ale výrazne zmeni, ak namiesto scatterplotov pre pôvodné data X_i, Y_i a Z_i (pre i = 1, \dots, n) vykreslíme scatterplot pre F_{X}(X_i), F_{Y}(Y_i) a F_{Z}(Z_i), kde F_{X}, F_{Y} a F_{Z} sú distribučné X, Y a Z.



3. Mnohorozmerné normálne rozdelenie

R knižnica pre prácu s mnohorozmerným normálnym rozdelenim je mvtnorm (po inštalácii pomocou príkazu install.packages("mvtnorm") načítať do programu pomocou príkazu library("mvtnorm")).

library("mvtnorm")

Knižnica v prvom prade umožňuje generovať náhodné vektory z mnohorozmerného normálneho rozdelenia s daným vektorom stredných hodnôt a symetrickou variančnou-kovariančnou maticou \Sigma (symetrická a pozitívne definitná).

Ďalšie podrobnosti o knižnici a implementácii jednotlivých prikazov:
https://cran.r-project.org/web/packages/mvtnorm/index.html



Poznámka


Pre umožnenie replikácie experimentu je vhodné používať nastavenie seedu pomocou príkazu set.seed(). Z vedeckého hľadiska je toho dokonca striktná požiadavka, aby bolo možné experiment, resp. štatisticku analýzu dodatočne zopakovať/rekonštruovať a získať ekvivalentné výsledky.

Porovnajte opakované použitie príkazu

(sample <- rnorm(10))
##  [1] -1.7685605 -0.7717708  0.4079737 -0.7056028 -0.7183402 -0.3604600
##  [7] -0.3311834  0.1055884 -0.7350938 -2.2298463

s opakovaným použitím dvojice príkazov

set.seed(1234)
(sample <- rnorm(10))
##  [1] -1.2070657  0.2774292  1.0844412 -2.3456977  0.4291247  0.5060559
##  [7] -0.5747400 -0.5466319 -0.5644520 -0.8900378




Príklad

Náhodný výber z dvojrozmerného normálneho rozdelenia

\boldsymbol{X}_{1}, \dots, \boldsymbol{X}_n \sim N_{2}\Big(\boldsymbol{\mu} = \Big(\begin{array}{c}2\\3\end{array}\Big), \Sigma = \Big(\begin{array}{cc}10^2 & 6^2\\ 6^2 & 6^2\end{array}\Big) \Big).

pre \boldsymbol{X}_{i} = (X_{i 1}, X_{i 2})^\top.

Pri volaní príkazu rmvnorm() je nutné špecifikovať požadovaný vektor stredných hodnôt a variančnú-kovariančnú maticu (t.j. v jednorozmernom prípade parameter rozptylu). Avšak v prípade jednorozmerného náhodného generátoru z normálneho rozdelenia (príkaz rnorm()) je nutné špecifikovať parameter smerodatnej chyby (na rozdiel od parameteru rozptylu) - porovnajte príslušný help k dvojici príkazov?rnorm a ?rmnorm. Je preto nutné dostatočne dobre poznať implementáciu používaných príkazov, aby nedošlo k omylom pri generováni.

  • Aké je marginálne rozdelenie náhodných zložiek X_{i 1} a X_{i 2}? Tie môžeme samozrejme nagenerovať (samostatne) použitím jednorozmerného generátoru - funkcie rnorm().
  • Je možné využiť tento jednorozmerný náhodný generátor rnorm() k simulácii jednotlivých zložiek a následne vygenerované zložky vhodne zkombinovať aby sme dosiahli požadované dvojrozmerné normálne rozdelenie?
  • Overte, že variančná-kovariančná matica \Sigma je pozitívne definitná.
  • Porozmýšlajte nad príkladom dvojrozmerného rozdelenia, kde obe zložky majú marginálne normálne rozdelenie (s vhodnými parametrami), ale združené rozdelenie nie je normálne. Dokážete simulovať z takého rozdelenia?


Nasledujúcim príkazom vygenerujem náhodný výver z daného dvojrozmerného normálneho rozdelenia s rozsahom n = 1000:

set.seed(1234)
s1 <- rmvnorm(1000, c(2, 3), matrix(c(10^2, 6^2, 6^2, 6^2),2,2))

Jednoduchý xy scatterplot pomocou príkazu plot():

plot(s1, pch=21, xlim=c(-35, 35), ylim=c(-35,35), xlab="Marginal No. 1", ylab="Marginal No. 2", bg = "lightblue")

Pomocou výberových charakteristík - vektor výberových stredných hodnôt a výberová variančná-kovariančná matica - môžeme zobraziť hĺbkové kontúry daného rozdelenia (čo sa tým myslí?) Nakoľko je náhodný výber generovaný zo znamého teoretického rozdelenia (vyššie), je možné využiť aj teoretický predpis príslušnej dvojrozmernej hustoty a napočítať teoretické kontúry.

V nasledujúcom využijeme výberové charakteristiky spočítane z nagenerovaného náhodného výberu:

center <- apply(s1, 2, mean)   ## sample mean vector
sigma <- cov(s1)               ## sample variance-covariance matrix

Hustota dvojrozmerného normálneho rozdelenia je daná predpisom:

f(\boldsymbol{x}) = f(x_{1}, x_{2}) = \frac{1}{2 \pi |\Sigma|^{1/2}} exp \left\{ -\frac{1}{2} (\boldsymbol{x} - \boldsymbol{\mu})^\top \Sigma^{-1} (\boldsymbol{x} - \boldsymbol{\mu}) \right\},

kde \boldsymbol{x} = (x_{1}, x_{2})^\top \in \mathbb{R}^2, \boldsymbol{\mu} = (\mu_{1}, \mu_{2})^\top je vektor stredných hodnôt a \Sigma symetrická a pozitívne definitná variančná-kovariančná matica.

Pre spočítanie príslušných kontúr potrebujeme inverznú maticu k výberovej variančnej-kovariančnej matici \widehat{\Sigma}. Príslušné kontúry budeme získavať pomocou vlastnej funkcie ellipse():

sigma.inv = solve(sigma, matrix(c(1,0,0,1),2,2))

ellipse <- function(s,t){
                    u<-c(s,t)-center; 
                    e <- (-1) * (u %*% sigma.inv %*% u) / 2; 
                    exp(e)/(2 * pi * sqrt(det(sigma.inv)))}

V závislosti na zvolenom gride bodov spočítame niekoľko bodov na príslušných kontúrach pomocou funkcie ellipse():

n <- 60
x <- (0:(n-1))*2 - 50
y <- (0:(n-1))*2 - 50

z <- mapply(ellipse, as.vector(rep(x,n)), as.vector(outer(rep(0,n), y, `+`)))

Výsledný graf:

plot(s1, pch=21, xlim=c(-35, 35), ylim=c(-35,35), xlab="Margin No. 1", ylab="Margin No. 2", bg = "lightgray", cex = 0.3)
contour(x,y,matrix(z,n,n), levels=(0:15), col = terrain.colors(16), add=TRUE, lwd = 1)



Samostatne


  • Dokážete intuitivne vysvetliť význam jednotlivých parametrov v predpise dvojrozmernej hustoty normálneho rozdelenia v súvislosti s výsledným/očakávaným scatterplotom bodov generovaných z tohto rozdelnia?.

  • Ako by ste intuitivne vysvetlili zmysel a úlohu hĺbkových kontúr? Napadá vás nejaká súvislosť s jednorozmernými kvantilmi?




4. Knižnica ‘mixtools’

Alternatívna možnosť, ktorá vedie viacmenej k ekvivalentným výsledkom, je použiť R knižnicu mixtools. (opäť inštalácia pomocou príkazu install.packages(mixtools))

library("mixtools")

V knižnici mixtools je už vlastný príkaz ellipse()(viď help?ellipse):

rm(list = ls())
library(mixtools)
library(mvtnorm) 

set.seed(1234)
p <- rmvnorm(1000, c(250000, 20000), matrix(c(100000^2, 22000^2, 22000^2, 6000^2),2,2))
plot(p, pch=20, xlim=c(0,500000), ylim=c(0,50000), xlab="Margin No. 1", ylab="Margin No. 2")
ellipse(mu=colMeans(p), sigma=cov(p), alpha = .05, npoints = 250, col="red") 



Samostatne


Manuálna rekonštrukcia kontúry z predchádzajúceho obrázku:

alpha <- 0.05
angles <- seq(0, 2*pi, length = 200)
cpoints <- cbind(cos(angles), sin(angles))

q <- sqrt(qchisq(1 - alpha, df = 2))
mu <- colMeans(p)
sigma <- cov(p)
sigmaEig <- eigen(sigma)
sigmaSqr <- sigmaEig$vectors %*% diag(sqrt(sigmaEig$values)) %*% t(sigmaEig$vectors)
Epoints <-  q * (cpoints %*% sigmaSqr)
Epoints[,1] <- Epoints[,1] + mu[1]
Epoints[,2] <- Epoints[,2] + mu[2]

plot(p, pch=20, xlim=c(0,500000), ylim=c(0,50000), xlab="Margin No.1", ylab="Margin No.2")
points(Epoints[,1], Epoints[,2], col = "red", pch = "*")



5. Príkaz mvrnorm() z knižnice MASS

Ďalšia možnosť generovania náhodného výberu z mnohorozmerného normálneho rozdelenia je v defaultnej knižnici MASS pomocou príkazu mvrnorm() (help pomocou príkazu ?mvrnorm pre ďalšie detaily).

Vizualizácia viacrozmerných hustôt je náročná pre intuitívne pochopenie a jednoduchosť vnímania. Nicméně, program R ponúka nejaké základné možnosti aj pre viacrozmerné grafy (dodatočné R kniťžnice, ktoré je možné nájsť na internete ponúkajú ešte širší výber rôznych možností).

Nasledujúce náhodné výbery sú generované z dvojrozmerného normálneho rozdelenia a pre vizualizáciu (neznámeho) rozdelenia spočítame jadrové odhady hustoty (teoretické základy jadrových odhadov ani detaily samotného výpočtu nie sú podstatné).

library("MASS")

### two independent samples from two-dimensional normal each
bivn1 <- mvrnorm(1000, mu = c(0, 0), Sigma = matrix(c(1, .5, .5, 1), 2))
bivn2 <- mvrnorm(1000, mu = c(0, 0), Sigma = matrix(c(1.5, 1.5, 1.5, 1.5), 2))

### two dimensional kernel density estimate
bivn.kde1 <- kde2d(bivn1[,1], bivn1[,2], n = 50)
bivn.kde2 <- kde2d(bivn2[,1], bivn2[,2], n = 50)

par(mfrow = c(1,2))
persp(bivn.kde1, phi = 45, theta = 30, shade = .1, border = NA)
#par(new=TRUE)
persp(bivn.kde2, phi = 45, theta = 30, shade = .1, border = NA)



Poznámka


Je potrebné si dostatočne uvedomiť a pamätať na to, že zo združeného rozdelenia náhodného vektoru je možné (väčšínou) jednoducho a priamočiaro získať ľubovolné marginálne rozdelenie. Na druhú stranu, aj znalosť všetkých možných marginalov (okrem marginálneho rozdelenia, ktoré je vlastne už združeným rozdelenim) nestači k tomu, aby bolo možné určiť/spočítať celkové združené rozdelenie.

Vzhľadom k tomuto princípu môžeme pomocou jednorozmerného generátora generovať jednotlivé normálne rozdelené zložky, ale nedokážeme kontrolovať celkovú závislostnú štruktúru.

library(ggplot2)
rm(list = ls())
set.seed(1234)

n <- 1000
sample1 <- rnorm(n, mean=2, sd = 2)
sample2 <- 0.2 * sample1 + rnorm(n)
data <- data.frame(x = sample1, y = sample2, group="A")

sample3 <- rnorm(n, mean=0, sd = 1)
sample4 <- 3*sample3 - 1 + rnorm(n)
data <- rbind(data, data.frame(x = sample3, y = sample4, group="B"))
ggplot(data, aes(x=x, y=y,colour=group)) + geom_point(size=1.5, alpha=.6) 

Overenie závislosti/nezávislosti pomocou distribučných funkcii:

xPoints <- pnorm(sample1, mean(sample1), sd(sample1))
yPoints <- pnorm(sample2, mean(sample2), sd(sample2))

plot(xPoints, yPoints, pch = 21, bg = "lightblue")
lines(lowess(yPoints ~ xPoints), col = "red", lwd = 2)

Porovnajte s nasledujúcim obrázkom, pre sample1 a sample3 - teda dva nezávislé náhodné výbery.

xPoints <- pnorm(sample1, mean(sample1), sd(sample1))
yPoints <- pnorm(sample3, mean(sample3), sd(sample3))

plot(xPoints, yPoints, pch = 21, bg = "lightblue")
lines(lowess(yPoints ~ xPoints), col = "red", lwd = 2)

Ot8zky


  • Korespondujú obrázky vyššie s tým, čo by ste v nich očakávali vzhľadom k tomu, čo už viete a čo viete o datach?
  • Ako by ste získali analogicke obrázky, ak by teoretické rozdelenie náhodných výberov nebolo známe?
    (Hint: pre jednoduchosť uvažujte nejake jednorozmerné rozdelenie)

  • emp <- function(x, X){
       return(sum(X <= x)/length(X))
    }
    
    n <- 1000
    
    X <- rnorm(n)
    Y <- rnorm(n)
    Z <- X + Y
    
    x <- NULL
    y <- NULL
    z <- NULL
    
    for (i in 1:length(X)){
      x <- c(x, emp(X[i], X))
      y <- c(y, emp(Y[i], Y))
      z <- c(z, emp(Z[i], Z))
      }
    
    par(mfrow = c(1,2))
    plot(ecdf(X))
    points(x ~ X, col = "red", cex = 1.2)
    plot(ecdf(Y))
    points(y ~ Y, col = "red", cex = 1.2)

    par(mfrow = c(1,2))
    plot(x ~ y)
    lines(lowess(x ~ y), col = "red", lwd = 2)
    plot(z ~ x)
    lines(lowess(z ~ x), col = "red", lwd = 2)





Domáca (samostatná) úloha

(Deadline: Tretie cvičenie / 16.03.2021)

  • V druhej časti (2. Náhodné vektory) spočítajte prvý teoretický príklad (Príklad 1) a pomocou programu R vyriešte druhý príklad (Príklad 2).
  • Riešenie umiestnite na svoju webovú stránku, najneskôr v utorok, 16.03.2021, do 14:00.