Hr´ atky s R ´rek Arnoˇ st Koma Katedra pravdˇepodobnosti a matematick´e statistiky Matematicko-fyzik´aln´ı fakulta Univerzity Karlovy v Praze Posledn´ı u ´ prava: 3. prosince 2009
Obsah 1 Z´ aklady ´ 1.1 Upln´ y zaˇc´ atek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3
1.2
Nˇekolik z´ akladn´ıch operac´ı s vektory a maticemi . . . . . . . . . . . . . . . . . . . .
3
1.3
Tˇr´ıdy objekt˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2 Jednorozmˇ ern´ a rozdˇ elen´ı 2.1 2.2
7
Diskr´etn´ı rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.1
Binomick´e rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Spojit´a rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2.1
9
Norm´ aln´ı rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 V´ıcerozmˇ ern´ a rozdˇ elen´ı 3.1
13
Dvourozmˇern´e norm´aln´ı rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Transformace v praxi
19
4.1
Transformace rovnomˇern´eho rozdˇelen´ı na norm´aln´ı . . . . . . . . . . . . . . . . . . . 19
4.2
Transformace vedouc´ı ke Cauchyho rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . 21
5 Limitn´ı vˇ ety v praxi
23
5.1
Studentovo rozdˇelen´ı pro rostouc´ı stupnˇe volnosti . . . . . . . . . . . . . . . . . . . . 23
5.2
χ2 rozdˇelen´ı pro rostouc´ı stupnˇe volnosti . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Z´ aklady pr´ ace s daty
27
6.1
Naˇcten´ı dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2
data.frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3
Pˇr´ıstup k jednotliv´ ym sloupc˚ um datov´e tabulky . . . . . . . . . . . . . . . . . . . . . 28
6.4
V´ ybˇer podmnoˇziny dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1
6.5
Z´ akladn´ı popisn´e statistiky a prohl´ıdka dat . . . . . . . . . . . . . . . . . . . . . . . 29
6.6
Z´ akladn´ı obr´ azky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.6.1
Obr´azky pro kvalitativn´ı promˇennou (factor) . . . . . . . . . . . . . . . . . 30
6.6.2
Obr´azky pro kvantitativn´ı promˇennou (numeric) . . . . . . . . . . . . . . . . 30
6.7
Obr´azky pˇri zkoum´ an´ı vztahu mezi dvˇema kvalitativn´ımi promˇenn´ ymi . . . . . . . . 33
6.8
Obr´azky pˇri zkoum´ an´ı vztahu mezi dvˇema kvantitativn´ımi promˇenn´ ymi . . . . . . . 36
6.9
Obr´azky pˇri zkoum´ an´ı vztahu mezi kvalitativn´ı a kvantitativn´ı promˇennou . . . . . . 37
7 Z´ akladn´ı metody matematick´ e statistiky 7.1
Jednov´ ybˇerov´e probl´emy s kvantitativn´ımi daty . . . . . . . . . . . . . . . . . . . . . 39 7.1.1
7.2
7.3
39
Jednov´ ybˇerov´ y t-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Dvouv´ ybˇerov´e probl´emy s kvantitativn´ımi daty . . . . . . . . . . . . . . . . . . . . . 40 7.2.1
Dvouv´ ybˇerov´ y t-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2.2
Dvouv´ ybˇerov´ y F-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
P´ arov´e probl´emy s kvantitativn´ımi daty . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.3.1
P´ arov´ y t-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8 Souhrnn´ y pˇ rehled nejd˚ uleˇ zitˇ ejˇ s´ıch pˇ r´ıkaz˚ u
43
8.1
Z´ akladn´ı elementy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.2
Oper´ atory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8.3
Vektory a datov´e typy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.4
Datov´e soubory (data frames) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.5
Numerick´e funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.6
Indexace/vyb´ır´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.7
Pravdˇepodobnostn´ı rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.8
Standardn´ı statistick´e metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2
1
Z´ aklady
Program R je (zdarma pˇri dodrˇzen´ı podm´ınek GNU GPL licence) ke staˇzen´ı na http://www. ˇ R-project.org, respektive z vhodn´eho CRAN zrcadla (pro stahov´an´ı z Cesko-Slovenska doporuˇcuji http://cran.at.r-project.org, kter´e leˇz´ı za humny a nav´ıc se nejedn´ a o zrcadlo, ale o vzor pro ostatn´ı zrcadla). Uˇzivatel´e Linuxu si mohou R sami zkompilovat ze zdroje (R-2.10.1.tar.gz), pˇr´ıpadnˇe si st´ ahnout bal´ıˇcek pro svoji distribuci (podporovan´e jsou Debian, RedHat, SuSe, Ubuntu). Uˇzivatel´e MS Windows mohou t´eˇz kompilovat ze zdroje (ale patrnˇe jim to d´ a v´ıce pr´ ace) anebo instalovat klasicky ze souboru R-2.10.1-win32.exe. Pro samotnou pr´ aci se nav´ıc hod´ı nˇejak´ y trochu inteligentn´ı editor. Nejlepˇs´ı (dle n´ azoru autora) je Xemacs (http://www.xemacs.org) – funguje jak v Linuxu tak v MS Windows – nebo GNU Emacs, ke kter´ ym se d´ a pˇridat ESS (Emacs Speaks Statistics) (http://ess.r-project.org/) a pot´e najednou editovat skripty a (jejich ˇc´asti) souˇcasnˇe spouˇstˇet. Neznal´eho uˇzivatele obˇcas odrad´ı trochu jin´e kl´avesov´e zkratky pro bˇeˇzn´e u ´ kony (napˇr. Copy-Paste) neˇz na jak´e je zvykl´ y (bohuˇzel, Bill Gates v zaˇc´ atc´ıch sv´eho podnik´an´ı nedodrˇzel Emacsovou konvenci a vymyslel si svoje zkratky. . . ). Obdobnˇe funguje (pouze v MS Windows) t´eˇz WinEdt (http://www.winedt.com) po u. Po nainstalov´an´ı R pˇr´ıdavn´eho bal´ıku RWinEdt. WinEdt lze nainstalovat zdarma na dobu 30 dn˚ uplynut´ı t´eto doby se editor zaˇcne s´ am od sebe zav´ırat bez uloˇzen´ı rozdˇelan´e pr´ ace. Nicm´enˇe jeho cena se pohybuje na rozumn´e v´ yˇsi (cca 25$) a kles´a s poˇctem zakoupen´ ych licenc´ı. R samotn´e m´ a ve sv´e MS Windows verzi zabudov´an t´eˇz jednoduch´ y editor (ˇcernob´ıl´ y bez zv´ yrazˇ nov´an´ı syntaxe). Pˇr´ıkazy je z nˇej moˇzn´e do R konzole pˇren´ aˇset pomoc´ı kombinace kl´aves Ctrl-r. Skript s k´odem z tohoto manu´ alu a data pouˇzit´a v tomto manu´ alu lze st´ ahnout z autorova webu: http://www.karlin.mff.cuni.cz/~komarek/vyuka/2009_10/introR/ introR-nstp097_191-2009.R auta04.dat auta04.csv auta04.xls
1.1
´ Upln´ y zaˇ c´ atek
Na zaˇc´atku kaˇzd´e pr´ ace doporuˇcuji nastavit pracovn´ı adres´aˇr tak, aby program vˇedˇel, kde br´ at napˇr. poˇzadovan´ a data anebo abyste vy vˇedˇeli kde se budou ukl´adat napˇr. vytvoˇren´e grafy. Pˇredpokl´adejme, ˇze chceme m´ıt pracovn´ı adres´aˇr /home/User/Moje/Veci, respektive C:\Moje\Veci. Jako pracovn´ı je nastav´ıme pomoc´ı (povˇsimnˇete si bˇeˇzn´ ych, nikoliv zpˇetn´ ych lom´ıtek, pro uˇzivatele operaˇcn´ıch syst´em˚ u zaloˇzen´ ych na UNIXu jistˇe ˇz´adn´e pˇrekvapen´ı): > setwd("/home/User/Moje/Veci") > setwd("C:/Moje/Veci") D´ale doporuˇcuji (zejm´ena pˇri pr´ aci na veˇrejn´ ych poˇc´ıtaˇc´ıch) vyˇcistit“ R prostˇred´ı od promˇenn´ ych ” vytvoˇren´ ych pˇredchoz´ım uˇzivatelem: > rm(list = ls())
3
1.2
Nˇ ekolik z´ akladn´ıch operac´ı s vektory a maticemi
6 Oper´ator pˇriˇrazen´ı m´a tvar <- (menˇs´ıtko a pomlka) anebo = (rovn´ıtko). > > > >
x <- 10 x x = 10 x
6 Vektor vytvoˇr´ıme pomoc´ı funkce c (concatenate). > x <- c(1, 2, 3, 4, 5) > x
6 Vektor maj´ıc´ı tvar aritmetick´e posloupnosti vytvoˇr´ıme pomoc´ı funkce seq (sequence), vektor ve tvaru aritmetick´e posloupnosti s krokem 1 t´eˇz pomoc´ı oper´ atoru : (dvojteˇcka). > > > > > >
x <- seq(1, 5, by = 1) x x <- seq(1, 5, length = 5) x x <- 1:5 x
6 Matici vytvoˇr´ıme pomoc´ı funkce matrix. Data do matice se vyplˇnuj´ı standardnˇe po sloupc´ıch.
Chceme-li je vyplˇ novat po ˇra´dc´ıch, mus´ıme nastavit argument byrow funkce matrix na TRUE.
> > > >
x <- matrix(seq(1, 11, by = 2), nrow = 2, ncol = 3) x x <- matrix(seq(1, 11, by = 2), nrow = 2, ncol = 3, byrow = TRUE) x
6 Matice vytvoˇren´a sloˇzen´ım ˇra´dk˚u: > x2 <- rbind(x, c(0.5, 0.6, 0.7)) > x2
6 Matice vytvoˇren´a sloˇzen´ım sloupc˚u: > x3 <- cbind(x, c(0.5, 0.6)) > x3
6 Vytvoˇren´ı jednotkov´e matice: > x4 <- diag(4) > x4
4
6 Pˇr´ıstup ke sloˇzk´am vektoru/matice: > > > > > > > >
v <- seq(10, 60, by = 10) v[3] v[c(1, 4)] x x[1, 2] x[, 3] x[2, ] x[1, c(1, 3)]
6 Operace konstanta – matice: > > > >
10 * x x/10 x + 10 x - 10
ˇ e maticov´e operace. 6 Cistˇ > > > > >
y <- matrix(seq(0, 100, length = 6), nrow = 2, ncol = 3) y t(y) x + y x - y
6 Pˇr´ıkazy lze t´eˇz skl´adat dohromady. > > > >
1.3
print(M <- x %*% t(y)) print(Minv <- solve(x %*% t(y))) M %*% Minv round(M %*% Minv, 10)
Tˇ r´ıdy objekt˚ u
Kaˇzd´ y objekt v R m´ a svoji tˇr´ıdu. Z´ akladn´ı tˇr´ıdy jsou
6 numeric, resp. integer. > > > >
x1 <- 1:10 class(x1) x1b <- seq(0, 10, by = 0.5) class(x1b)
6 matrix > x2 <- cbind(1:10, seq(10, 100, by = 10)) > class(x2)
5
6 character > x3 <- c("jaro", "leto", "podzim", "zima", "zima", "leto") > class(x3)
6 logical > > > > > > > > >
x4 <- c(TRUE, TRUE, FALSE, FALSE, TRUE, TRUE) x4 <- c(T, T, F, F, T, T) class(x4) print(x4b <- (x3 == "jaro")) print(x4c <- !x4b) print(x4d <- (x4 & x4b)) print(x4e <- (x4 && x4b)) print(x4f <- (x4 | x4b)) print(x4g <- (x4 || x4b))
6 factor > x5 <- factor(x3) > x5 > class(x5)
6
2
Jednorozmˇ ern´ a rozdˇ elen´ı
2.1
Diskr´ etn´ı rozdˇ elen´ı
2.1.1
Binomick´ e rozdˇ elen´ı
6 Pravdˇepodobnostn´ı funkce (dbinom), distribuˇcn´ı funkce (pbinom) a kvantilov´a funkce (qbinom). > > > > > > > > >
p <- 0.2 ## Pravdepodobost uspechu n <- 10 ## Pocet pokusu x <- 0:10 ## Hodnoty pq <- seq(0.001, 1-0.001, by=0.001) ## Pravdepodobnosti pro vypocet kvantilove funk px <- dbinom(x, size=n, prob=p) Fx <- pbinom(x, size=n, prob=p) Finvp <- qbinom(pq, size=n, prob=p) ukaz <- data.frame(Hodnoty=x, px=px, Fx=Fx) print(ukaz)
6 V´yˇse spoˇcten´e funkce si nakresl´ıme a uloˇz´ıme v postscriptu v souboru fig01.ps (obr´azek bude 5 palc˚ u ˇsirok´ y a 10 palc˚ u vysok´ y). Soubor s obr´ azek bude uloˇzen ve vaˇsem pracovn´ım adres´aˇri (viz getwd()). > > > > > > >
postscript("fig01.ps", width=5, height=10, horizontal=FALSE) par(mfrow=c(3, 1)) ## Bude kreslit 3 obrazky pod sebe. plot(x, px, type="h", xlab="k", ylab="P(X=k)", col="red") title(main=paste("Binom(", n, ", ", p, ")", sep="")) plot(x, Fx, type="s", xlab="x", ylab="P(X<=x)", col="blue") plot(pq, Finvp, type="s", xlab="p", ylab="Kvantilova funkce", col="darkgreen") dev.off()
6 D´ale si m˚uˇzeme vygenerovat 1 000 pseudon´ahodn´ych ˇc´ısel z dan´eho binomick´eho rozdˇelen´ı (nechcete-li generovat pokaˇzd´e stejn´e hodnoty, bud’ zakomentujte pˇr´ıkaz set.seed(...), nebo zmˇen ˇ te hodnotu seedu): > > > > > >
set.seed(18675) rn <- rbinom(1000, size = n, prob = p) rn[1:10] table(rn) prop.table(table(rn)) round(px, 3)
7
0
1
2
3
4
Kvantilova funkce 5
6
0.2
0.4
0.6
P(X<=x) 0.8
1.0
0.00 0.05 0.10 0.15 0.20 0.25 0.30
P(X=k)
Binom(10, 0.2)
0
0
0.0 2
2
0.2 4
k
4
x
0.4
8 6 8 10
6 8 10
0.6
0.8
1.0
p
Obr´azek 1: Binomick´e rozdˇelen´ı.
2.2
Spojit´ a rozdˇ elen´ı
2.2.1
Norm´ aln´ı rozdˇ elen´ı
6 Hustota (dnorm), distribuˇcn´ı funkce (pnorm) a kvantilov´a funkce (qnorm). > > > > > > > > >
mu <- 100 sigma <- 15 x <- seq(mu - 3 * sigma, mu + 3 * sigma, length = 100) pq <- seq(0.001, 1 - 0.001, by = 0.001) fx <- dnorm(x, mean = mu, sd = sigma) Fx <- pnorm(x, mean = mu, sd = sigma) Finvp <- qnorm(pq, mean = mu, sd = sigma) ukaz <- data.frame(Hodnoty = x, fx = fx, Fx = Fx) print(ukaz[c(1:5, 45:55, 96:100), ])
6 V´yˇse spoˇcten´e funkce si nakresl´ıme a uloˇz´ıme v pdf v souboru fig02.pdf (obr´azek bude 5 palc˚u ˇsirok´ y a 10 palc˚ u vysok´ y). Soubor s obr´ azek bude opˇet uloˇzen ve vaˇsem pracovn´ım adres´aˇri (viz getwd()). > > > > > > >
pdf("fig02.pdf", width=5, height=10) par(mfrow=c(3, 1)) ## Bude kreslit 3 obrazky pod sebe. plot(x, fx, type="l", xlab="x", ylab="f(x)", col="red") title(main=paste("N(", mu, ", ", sigma^2, ")", sep="")) plot(x, Fx, type="l", xlab="x", ylab="P(X<=x)", col="blue") plot(pq, Finvp, type="l", xlab="p", ylab="Kvantilova funkce", col="darkgreen") dev.off()
6 Kvantily normovan´eho norm´aln´ıho rozdˇelen´ı, s kter´ymi se ˇcasto setk´av´ame: > > > > >
qnorm(c(0.95, 0.975, 0.99, 0.995)) pp <- c(0.95, 0.975, 0.99, 0.995) qq <- qnorm(pp) names(qq) <- paste(pp * 100, "%", sep = "") qq
9
0.000 0.005 0.010 0.015 0.020 0.025
f(x)
N(100, 225)
60
80
100
120
140
120
140
0.6 0.4 0.0
0.2
P(X<=x)
0.8
1.0
x
60
80
100
120 100 80 60
Kvantilova funkce
140
x
0.0
0.2
0.4
0.6
p
Obr´azek 2: Norm´aln´ı rozdˇelen´ı.
10
0.8
1.0
6 D´ale si m˚uˇzeme vygenerovat 1 000 pseudon´ahodn´ych ˇc´ısel z norm´aln´ıho rozdˇelen´ı N (100, 15 ): 2
> > > > > >
set.seed(221913282) rn <- rnorm(1000, mean = mu, sd = sigma) rn[1:10] mean(rn) sd(rn) var(rn)
6 Nakresleme si krabiˇckov´y graf (boxplot) a histogram. K histogramu jeˇstˇe pˇrid´ame hustotu
pˇr´ısluˇsn´eho norm´aln´ıho rozdˇelen´ı. Obr´azek tentokr´at uloˇz´ıme jako jpeg v souboru fig03.jpg (jeho rozliˇsen´ı bude 1 280 × 1 024 bod˚ u). Soubor s obr´ azek bude uloˇzen ve vaˇsem pracovn´ım adres´aˇri (viz getwd()). > > > > > >
jpeg("fig03.jpg", width = 1280, height = 1024) par(mfrow = c(1, 2)) boxplot(rn, col = "seagreen") hist(rn, prob = TRUE, col = "sandybrown", ylim = range(fx)) lines(x, fx, col = "red") dev.off()
11
140 120 100 80 60 0.000 0.005 0.010 0.015 0.020 0.025
Density
Histogram of rn
60
80
100
120
rn
Obr´azek 3: N´ahodn´ y v´ ybˇer z norm´aln´ıho rozdˇelen´ı.
12
140
3
V´ıcerozmˇ ern´ a rozdˇ elen´ı
3.1
Dvourozmˇ ern´ e norm´ aln´ı rozdˇ elen´ı
6
Napiˇsme si nejprve funkci, kter´a n´ am ze zadan´ ych smˇerodatn´ ych odchylek σ1 , σ2 a korelace ̺ vytvoˇr´ı pˇr´ısluˇsnou varianˇcn´ı matici: 2 ̺σ1 σ2 σ1 . Σ= ̺σ1 σ2 σ22 > CovMat <- function(sigma1, sigma2, rho){ + if (sigma1 <= 0 | sigma2 <= 0 | rho < -1 | rho > 1) stop("Nespravne vstupni parametry.") + Sigma <- matrix(c(sigma1^2, rho*sigma1*sigma2, rho*sigma1*sigma2, sigma2^2), nrow=2) + return(Sigma) + }
6 Spoˇctˇete pomoc´ı t´eto funkce varianˇcn´ı matice nˇekolika r˚uzn´ych dvourozmˇern´ych norm´aln´ıch rozdˇelen´ı. 6 Nakreslete hustoty dvourozmˇern´ych norm´aln´ıch rozdˇelen´ı (hustotu um´ı poˇc´ıtat funkce dmvnorm z bal´ıku mvtnorm) pro µ = (−1, 1), σ1 = 1, σ2 = 2 a ̺ ∈ {0, 0,5, −0,5}.
6 Tuˇs´ıte, proˇc se x1 a x2 zvolilo tak, jak se zvolilo? Do objektu BARVY jsme si uloˇzili ”pˇeknou“ paletu barev pro kreslen´ı mapy“ vytvoˇrenou funkcemi z bal´ıˇcku colorspace. ”
> > > > > > > > > > > + + + + + +
library(mvtnorm) library(colorspace) BARVY <- rev(heat_hcl(33, c=c(80, 30), l=c(30, 90), power=c(1/5, 1.3))) mu <- c(-1, 1) sigma <- c(1, 2) rho <- c(0, 0.5, -0.5) x1 <- seq(mu[1] - 3*sigma[1], mu[1] + 3*sigma[1], length=30) x2 <- seq(mu[2] - 3*sigma[2], mu[2] + 3*sigma[2], length=30) XX <- cbind(rep(x1, length(x2)), rep(x2, each=length(x1))) par(mfrow=c(3, 2), bty="n") for (i in 1:length(rho)){ Sigma <- CovMat(sigma[1], sigma[2], rho[i]) hustota <- matrix(dmvnorm(XX, mean=mu, sigma=Sigma), nrow=length(x1), ncol=length(x2)) image(x1, x2, hustota, col=BARVY, xlab="x1", ylab="x2") contour(x1, x2, hustota, col="brown4", add=TRUE) persp(x1, x2, hustota, col="lightblue", theta=30, phi=30) }
13
6 4
0.02
0.04
0
x2
0.0 7
2
ta husto
0.06
0.05
x2
−2
0.03 0.01
−4
x1
−4
−3
−2
−1
0
1
2
6
x1
4
0.01
0.03
2
0.05
7
x2 0
ta
husto
0.08
0.0
6
0.0
x2
−2
0.04
0.02
−4
x1
−4
−3
−2
−1
0
1
2
6
x1
4
0.02 0.04
0.0
2
6
husto
x2 0
ta
−2
07
0. 0.08 0.05
x2
0.03 0.01
−4
x1
−4
−3
−2
−1
0
1
2
x1
Obr´azek 4: Dvourozmˇern´ a norm´aln´ı rozdˇelen´ı.
14
6 Zkuste t´eˇz generovat vˇzdy 1 000 pseudon´ahodn´ych ˇc´ısel z pˇr´ısluˇsn´ych norm´aln´ıch rozdˇelen´ı. 6 Pro nagenerovan´e hodnoty spoˇctˇete v´ybˇerov´e pr˚umˇery, v´ybˇerov´e smˇerodatn´e odchylky a v´ybˇerov´e korelaˇcn´ı koeficienty. 6 Pro nagenerovan´e hodnoty vytvoˇrte bodov´y graf a podbarvˇete ho mapou s pˇr´ısluˇsnou hustotou. Mysl´ıte, ˇze to je n´ ahoda, ˇze koleˇcka leˇz´ı z vˇetˇs´ı ˇc´asti v hornat´e“ oblasti? ”
> > > > > + + + + + + + + + >
set.seed(495265835) charakt <- matrix(NA, ncol = 5, nrow = 3) colnames(charakt) <- c("prum1", "prum2", "sd1", "sd2", "r") par(mfrow = c(3, 1), bty = "n") for (i in 1:length(rho)) { Sigma <- CovMat(sigma[1], sigma[2], rho[i]) hustota <- matrix(dmvnorm(XX, mean = mu, sigma = Sigma), nrow = length(x1), ncol = length(x2)) xxR <- rmvnorm(1000, mean = mu, sigma = Sigma) image(x1, x2, hustota, col = BARVY, xlab = "x1", ylab = "x2") points(xxR[, 1], xxR[, 2], col = "darkgreen") charakt[i, ] <- c(apply(xxR, 2, mean), apply(xxR, 2, sd), cor(xxR)[1, 2]) } print(charakt)
15
6 4 2 −4
−2
0
x2
−4
−3
−2
−1
0
1
2
0
1
2
0
1
2
−4
−2
0
x2
2
4
6
x1
−4
−3
−2
−1
−4
−2
0
x2
2
4
6
x1
−4
−3
−2
−1 x1
Obr´azek 5: N´ahodn´e v´ ybˇery z dvourozmˇern´ ych norm´aln´ıch rozdˇelen´ı.
16
6 Umˇeli byste generovat n´ahodn´a ˇc´ısla z v´ıcerozmˇern´eho norm´aln´ıho rozdˇelen´ı bez pouˇzit´ı funkce rmvnorm z bal´ıku mvtnorm? 6 Rada: Kaˇzdou pozitivnˇe definitn´ı matici Σ lze rozloˇzit na Σ = U U, kde U je horn´ı troj´uheln´ıkov´a ′
matice (Cholesk´eho dekompozice). D´ale plat´ı: Z ∼ Np (0, Ip ) ⇒ X = µ + U′ Z ∼ Np (µ, Σ).
6 Cholesk´eho dekompozici poˇc´ıt´a funkce chol. Mysl´ıte, ˇze n´asleduj´ıc´ı funkce dˇel´a to co chceme? > rmvnormMFF <- function(n, mean, sigma) { + p <- length(mean) + Z <- matrix(rnorm(p * n, mean = 0, sd = 1), nrow = n, ncol = p) + U <- chol(sigma) + X <- rep(mean, each = n) + Z %*% U + return(X) + }
6 Zkuste znovu generovat z naˇsich dvourozmˇern´ych norm´aln´ıch rozdˇelen´ı, tentokr´at s pouˇzit´ım
ˇ te hodnoty korelac´ı mezi jednotliv´ ymi sloˇzkami n´ ahodn´eho vektoru. Husfunkce rmvnormMFF. Zmˇen totu tentokr´at nakresl´ıme jako mapu, v n´ıˇz jsou nadmoˇrsk´e v´ yˇsky odliˇseny barvami:
> > > > > > + + + + + + + >
rho <- c(0, -0.8, 0.9) set.seed(16336886) charakt <- matrix(NA, ncol=5, nrow=3) colnames(charakt) <- c("prum1", "prum2", "sd1", "sd2", "r") par(mfrow=c(3, 1), bty="n") for (i in 1:length(rho)){ Sigma <- CovMat(sigma[1], sigma[2], rho[i]) hustota <- matrix(dmvnorm(XX, mean=mu, sigma=Sigma), nrow=length(x1), ncol=length(x2)) xxR <- rmvnormMFF(1000, mean=mu, sigma=Sigma) image(x1, x2, hustota, col=BARVY, xlab="x1", ylab="x2") points(xxR[,1], xxR[,2], pch=4, col="darkgreen") charakt[i,] <- c(apply(xxR, 2, mean), apply(xxR, 2, sd), cor(xxR)[1,2]) } print(charakt)
17
6 4 2 −4
−2
0
x2
−4
−3
−2
−1
0
1
2
0
1
2
0
1
2
−4
−2
0
x2
2
4
6
x1
−4
−3
−2
−1
−4
−2
0
x2
2
4
6
x1
−4
−3
−2
−1 x1
Obr´azek 6: N´ahodn´e v´ ybˇery z dvourozmˇern´ ych norm´aln´ıch rozdˇelen´ı.
18
4
Transformace v praxi
4.1
Transformace rovnomˇ ern´ eho rozdˇ elen´ı na norm´ aln´ı
6 Na cviˇcen´ı jsme si poˇc´ıtali n´asleduj´ıc´ı transformaci: X = (X , X ) ∼ U(0, 1) , 1
2
2
Y1 = (−2 log(X1 ))1/2 cos(2πX2 ), Y2 = (−2 log(X1 ))1/2 sin(2πX2 ) a doˇsli jsme k z´ avˇeru Y = (Y1 , Y2 ) ∼ N2 (0, Ip ). Pˇrekvapuj´ı v´as proto n´ asleduj´ıc´ı obr´ azky? > > + > > > > > + > > > > > > > > >
X <- matrix(runif(2000, 0, 1), nrow=1000, ncol=2) Y <- cbind(sqrt(-2*log(X[,1])) * cos(2*pi*X[,2]), sqrt(-2*log(X[,1])) * sin(2*pi*X[,2])) y1 <- seq(-3, 3, length=30) y2 <- seq(-3, 3, length=30) YY <- cbind(rep(y1, length(y2)), rep(y2, each=length(y1))) hustota1 <- dnorm(y1) hustota2 <- matrix(dmvnorm(YY, mean=rep(0, 2), sigma=diag(2)), nrow=length(y1), ncol=length(y2)) par(mfrow=c(2, 2), bty="n") plot(X, col="darkgreen", xlab="x1", ylab="x2", main="U(0, 1)^2", bg=BARVY[33]) image(y1, y2, hustota2, col=BARVY, xlab="y1", ylab="y2", main="N(0, I)") #contour(y1, y2, hustota2, col="darkblue", xlab="y1", ylab="y2", main="N(0, I)") points(Y, col="darkgreen") hist(Y[,1], prob=TRUE, xlab="y1", col="sandybrown", main="Histogram Y1") lines(y1, hustota1, col="red") hist(Y[,2], prob=TRUE, xlab="y2", col="sandybrown", main="Histogram Y2") lines(y2, hustota1, col="red")
19
N(0, I)
0
y2
−3
0.0
−2
0.2
−1
0.4
x2
0.6
1
0.8
2
1.0
3
U(0, 1)^2
0.2
0.4
0.6
0.8
1.0
−3
−1
0
1
y1
Histogram Y1
Histogram Y2
3
0.4
2
0.0
0.1
0.2
Density
0.3
0.3 0.2 0.1 0.0
Density
−2
x1
0.4
0.0
−3
−2
−1
0
1
2
3
−3
−2
−1
y1
0 y2
Obr´azek 7: Transformace vedouc´ı k normalitˇe.
20
1
2
3
4.2
Transformace vedouc´ı ke Cauchyho rozdˇ elen´ı
6 V dom´ac´ım u´kolu jste zjistili,ˇze pro X
∼ N (0, 1), X2 ∼ N (0, 1), nez´ avisl´e plat´ı Y = X1 /X2 m´ a Cauchyho rozdˇelen´ı. Vygenerujte si nˇekolikr´at po sobˇe n´ asleduj´ıc´ı obr´ azek. Pˇrekvapuje v´as, ˇze se v´ ysledek pomˇernˇe dosti mˇen´ı? 1
> > > + + + +
set.seed(221913273) par(mfrow = c(4, 3), bty = "n") for (i in 1:12) { X <- matrix(rnorm(2000, 0, 1), nrow = 1000, ncol = 2) Y <- X[, 1]/X[, 2] hist(Y, prob = TRUE, col = "lightblue", xlab = "Y=X1/X2") }
21
−600
−200
200
0.008 0.004 0.000
0
500
−300
−100
0
Histogram of Y
Histogram of Y
Density
4e−04 0e+00
Density −500
0
0
1000
2000
0.0000 0.0010 0.0020
Histogram of Y 8e−04
Y=X1/X2
3000
0
500
1500
Histogram of Y
Histogram of Y
Histogram of Y
−300
−100
100
4e−04 0e+00
Density
Density
0.004 −500
8e−04
Y=X1/X2
0.0000 0.0010 0.0020
Y=X1/X2
0.008
Y=X1/X2
0.000
−500
0
500
1000
−4000
−2000
0
Y=X1/X2
Histogram of Y
Histogram of Y
Histogram of Y
0e+00
0.000 −200
0
Y=X1/X2
200
4e−04
Density
Density
0.008 0.004 0.000 −400
8e−04
Y=X1/X2
0.008
Y=X1/X2
0.004
Density
Density −1000
Y=X1/X2
−1500
Density
Histogram of Y
Y=X1/X2
0.0000 0.0010 0.0020
Density
−1000
0.0000 0.0010 0.0020
0.002
Density
0.004
Histogram of Y
0.000
Density
Histogram of Y
−300
−100
0
100
Y=X1/X2
Obr´azek 8: Cauchyho rozdˇelen´ı.
22
−5000
−3000
−1000
Y=X1/X2
100
5
Limitn´ı vˇ ety v praxi
5.1
Studentovo rozdˇ elen´ı pro rostouc´ı stupnˇ e volnosti
6 Jakou vˇetu/vˇety z pˇredn´aˇsky ilustruje n´asleduj´ıc´ı obr´azek? > > > > > + + + +
par(mfrow=c(3, 2), bty="n", mar=c(4, 4, 4, 1)+0.1) grid <- seq(-3, 3, length=100) df <- c(1, 2, 3, 5, 10, 30) ynorm <- dnorm(grid) for (i in 1:length(df)){ plot(grid, ynorm, xlab="z", ylab="f(z)", type="l", col="darkgreen", lty=2, main=paste("df = ", df[i], sep=""), lwd=1.5) lines(grid, dt(grid, df=df[i]), col="red", lty=1, lwd=1.5) }
23
0.3 0.1 0.0 −1
0
1
2
3
−3
−1
0 z
df = 3
df = 5
1
2
3
1
2
3
1
2
3
0.3 0.0
0.1
0.2
f(z)
0.3 0.2 0.0
0.1
−1
0
1
2
3
−3
−2
−1
0
z
z
df = 10
df = 30
0.3 0.1 0.0
0.0
0.1
0.2
f(z)
0.3
0.4
−2
0.4
−3
0.2
f(z)
−2
z
0.4
−2
0.4
−3
f(z)
0.2
f(z)
0.2 0.0
0.1
f(z)
0.3
0.4
df = 2
0.4
df = 1
−3
−2
−1
0
1
2
3
−3
−2
−1
z
0 z
Obr´azek 9: Norm´aln´ı a Studentovo t-rozdˇelen´ı.
24
5.2
χ2 rozdˇ elen´ı pro rostouc´ı stupnˇ e volnosti
6 Pˇripomeˇnme, ˇze pro X ∼ χ plat´ı E(X) = n, var(X) = 2n. 6 Jakou vˇetu/vˇety z pˇredn´aˇsky ilustruje n´asleduj´ıc´ı obr´azek? 2 n
> > > + + + + + + +
par(mfrow=c(3, 2), bty="n", mar=c(4, 4, 4, 1)+0.1) df <- c(1, 2, 3, 5, 10, 30) for (i in 1:length(df)){ ymax <- qchisq(0.99, df=df[i]) grid <- seq(0, ymax, length=100) ynorm <- dnorm(grid, mean=df[i], sd=sqrt(2*df[i])) plot(grid, dchisq(grid, df=df[i]), xlab="w", ylab="f(w)", type="l", col="red", lty=1, main=paste("df = ", df[i], sep=""), lwd=1.5) lines(grid, ynorm, lty=2, col="darkgreen", lwd=1.5) }
25
f(w) 0.00
0.02
0.04
f(w) 0.06
0.08
0.10
0.00
0.05
0.10
f(w) 0.15
0.20
0.25
0.0
0.5
1.0
1.5
0
0
0
1
2
5 2
4 6
df = 1
3 w
df = 3
w
df = 10
10 w
4
Obr´azek 10: Norm´aln´ı a χ2 rozdˇelen´ı.
15 8 5 6
10
20
26
f(w) 0.00
0.01
0.02
0.03
f(w) 0.04
0.05
0.00
0.05
f(w) 0.10
0.15
0.0
0.1
0.2
0.3
0.4
0.5
0
0
0
2
10 5
df = 2
4 w
df = 5
w
30
df = 30
20 w
6
10
40 8
15
50
6
Z´ aklady pr´ ace s daty
6.1
Naˇ cten´ı dat
Data b´ yvaj´ı od z´ akazn´ık˚ u“ dod´ av´ana v rozd´ıln´ ych form´atech (v praxi dosti obl´ıben´ ym je MS ” Excel). Vˇetˇsinu z bˇeˇznˇe pouˇz´ıvan´ ych form´at˚ u lze s vˇetˇs´ım ˇci menˇs´ım u ´ sil´ım pˇrev´ezt do ASCII podoby, v kter´e jsou hodnoty na ˇra´dku oddˇeleny mezerou, ˇc´arkou nebo stˇredn´ıkem. Na jednom konkr´etn´ım pˇr´ıkladu se tedy pod´ıv´ame na naˇc´ıt´an´ı dat z ASCII souboru. Soubory auta04.dat (ASCII s hodnotami oddˇelen´ ymi mezerou), auta04.csv (ASCII s hodnotami oddˇelen´ ymi stˇredn´ıky) a auta04.xls (MS Excel) obsahuj´ı informace o v´ ybˇeru 428 nov´ ych automobil˚ u prod´ avan´ ych na trhu v USA v roce 2004. Kaˇzd´ y soubor obsahuje n´ asleduj´ıc´ı promˇenn´e (sloupce). typ: slovn´ı promˇenn´ a ud´ avaj´ıc´ı typ vozidla (napˇr. Ford Focus LX 4dr); druh: kategori´ aln´ı promˇenn´ a ud´ avaj´ıc´ı druh vozidla: osobni/combi/sport/minivan/pickup/off.road ; nahon: kategori´ aln´ı promˇenn´ a ud´ avaj´ıc´ı typ n´ ahonu: predni/zadni/ctyrkolka; cena.prodej: doporuˇcen´ a prodejn´ı cena v USD; cena.dealer: cena v USD, za kterou prodejce odeb´ır´ a vozidlo od v´ yrobce; objem: objem motoru v l; n.valec: poˇcet v´alc˚ u motoru. Hodnota −1 znaˇc´ı rotaˇcn´ı motor; konska.sila: koˇ nsk´ a s´ıla motoru; spotreba.mesto: pr˚ umˇern´ a spotˇreba v mˇestsk´em provozu v l/100 km; spotreba.dalnice: pr˚ umˇern´ a spotˇreba na d´ alnici v l/100 km; hmotnost: hmotnost vozidla v kg; obvod.kola: obvod kola v cm; delka: d´elka vozidla v cm; sirka: ˇs´ıˇrka vozidla v cm.
6 Chybˇej´ıc´ı hodnoty jsou oznaˇceny pomoc´ı znakov´eho ˇretˇezce NA. 6 Zdrojem p˚uvodn´ıch dat je Kiplinger’s Personal Finance, December 2003, vol. 57, no. 12, pp.
104 – 123,http://www.kiplinger.com. P˚ uvodn´ı data jsou k dispozici t´eˇz na str´ ank´ach ˇcasopisu Journal of Statistical Education, http://www.amstat.org/publications/jse/jse\_{}data\_{}archive.html, soubor 04cars.dat. Transformace veliˇcin uveden´ ych p˚ uvodnˇe v jednotk´ach bˇeˇzn´ ych v USA do jednotek bˇeˇznˇe pouˇz´ıvan´ ych v kontinent´ aln´ı Evropˇe, pˇreklad n´ azv˚ u veliˇcin a oznaˇcen´ı hodnot kategori´ aln´ıch promˇenn´ ych byl proveden autory tohoto textu.
asledovnˇe: Data lze do R naˇc´ıst n´ > auta04 <- read.table("auta04.dat", header = TRUE, as.is = 1)
27
6 Argument header nastaven´y na TRUE poukazuje na fakt, ˇze v souboru auta04.dat jsou na prvn´ım ˇra´dku uvedeny n´ azvy jednotliv´ ych promˇenn´ ych.
6 Pˇri naˇc´ıt´an´ı dat konvertuje R automaticky vˇsechny znakov´e promˇenn´e na faktory (class
factor). Zabr´anit tomu lze pomoc´ı argumentu as.is, v kter´em lze zadat ˇc´ısla sloupc˚ u, kter´e maj´ı z˚ ustat znakov´ ymi (class character).
Ze souboru, v kter´em jsou hodnoty oddˇeleny stˇredn´ıky naˇcteme data pomoc´ı > auta04 <- read.csv("auta04.csv", sep = ";", header = TRUE, as.is = 1) > auta04 <- read.csv2("auta04.csv", dec = ".", header = TRUE, as.is = 1) Dalˇs´ı moˇznosti naˇc´ıt´ an´ı dat ze soubor˚ u zjist´ıte po prohl´ednut´ı helpu pro souvisej´ıc´ı funkce: > `?`(read.table) > help(read.csv) > help(read.csv2, htmlhelp = TRUE)
6.2
data.frame
> class(auta04) Tˇr´ıdou dat je data.frame, coˇz je skoro matice. Na rozd´ıl od objekt˚ u tˇr´ıdy matrix m´ a vˇsak kaˇzd´ y sloupec svoji vlastn´ı tˇr´ıdu, kter´a m˚ uˇze b´ yt rozd´ıln´ a pro jednotliv´e sloupce: > > > >
class(auta04[, class(auta04[, class(auta04[, class(auta04[,
1]) 2]) 4]) 6])
ˇ ast datov´e tabulky (nebo celou datovou tabulku) si m˚ C´ uˇzeme vypsat podobnˇe jako u matice: > auta04[1:5, ]
6.3
Pˇ r´ıstup k jednotliv´ ym sloupc˚ um datov´ e tabulky
Povˇsimnˇete si pouˇzit´ı oper´ ator˚ u [[]] a $. > > > > > >
Cena.Prodej <- auta04[, 4] Cena.Prodej[1:10] Cena.Prodej <- auta04[[4]] Cena.Prodej[1:10] Cena.Prodej <- auta04$cena.prodej Cena.Prodej[1:10]
28
6.4
V´ ybˇ er podmnoˇ ziny dat
ˇ Casto potˇrebujeme zpracov´avat pouze podmnoˇzinu dat. V n´ asleduj´ıc´ıch pˇr´ıkladech si vybereme pouze auta druhu combi“: ” > > > >
a04.Combi <- auta04[auta04$druh == "combi", ] a04.Combi[1:5, ] a04.Combi <- subset(auta04, druh == "combi") a04.Combi[1:5, ]
Obdobnˇe lze vybrat t´eˇz jenom nˇekter´e sloupce: > > > > > >
a04.sl124 <- auta04[, c(1, 2, 4)] a04.sl124[1:5, ] a04.sl124 <- auta04[, c("typ", "druh", "cena.prodej")] a04.sl124[1:5, ] a04.sl124 <- subset(auta04, select = c("typ", "druh", "cena.prodej")) a04.sl124[1:5, ]
6.5
Z´ akladn´ı popisn´ e statistiky a prohl´ıdka dat
ych popisn´ ych Z´ akladn´ı popisn´e statistiky z´ısk´ame pˇr´ıkazem summary. Povˇsimnˇete si, ˇze typ spoˇcten´ statistik z´avis´ı na tˇr´ıdˇe jednotliv´ ych sloupc˚ u (tabulky ˇcetnost´ı pro kvalitativn´ı veliˇciny, pr˚ umˇer a vybran´e kvantily pro kvantitativn´ı veliˇciny): > summary(auta04) Absolutn´ı a relativn´ı ˇcetnosti pro kvalitativn´ı veliˇcinu z´ısk´ame napˇr´ıklad takto: > table(auta04$druh) > prop.table(table(auta04$druh)) Jednotliv´e popisn´e statistiky pro kvantitativn´ı veliˇcinu dostaneme takto (argument na.rm je potˇreba nastavovat na TRUE pouze tehdy, kdyˇz se v datech vyskytuj´ı nˇejak´e chybˇej´ıc´ı hodnoty): > > > + > >
mean(auta04$spotreba.mesto, na.rm = TRUE) median(auta04$spotreba.mesto, na.rm = TRUE) quantile(auta04$spotreba.mesto, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE) sd(auta04$spotreba.mesto, na.rm = TRUE) var(auta04$spotreba.mesto, na.rm = TRUE)
Konkr´etn´ı popisnou statistiku pro vˇsechny kvantitativn´ı promˇenn´e z datov´e tabulky lze dostat napˇr. n´ asleduj´ıc´ım zp˚ usobem: > a04.kvantita <- subset(auta04, select = c("cena.prodej", "cena.dealer", + "objem", "konska.sila", "spotreba.mesto", "spotreba.dalnice", + "hmotnost", "obvod.kola", "delka", "sirka")) > sapply(a04.kvantita, sd, na.rm = TRUE) > lapply(a04.kvantita, sd, na.rm = TRUE) 29
ˇ Casto n´ as t´eˇz zaj´ımaj´ı podm´ınˇen´e popisn´e statistiky, napˇr. pr˚ umˇern´ a spotˇreba pro jednotliv´e druhy aut. K v´ ysledku se lze dopracovat pomoc´ı funkc´ı tapply nebo by bez nutnosti vytv´aˇret ruˇcnˇe podmnoˇziny dat: > tapply(auta04$spotreba.mesto, auta04$druh, mean, na.rm = TRUE) > by(auta04$spotreba.mesto, auta04$druh, mean, na.rm = TRUE)
6.6
Z´ akladn´ı obr´ azky
Zam´ yˇs´ıme-li prov´adˇet s daty statistickou anal´ yzu, mˇeli bychom si nejprve data graficky prohl´ednout. Obr´azky l´epe neˇz ˇc´ısla odhal´ı pˇr´ıpadn´e chyby v datech a upozorn´ı n´ as na n´ astrahy zam´ yˇslen´ ych anal´ yz. 6.6.1
Obr´ azky pro kvalitativn´ı promˇ ennou (factor)
Nˇekolik obr´ azk˚ u, kter´e se mohou hodit pˇri pr´ aci s kvalitativn´ı promˇennou (v´ıte proˇc?): > > > > >
par(mfrow = c(2, 2), bty = "n") plot(auta04$druh, ylab = "Cetnost") barplot(table(auta04$druh), ylab = "Cetnost") barplot(prop.table(table(auta04$druh)), ylab = "Proporce") pie(table(auta04$druh))
Jeˇstˇe jednou, s trochu vylepˇsen´ ym obarven´ım a zkr´acen´ ymi popisky, aby se veˇsly do obr´ azku(viz obr. 11): > > > > > > + >
LABSHORT <- c("cmbi", "minv", "offr", "osob", "pckp", "sprt") Barvicky <- c("yellow", "orange", "brown", "darkblue", "red", "darkgreen") par(mfrow = c(2, 2), bty = "n") plot(auta04$druh, ylab = "Cetnost", col = Barvicky, names.arg = LABSHORT) barplot(table(auta04$druh), ylab = "Cetnost", col = Barvicky, names.arg = LABSHORT) barplot(prop.table(table(auta04$druh)), ylab = "Proporce", col = Barvicky, names.arg = LABSHORT) pie(table(auta04$druh), col = Barvicky)
6.6.2
Obr´ azky pro kvantitativn´ı promˇ ennou (numeric)
Nˇekolik obr´ azk˚ u, kter´e se mohou hodit pˇri pr´ aci s kvantitativn´ı promˇennou (v´ıte proˇc?) (viz obr. 12): > > > + > + > >
par(mfrow = c(2, 2), bty = "n") boxplot(auta04$spotreba.mesto, ylab = "Spotreba (l/100 km)", col = "seagreen") hist(auta04$spotreba.mesto, xlab = "Spotreba (l/100 km)", ylab = "Cetnost", main = "Mestska spotreba", col = "skyblue") hist(auta04$spotreba.mesto, prob = TRUE, xlab = "Spotreba (l/100 km)", ylab = "Hustota", main = "Mestska spotreba", col = "skyblue") qqnorm(auta04$spotreba.mesto, col = "red") qqline(auta04$spotreba.mesto, col = "darkblue") 30
200 150
Cetnost
0
50
100
200 150 100
offr
osob
pckp
sprt
cmbi
minv
offr
osob
pckp
sprt
0.0 0.1 0.2 0.3 0.4 0.5
Proporce
Obr´azek 11:
minv
off.road minivan combi osobni
sport pickup
cmbi
minv
offr
osob
pckp
sprt
31
0
50
Cetnost
cmbi
100 50
Cetnost
20 15 10
0
5
Spotreba (l/100 km)
150
Mestska spotreba
15
20
Spotreba (l/100 km)
15 5
10
Sample Quantiles
0.10 0.05 0.00
Hustota
20
Normal Q−Q Plot
0.15
Mestska spotreba
5
10
15
Spotreba (l/100 km)
20
−3
−2
−1
0
1
Theoretical Quantiles
2
3
32
10
Obr´azek 12:
5
6.7
Obr´ azky pˇ ri zkoum´ an´ı vztahu mezi dvˇ ema kvalitativn´ımi promˇ enn´ ymi
Pˇri zkoum´ an´ı vztahu mezi dvˇema kvalitativn´ımi promˇenn´ ymi se mohou hodit n´ asleduj´ıc´ı obr´ azky (co z nich vyˇctete?) (viz obr. 13): > > > > >
Barvicky1 <- c("darkblue", "blue", "lightblue") Barvicky2 <- c("yellow", "orange", "brown", "darkblue", "red", "darkgreen") par(mfcol = c(2, 1), bty = "n") plot(auta04$druh, auta04$nahon, xlab = "Druh", ylab = "Nahon", col = Barvicky1) plot(auta04$nahon, auta04$druh, xlab = "Nahon", ylab = "Druh", col = Barvicky2)
Jak jste jistˇe zjistili, funkce plot v tomto pˇr´ıpadˇe zn´ azorˇ nuje kumulativn´ı relativn´ı ˇcetnosti jedn´e promˇenn´e pˇri podm´ınˇen´ı druhou promˇennou. Nicm´enˇe, kumulativn´ı relativn´ı ˇcetnosti ned´ avaj´ı pˇr´ıliˇs velk´ y smysl, nen´ı-li promˇenn´ a, pro kterou jsou poˇc´ıt´any, ordin´aln´ı (kategorie lze smysluplnˇe uspoˇra´dat). Bude tedy vhodnˇejˇs´ı zn´ azornit pouze podm´ınˇen´e relativn´ı ˇcetnosti (neporm´ınˇen´e). Toho lze dos´ ahnout napˇr´ıklad takto (viz obr. 14): > > > > > + > +
print(Tab <- table(auta04$druh, auta04$nahon)) print(PropTab1 <- prop.table(Tab, margin = 1)) print(PropTab2 <- prop.table(Tab, margin = 2)) par(mfcol = c(2, 1), bty = "n") barplot(t(PropTab1), legend.text = colnames(PropTab1), ylab = "Rel. cetnost", col = Barvicky1, beside = TRUE) barplot(PropTab2, legend.text = row.names(PropTab2), ylab = "Rel. cetnost", col = Barvicky2, beside = TRUE)
33
Druh combi
Nahon
off.road
pickup sport
ctyrkolka
predni
zadni
combi
ctyrkolka
off.road osobni
Druh
predni
Nahon
Obr´azek 13:
34
pickup
zadni
sport
0.0
0.2
0.4
0.6
0.8
1.0
0.0
0.2
0.4
0.6
0.8
1.0
0.8 0.4 0.0
0.2
Rel. cetnost
0.6
ctyrkolka predni zadni
minivan
off.road
osobni
pickup
sport
0.7
combi
0.4 0.3 0.2 0.1 0.0
Rel. cetnost
0.5
0.6
combi minivan off.road osobni pickup sport
ctyrkolka
predni
Obr´azek 14:
35
zadni
6.8
Obr´ azky pˇ ri zkoum´ an´ı vztahu mezi dvˇ ema kvantitativn´ımi promˇ enn´ ymi
Pˇri zkoum´ an´ı vztahu mezi dvˇema kvantitativn´ımi promˇenn´ ymi se mohou hodit n´ asleduj´ıc´ı obr´ azek (co z nˇej vyˇctete?) (viz obr. 15):
20 15 10 5
Mestska spotreba (l/100 km)
> par(mfrow = c(1, 1), bty = "n") > plot(auta04$hmotnost, auta04$spotreba.mesto, col = "red", xlab = "Hmotnost (kg)", + ylab = "Mestska spotreba (l/100 km)")
1000
1500
2000 Hmotnost (kg)
Obr´azek 15: 36
2500
3000
6.9
Obr´ azky pˇ ri zkoum´ an´ı vztahu mezi kvalitativn´ı a kvantitativn´ı promˇ ennou
Pˇri zkoum´ an´ı vztahu mezi kvalitativn´ı a kvantitativn´ı promˇennou se mohou hodit n´ asleduj´ıc´ı obr´ azky (opˇet, v´ıte co z tˇechto obr´ azk˚ u vyˇctete?) (viz obr. 16): > > > + > + + + +
par(bty = "n") layout(matrix(c(1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7), nrow = 2, byrow = TRUE)) plot(auta04$druh, auta04$spotreba.mesto, col = "seagreen", xlab = "Druh", ylab = "Mestska spotreba (l/100 km)") for (dd in levels(auta04$druh)) { hist(auta04$spotreba.mesto[auta04$druh == dd], prob = TRUE, ylim = c(0, 0.4), xlab = "Mestska spotreba (l/100 km)", ylab = "Hustota", main = dd, col = "lightblue") }
37
20 15 10 5
Mestska spotreba (l/100 km)
combi
minivan
off.road
osobni
pickup
sport
Druh
8
12
14
17
10
18
5
15
0.4 0.2
Hustota
0.1 0.0
0.0
0.1
0.2
Hustota
0.3
0.4
sport
0.3
0.4
pickup
0.3 0.1 0.0
0.0
11
0.2
Hustota
0.3
0.4
osobni
0.1
0.2
Hustota
0.3 0.0
0.1
0.2
Hustota
0.3 0.2 0.0
0.1
Hustota
off.road
0.4
minivan
0.4
combi
10
16
10
16
Mestska spotreba (l/100 km) Mestska spotreba (l/100 km) Mestska spotreba (l/100 km) Mestska spotreba (l/100 km) Mestska spotreba (l/100 km) Mestska spotreba (l/100 km)
Obr´azek 16: 38
7
Z´ akladn´ı metody matematick´ e statistiky
7.1
Jednov´ ybˇ erov´ e probl´ emy s kvantitativn´ımi daty
Uk´ aˇzeme si nˇekolik postup˚ u, vesmˇes zaloˇzen´ ych na pˇredpokladu normality (mˇ eli byste se vˇ zdy nejprve zamyslet/ovˇ eˇ rit, zda je tento pˇ redpoklad re´ aln´ y, respektive zda jeho nesplnˇ en´ı lze ignorovat d´ıky dostateˇ cn´ emu rozsahu dat a platnosti centr´ aln´ı limitn´ı vˇ ety). V R jsou vˇsechny zde uveden´e metody implementov´any jako testy. Ve v´ ystupu vˇsak lze nal´ezt t´eˇz souvisej´ıc´ı interval spolehlivosti. 7.1.1
Jednov´ ybˇ erov´ y t-test
X znaˇc´ı n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta.
6H
: E(X) = 12,5 (l/100 km) proti H1 : E(X) 6= 12,5 (l/100 km). ˇ ⋆ C´ım se liˇs´ı ty dva v´ ystupy? 0
⋆ Najdete interval spolehlivosti pro E(X)? ⋆ Umˇeli byste si ruˇcnˇe“ spoˇc´ıtat P-hodnotu? ” > t.test(auta04$spotreba.mesto, mu = 12.5) > t.test(auta04$spotreba.mesto, mu = 12.5, conf.level = 0.99)
6H
0
: E(X) ≤ 12,5 (l/100 km) proti H1 : E(X) > 12,5 (l/100 km).
> t.test(auta04$spotreba.mesto, mu = 12.5, alt = "greater")
6H
0
: E(X) ≥ 12,5 (l/100 km) proti H1 : E(X) < 12,5 (l/100 km).
⋆ Jak interpretujete v´ ysledek testu na 5% hladinˇe v´ yznamnosti? ⋆ Jak interpretujete v´ ysledek testu na 1% hladinˇe v´ yznamnosti? ⋆ Umˇeli byste si ruˇcnˇe“ spoˇc´ıtat P-hodnotu? ” > t.test(auta04$spotreba.mesto, mu = 12.5, alt = "less")
39
7.2
Dvouv´ ybˇ erov´ e probl´ emy s kvantitativn´ımi daty
7.2.1
Dvouv´ ybˇ erov´ y t-test
X znaˇc´ı n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta druhu combi a Y n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta druhu pickup.
6H
0
: E(X) = E(Y ) proti H1 : E(X) 6= E(Y ).
⋆ Prvn´ı t-test je ten uˇcebnicov´ y“, kter´ y pˇredpokl´ad´ a shodn´e rozptyly. ” ⋆ Druh´ y t-test nepoˇzaduje shodu rozptyl˚ u. ⋆ V jak´em intervalu se s 95% spolehlivost´ı pohybuje rozd´ıl mezi pr˚ umˇernou spotˇrebou combi a pickup aut? ⋆ Dovedli byste tento interval upravit tak, aby d´ aval 99% spolehlivost? > > > >
ms.combi <- auta04$spotreba.mesto[auta04$druh == "combi"] ms.pickup <- auta04$spotreba.mesto[auta04$druh == "pickup"] t.test(ms.combi, ms.pickup, var.equal = TRUE) t.test(ms.combi, ms.pickup)
6H
0
: E(Y ) − E(X) ≤ 3 (l/100 km) proti H1 : E(Y ) − E(X) > 3 (l/100 km).
⋆ Oba n´ıˇze uveden´e pˇr´ıkazy testuj´ı tot´eˇz, proˇc? ⋆ Jak se od sebe liˇs´ı interpretace spoˇcten´ ych interval˚ u spolehlivosti? ⋆ Jak interpretujete na 5% hladinˇe v´ yznamnosti v´ ysledek testu? ⋆ Jakou minim´aln´ı hodnotu rozd´ılu jste na 5% hladinˇe v´ yznamnosti schopni statisticky prok´azat? > t.test(ms.pickup, ms.combi, mu = 3, alt = "greater") > t.test(ms.combi, ms.pickup, mu = -3, alt = "less")
40
7.2.2
Dvouv´ ybˇ erov´ y F-test
X znaˇc´ı n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta druhu combi a Y n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta druhu pickup.
6H
0
: var(X) = var(Y ) proti H1 : var(X) 6= var(Y ).
> var.test(ms.combi, ms.pickup)
6H
0
: var(X)/var(Y ) ≤ 0,5 proti H1 : var(X)/var(Y ) > 0,5.
> var.test(ms.combi, ms.pickup, ratio = 0.5, alt = "greater")
41
7.3
P´ arov´ e probl´ emy s kvantitativn´ımi daty
7.3.1
P´ arov´ y t-test
X znaˇc´ı n´ ahodnou veliˇcinu, jeˇz reprezentuje mˇestskou spotˇrebu n´ ahodnˇe vybran´eho auta a Y n´ ahodnou veliˇcinu, jeˇz reprezentuje d´ alniˇcn´ı spotˇrebu stejn´eho auta.
6H
0
: E(X) = E(Y ) proti H1 : E(X) 6= E(Y ).
⋆ P´ arov´ y t-test lze t´eˇz prov´est jednov´ ybˇerov´ ym“ zp˚ usobem. V´ıte proˇc? ” > t.test(auta04$spotreba.mesto, auta04$spotreba.dalnice, paired = TRUE) > t.test(auta04$spotreba.mesto - auta04$spotreba.dalnice)
6H
0
: E(X) − E(Y ) ≥ 3,2 (l/100 km) proti H1 : E(X) − E(Y ) < 3,2 (l/100 km).
⋆ Jak interpretujete na 5% hladinˇe v´ yznamnosti v´ ysledek testu? > t.test(auta04$spotreba.mesto, auta04$spotreba.dalnice, mu = 3.2, + paired = TRUE, alt = "less") > t.test(auta04$spotreba.dalnice, auta04$spotreba.mesto, mu = -3.2, + paired = TRUE, alt = "greater")
´ POZNAMKA: Dalˇs´ı testy a souvisej´ıc´ı intervaly spolehlivosti prob´ıran´e v bˇeˇzn´ ych kurzech statistiky jsou implementov´any napˇr. v bal´ıku vsePackage (ke staˇzen´ı u AK, nainstalov´ano v K10 a K11).
42
8
Souhrnn´ y pˇ rehled nejd˚ uleˇ zitˇ ejˇ s´ıch pˇ r´ıkaz˚ u
8.1
Z´ akladn´ı elementy Pˇ r´ıkazy
ls() nebo objects() rm(object) search()
vypiˇs seznam objekt˚ u definovan´ ych a dostupn´ ych na pracovn´ı ploˇse vymaˇz object z pracovn´ı plochy vypiˇs co vˇsechno je prohled´av´ano a v jak´em poˇrad´ı, kdyˇz se hled´ a nˇejak´ y objekt
Jm´ ena promˇ enn´ ych Kombinace p´ısmen, ˇc´ıslic a teˇcek. Nesm´ı zaˇc´ınat ˇc´ıslic´ı. Nedoporuˇcuje se zaˇc´ınat jm´eno promˇenn´e teˇckou. Rozliˇsuj´ı se velk´a a mal´ a p´ısmena, tj. objekt pojmenovan´ y krabicka je nˇeco jin´eho neˇz objekt pojmenovan´ y Krabicka.
Pˇ riˇ razovac´ı pˇ r´ıkazy < − nebo = −> << −
8.2
pˇriˇrad’ hodnotu promˇenn´e pˇriˇrazen´ı doprava“ ” glob´ aln´ı pˇriˇrazen´ı (ve funkc´ıch)
Oper´ atory Aritmetick´ e oper´ atory + − ∗ / ∧ %/% %%
sˇc´ıt´ an´ı odˇc´ıt´an´ı n´ asoben´ı dˇelen´ı umocˇ nov´an´ı celoˇc´ıseln´e dˇelen´ı (div) zbytek po celoˇc´ıseln´em dˇelen´ı (mod)
43
Logick´ e oper´ atory a oper´ atory vztahu V´ ysledkem tˇechto oper´ ator˚ u je vˇzdy logick´a hodnota TRUE anebo FALSE. == != < > <= >= is.na(x) & | !
8.3
je rovno? nen´ı rovno? je menˇs´ı neˇz? je vˇetˇs´ı neˇz? je menˇs´ı neˇz nebo rovno? je vˇetˇs´ı neˇz nebo rovno? je x chybˇej´ıc´ı hodnota? ˇ ˇ (AND) logick´e A SOUCASN E logick´e NEBO (OR) logick´a negace (NOT)
Vektory a datov´ e typy Generov´ an´ı vektor˚ u s nˇ ejakou strukturou
numeric(25) character(25) logical(25) seq(-4, 4, 0.1) 1:10 c(5, 7, 9, 13, 1:5) rep(1, 10) gl(3, 2, 12)
vektor o 25 nul´ ach vektor s 25 pr´ azdn´ ymi znaky, tj. ”” logick´ y vektor s 25 elementy rovn´ ymi FALSE vektor aritmetick´e posloupnosti −4, −3,9, −3,8, . . . , 3,9, 4 vektor aritmetick´e posloupnosti 1, 2, . . . , 10, to sam´e jako pˇr´ıkaz seq(1, 10, 1) vytvoˇr vektor spojen´ım sloˇzek uvnitˇr c (concatenation), zde vektor 5, 7, 9, 13, 1, 2, 3, 4, 5 vektor, kde se 1 opakuje 10× faktorov´ y vektor o 3 u ´ rovn´ıch, opakuj kaˇzdou u ´ roveˇ n v bloc´ıch o velikosti 2, a to aˇz do celkov´e d´elky vektoru 12, zde tedy 1, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 3
Pˇ retypov´ an´ı vektor˚ u as.numeric(x) as.character(x) as.logical(x) factor(x)
pˇretypuj x na numerick´ y vektor pˇretypuj x na znakov´ y vektor pˇretypuj x na logick´ y vektor (obsahuj´ıc´ı pouze TRUE a FALSE) vytvoˇr faktor (kategori´ aln´ı veliˇcinu) z x
44
8.4
Datov´ e soubory (data frames)
data.frame(height=c(165, 185), weight=c(90, 65)) data.frame(height, weight) dfr$var attach(dfr) detach(dfr)
8.5
vytvoˇr data frame se dvˇema pojmenovan´ ymi veliˇcinami uloˇz dˇr´ıve vytvoˇren´e vektory jako dva sloupce v data framu vyber promˇennou (sloupec) var z data framu dfr poloˇz data frame dfr do vyhled´avac´ı cesty, k jednotliv´ ym promˇenn´ ym lze potom pˇristupovat i bez $ odstraˇ n data frame z vyhled´avac´ı cesty
Numerick´ e funkce Matematick´ e
log(x) log10(x) exp(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) min(x) min(x1, x2, ...) max(x) max(x1, x2, ...) range(x) pmin(x1, x2, ...) pmax(x1, x2, ...) length(x) sum(complete.cases(x))
pˇrirozen´ y logaritmus x dekadick´ y logaritmus x exponenci´ aln´ı funkce ex sinus x kosinus x tangens x arcus-sinus x arcus-kosinus x arcus-tangens x minimum z vektoru x minimum z nˇekolika vektor˚ u, v´ ysledkem je jedno ˇc´ıslo maximum z vektoru x maximum z nˇekolika vektor˚ u, v´ ysledkem je jedno ˇc´ıslo to sam´e jako c(min(x), max(x)) paraleln´ı (po sloˇzk´ach) minimum z nˇekolika stejnˇe dlouh´ ych vektor˚ u paraleln´ı (po sloˇzk´ach) maximum z nˇekolika stejnˇe dlouh´ ych vektor˚ u poˇcet sloˇzek vektoru poˇcet nechybˇej´ıc´ıch sloˇzek ve vektoru
45
Statistick´ e mean(x) sd(x) var(x) median(x) quantile(x, p) cor(x, y)
8.6
aritmetick´ y pr˚ umˇer smˇerodatn´ a odchylka rozptyl medi´ an kvantily korelace
Indexace/vyb´ır´ an´ı
x[1] x[1:5] x[c(2,3,5,7,11)] x[y <= 30] x[sex=="male"] i <- c(2,3,5,7,11); x[i] l <- (y<=30); x[l]
prvn´ı element podvektor obsahuj´ıc´ı prvn´ıch pˇet element˚ u podvektor obsahuj´ıc´ı 2., 3., 5., 7. a 11. element v´ ybˇer podvektoru pomoc´ı logick´eho v´ yrazu v´ ybˇer podvektoru pomoc´ı faktorov´e promˇenn´e v´ ybˇer podvektoru pomoc´ı ˇc´ıseln´e promˇenn´e v´ ybˇer podvektoru pomoc´ı logick´e promˇenn´e
Matice a datov´ e soubory m[4,] ˇctvrt´ y ˇra´dek m[,3] tˇret´ı sloupec dfr[dfr$promenna<=30] ˇc´asteˇcn´ y datov´ y soubor subset(dfr, subset=(promenna<=30)) to sam´e jako pˇredch´ azej´ıc´ı pˇr´ıkaz
8.7
Pravdˇ epodobnostn´ı rozdˇ elen´ı Norm´ aln´ı rozdˇ elen´ı dnorm(x) pnorm(x) qnorn(p) rnorm(n)
hustota N (0, 1) distribuˇcn´ı funkce N (0, 1), P(X ≤ x) p-kvantil N (0, 1), x: P(X ≤ x) = p n pseudon´ ahodn´ ych standardnˇe norm´alnˇe rozdˇelen´ ych hodnot
46
Diskr´ etn´ı rozdˇ elen´ı – pravdˇ epodobnostn´ı funkce dbinom(x, n, p) dgeom(x, prob) dnbinom(x, size, prob) dhyper(x, m, n, k)
dpois(x, lambda) dmultinom(x, size, prob) dsignrank(x, n) dwilcox(x, m, n)
binomick´e rozdˇelen´ı s n pokusy a pravdˇepodobnost´ı u ´ spˇechu p geometrick´e rozdˇelen´ı s pravdˇepodobnost´ı u ´ spˇechu p negativnˇe binomick´e rozdˇelen´ı s pravdˇepodobnost´ı u ´ spˇechu p a poˇctem size u ´ spˇech˚ u na kter´e ˇcek´ame hypergeometrick´e rozdˇelen´ı (v´ ybˇer bez vracen´ı), kde m je poˇcet b´ıl´ ych koul´ı v urnˇe, n poˇcet ˇcern´ ych koul´ı v urnˇe a k poˇcet koul´ı taˇzen´ ych z urny Poissonovo rozdˇelen´ı se stˇredn´ı hodnotou lambda multinomick´e rozdˇelen´ı rozdˇelen´ı Wilcoxonovy jednov´ ybˇerov´e statistiky ve v´ ybˇeru o rozsahu n rozdˇelen´ı Wilcoxonovy dvouv´ ybˇerov´e statistiky pro v´ ybˇery o rozsahu m a n
Spojit´ a rozdˇ elen´ı s oborem hodnot R – hustoty dnorm(x, mean, sd) dt(x, df) dcauchy(x, location, scale) dlogis(x, location, scale)
norm´aln´ı rozdˇelen´ı se stˇredn´ı hodnotou mean a smˇerodatnou odchylkou sd Studentovo t rozdˇelen´ı s df stupni volnosti Cauchyho rozdˇelen´ı (zobecnˇen´ı t1 rozdˇelen´ı) logistick´e rozdˇelen´ı
Spojit´ a rozdˇ elen´ı s oborem hodnot R+ – hustoty dexp(x, rate) df(x, n1, n2) dchisq(x, df) dlnorm(x, mean, sd) dweibull(x, shape, scale) dgamma(x, shape, rate)
exponenci´ aln´ı rozdˇelen´ı se stˇredn´ı hodnotou 1/rate Fisherovo-Snedeckorovo F rozdˇelen´ı se stupni volnosti n1 a n2 χ2 rozdˇelen´ı s df stupni volnosti log-norm´aln´ı rozdˇelen´ı, tj. log(X) ∼ N (mean, sd2 ) Weibullovo rozdˇelen´ı gamma rozdˇelen´ı se stˇredn´ı hodnotou shape/rate
Spojit´ a rozdˇ elen´ı s oborem hodnot rovn´ ym intervalu v R – hustoty dunif(x, min, max) dbeta(x, a, b)
rovnomˇern´e rozdˇelen´ı na intervalu (min, max) beta rozdˇelen´ı na intervalu (a, b)
47
Stejn´e znaˇcen´ı jako u norm´aln´ıho rozdˇelen´ı, tj. p-q-r, plat´ı pro hustoty, kvantilov´e funkce a funkce generuj´ıc´ı pseudon´ ahodn´ a ˇc´ısla.
8.8
Standardn´ı statistick´ e metody Kvantitativn´ı (spojit´ a) odezva
t.test pairwise.t.test cor.test var.test lm(y ∼ x) lm(y ∼ f) lm(y ∼ f1 + f2) lm(y ∼ f + x) lm(y ∼ x1 + x2 + x3) bartlett.test
jedno a dvouv´ ybˇerov´ y t test p´ arov´ y t test, resp. mnohon´asobn´e porovn´av´an´ı test o korelaˇcn´ım koeficientu pro norm´alnˇe rozdˇelen´ a data porovn´an´ı dvou rozptyl˚ u pro norm´alnˇe rozdˇelen´ a data (F test) jednoduch´ a regrese x na y je-li f faktor, jednoduch´ a anal´ yza rozptylu (one-way ANOVA) jsou-li f1 a f2 faktory, anal´ yza rozptylu se 2 faktory (two-way ANOVA) je-li f faktor, anal´ yza kovariance (ANCOVA) v´ıcerozmˇern´ a regrese Bartlett˚ uv test na porovn´an´ı k rozptyl˚ u
Kvantitativn´ı (spojit´ a) odezva – neparametrick´ e metody wilcox.test kruskal.test friedman.test cor.test(method = "kendall") cor.test(method = "spearman")
jedno a dvouv´ ybˇerov´ y Wilcoxon˚ uv test Kruskal˚ uv-Wallis˚ uv test (neparametrick´a jednoduch´ a ANOVA) Friedmanova neparametrick´a ANOVA s dvˇema faktory test o nulovosti Kendallova τ test o nulovosti Spearmanova ρ
Diskr´ etn´ı odezva binom.test prop.test prop.trend.test fisher.test chisq.test glm(y ∼ x1 + x2 + x3, binomial) glm(count ∼ f1 + f2 + f3, poisson)
binomick´ y test (vˇcetnˇe znam´enkov´eho testu) test porovn´avaj´ıc´ı pravdˇepodobnosti u ´ spˇechu (proportions) ve dvou v´ ybˇerech test pro trend v pravdˇepodobnostech u ´ spˇechu Fisher˚ uv exaktn´ı faktori´ alov´ y test v mal´ ych kontingenˇcn´ıch tabulk´ach χ2 test nez´ avislosti v kontingenˇcn´ı tabulce logistick´a regrese poissonovsk´ a regrese (log-line´ arn´ı model)
48